Рубрика «разработка» - 161

Оптимизируем свои трудозатраты при разработке приложения в Google Material Design - 1
Данный материал может быть полезен как профессиональным дизайнерам интерфейсов, так и разработчикам, чьи познания в графических пакетах находятся ниже уровня “продвинутого пользователя”.

Итак, перед нами стоит задача: опираясь на готовые решения в открытом доступе, максимально оптимизировать затраченный труд на разработку приложения в стиле Google Material Design.
Читать полностью »

О Legacy-коде без максимализма: что делать - 1

Представьте, что вам дали задачу поправить часть кода. В голове возникнет много мыслей. Кто его написал? Когда? А может он — legacy? Где документация? Давайте попробуем разобраться с «наследием» основательно и со всех сторон. Поможет нам в этом вопросе Андрей Солнцев @asolntsev (http://asolntsev.github.io/), разработчик из таллинской компании Codeborne. Начнём.

О Legacy-коде без максимализма: что делать - 2— Андрей, вы знакомы с трудами Michael Feathers, например, «Working Effectively with Legacy Code»? В книге акцентируется внимание на важности тестирования и выделяется одно из ключевых отличий legacy от не legacy-кода — это наличие тестов. Вы согласны с этим мнением?

Абсолютно согласен! Скажу больше: юнит-тесты — необходимое, но недостаточное условие. И с юнит-тестами можно навалить так, что сам Геракл не разгребёт.
Что для настоящего джедая мастхав, так это:

  1. TDD — то есть тесты ДО кода.
  2. Чистый код (и чистые тесты).

Я очень люблю книгу Robert C. Martin «Clean Code» («Чистый код»). Это для меня настольная библия. Категорически всем советую. Кстати, его блог тоже великолепен.

Читать полностью »

Недавно стал работать в R/3. Безусловно, мощная и полезная программа. Но ее юзабилити осталось в прошлом веке. Я как программист догадываюсь, как разрабатывали SAP R/3 для нашей компании.

— А давай назовем простые понятные людям объекты случайными кодами. Нет, тайный смысл в кодах, конечно, будет, но только для посвященных. Пусть люди говорят как машины.

— Не, это не достаточно абсурдно, давай еще наречем привычные вещи необычными именами. Пусть люди развивают кругозор. Ну, типа там «мандант», «фаворит». И вообще, побольше ретро.

— А давай сделаем элементы управления настолько необычными, чтобы никто не догадался, что, например, часть панели – это кнопка, а вот этот квадратик – это ссылка.

— А давай выведем все, какие только можно, кнопочки и поля на один экран, чтобы на анализ формы пользователь потратил весь свой мозг.
Читать полностью »

image

Приглашаем принять участие в 48-часовом командном соревновании, направленном на построение «умной системы» анализа логов и метрик кластера, обрабатывающего данные. Хакатон Hydrosphere.io пройдёт 9-11 сентября в Иннополисе, участие бесплатное. Все подробности под катом.Читать полностью »

PostgreSQL Logo В этой статье я хотел бы рассказать о том, как выглядит процесс разработки PostgreSQL глазами одного из контрибьютеров в этот самый PostgreSQL. Заниматься разработкой этой СУБД я начал в декабре 2015 года, когда устроился работать в компанию Postgres Professional. То есть, не так уж давно. А значит, еще свежи воспоминания о моментах, которые поначалу казались мне не вполне очевидными. Хотелось бы их законспектировать, чтобы новым людям, приходящим в нашу команду, а также всем тем, кто желает попробовать себя в роли разработчика открытой реляционной СУБД, было легче. Я расскажу о том, как выглядит процесс разработки PostgreSQL, какие инструменты я использую в своей повседневной работе, как следует оформлять патчи, и так далее. Заинтересовавшихся прошу проследовать под кат.
Читать полностью »

imageУже этой осенью компания IBM может запустить блокчейн-решение, ориентированное на удовлетворение финансовых потребностей своих клиентов. Согласно недавно опубликованной статье The Wall Street Journal, глобальное финансовое подразделение IBM намерено запустить проект, основной целью которого будет решение спорных ситуаций по операциям.

Мы, в команде блокчейн-сервиса Wirex, решили проанализировать историю разработок IBM с начала этого года и представить вниманию пользователей Geektimes дайджест блокчейн-решений, реализуемых американским технологическим гигантом.

Читать полностью »

Я не самый талантливый кодер в мире. Правда. Так что я стараюсь писать как можно меньше кода. Чем меньше кода я пишу, тем меньше кода может ломаться, поддерживаться и требовать пояснений.

А еще я ленивый — мед, да еще и ложкой (я решил использовать в статье аналогии с едой).

Но, оказывается, что единственный гарантированный способ повысить производительность в вебе — это писать меньше кода. Минифицировать? Окей. Сжимать? Ну, да. Кэшировать? Звучит неплохо. Вообще отказываться кодить или использовать чужой код изначально? А вот теперь — в яблочко! Что есть на входе — должно выйти на выходе в той или иной форме, независимо от того, смог ли ваш сборщик растворить и переварить это своими желудочными соками (я, пожалуй, откажусь от пищевых аналогий).

И это не все. Кроме видимых улучшений производительности, где вам требуется то же количество кода, но его сначала нужно разжевать (не смог удержаться), вы также можете сэкономить. Моему провайдеру без разницы, посылаю ли я кучу маленьких писем или одно большое: все складывается.

В стремлении к уменьшению мне больше всего нравится вот что: в конце остается только то, что реально нужно, только то, что по-настоящему требуется пользователю. Огромная фотка какого-то чувака, пьющего латте? Выкинуть. Кнопки социальных сетей, которые подсасывают кучу левого кода и ломают дизайн страницы? Пинок под зад им. Эта хреновина на JavaScript, которая перехватывает правый клик и показывает кастомное модальное окно? Выставить на мороз!

Речь идет не только про подключение штук, которые ломают интерфейс. То, как вы пишете свой собственный код, тоже играет большую роль в стремлении к уменьшению кода. Вот несколько советов и идей. Я писал о них ранее, но в контексте удобства и отзывчивого дизайна. Просто так получается, что гибкий, удобный веб требует меньше контроля с нашей стороны и его сложнее сломать.Читать полностью »

ФРИИ занялся поиском защищенного мессенджера для чиновников - 1

Фонд развития интернет-инициатив совместно с «Ростелекомом» и Tele2 занялся поиском защищенного мессенджера для чиновников, сообщают «Ведомости».

Еще в 2013 году президент Российской Федерации, Владимир Путин предложил заняться этим вопросом, пообещал создать фонд для «значимых проектов» и подключил к работе Минфин и на тот момент главу ведомства, Германа Грефа, лично. После акцентрования внимания на данном вопросе, был выбран основной исполнитель — ФРИИ, а также выделено 6 млрд рублей от неназванных источников, которые планировалось разделить между, примерно, 400 российскими стартапами.

ФРИИ ориентируется на государственные органы и крупный бизнес, как на основного предполагаемого потребителя. Однако, исходя из требований, выдвигаемых к ПО, назвать его «мессенджером» сложно. В проекте «мессенджер» будет содержать в себе не только возможность ведения переписки, но также аудио- и видеосвязь, возможность совместной работы над документами и прочие функции. Особо внимание уделяется аттестации у российских спецслужб и использование алгоритмов шифрования отечественной разработки. По оценкам ФРИИ, «Ростелекома» и Tele2, возможная аудитория продукта достигает 20 млн копий, при условии, что ежедневно в стране мессенджерами пользуется 60 млн человек.
Читать полностью »

Java Stream API: что делает хорошо, а что не очень - 1

Настолько ли «энергичен» Java 8 Stream API? Возможно ли «превращение» обработки сложных операций над коллекциями в простой и понятный код? Где та выгода от параллельных операций, и когда стоит остановиться? Это одни из многочисленных вопросов, встречающихся читателям. Попробуем разобрать подводные камни Stream API с Тагиром Валеевым aka @lany. Многие читатели уже знакомы с нашим собеседником по статьям, исследованиям в области Java, выразительным докладам на конференциях. Итак, без проволочек, начинаем обсуждение.

Тагир, у вас отличные показатели на ресурсе StackOverflow (gold status в ветке «java-stream»). Как вы думаете, динамика применения Java 8 Stream API и сложность конструкций выросла (на основе вопросов и ответов на данном ресурсе)?
Читать полностью »

13 сентября 2016 года Дино Эспозито выступит на uDev Tech Events с лекцией на тему «Life as a Service: Scalability and other Aspects». Для тех, кто не сможет посетить мероприятие, будет вестись прямая трансляция.


Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js