Блог
Почему мы не работаем по ТЗ

Я верю, что где-то существуют проекты, которые
успешно и эффективно реализованы на основе ТЗ.
Но это не точно… Проблема в том, что за всю свою
карьеру я видел лишь одно ТЗ, очень очень давно.
Начиная с проекта Додо ИС, такого больше не
происходило. До сих пор помню как создавался
движок для рекламных акций Додо ИС, …
Когда использовать enum?

В данной заметке мы не будем рассматривать
enum с технической стороны, нас будет
интересовать, когда же стоит применять их c точки
зрения проектирования. Enum — это очень
дешевый и удобный инструмент, который
позволяет отнести сущность к той или иной
категории. Один из самых частых примеров — это
состояние заказа { OnDelivery, Delivered, Completed,
Canceled }. …
Кому доверить разработку ПО

Допустим, что вы решились на разработку своей
системы автоматизации, тогда следующим важным
вопросом станет: «А кто же будет ее
разрабатывать?». Давайте рассмотрим варианты
без персоналий, кто же сможет заняться
разработкой. Фрилансеры Сразу стоит уточнить,
что тут мы не берем в расчет команду
разработчиков с фриланс биржи. Данный вариант
гораздо лучше перекликается с работой с ИТ
компанией. …
Монолит или микросервисы

Одним из самых ярких вопросов в мире
программирования является «Монолит или
микросервисы». И иногда заказчик может
услышать, что для разработки программы будет
использоваться архитектура микросервисов. Как
правило, этот факт преподносится как некоторое
преимущество. И еще чаще монолитная
архитектура считается у разработчиков некоторым
недостатком. Должен ли данный вопрос волновать
заказчика? Ответ – однозначно да. Начнем
издалека. …
Результат разработки ПО

Наш опыт говорит о том, что большинство
заказчиков, обращающихся за разработкой ПО,
понятия не имеют, что они должны получить в
конечном итоге и как именно выглядит этот самый
конечный результат. Иногда это приводит к
печальным последствиям, когда исполнитель
передает материалы, которые не позволяют ни
продолжить дальнейшую разработку, ни собрать
рабочую версию программы. Запомните, главным
результатом …
Засучивайте рукава

На днях наткнулся на размышления финансового
аналитика, который рассуждал на тему, что
некоторые вещи в своей жизни нельзя
делегировать. В качестве одного из примеров он
упомянул попытки бизнеса делегировать
маркетинг под ключ. Поймал себя на мысли, что в
разработке систем автоматизации для бизнеса все
тоже самое. Невозможно нанять подрядчика,
который разработает систему автоматизации для
вашего …
ИИ глазами разработчика

На данный момент тема с ИИ доносится изо всех
утюгов, поэтому самое время высказать свое
непопулярное мнение. Большинство наших
заказчиков знают, насколько негативно я отношусь
к ИИ и хайпу вокруг него. Попробую пояснить
свою позицию простыми словами настолько,
насколько у меня получится. Еще в универе на
одном из предметов нам рассказывали теорию
экспертных систем, а …
Стоит ли игра свеч?

Давайте поговорим подробнее о том, ради чего вы
собираетесь городить огород, а именно
разрабатывать свою информационную систему.
При этом речь постараемся вести о
преимуществах над софтом из коробки. Так уж
получилось, что самым известным нашим
проектом, который мы стартовали и развивали на
протяжении нескольких лет, является Dodo IS
(Информационная система Додо Пиццы). Мнение
конечно субъективное, …
«Разработка своего ПО» VS «Готовый софт»

Все чаще развитие и масштабирование компаний
требует автоматизации основных бизнес
процессов. Следовательно, очень многие
владельцы компаний сталкиваются с проблемой
выбора: приобрести готовое программное
обеспечение или разработать собственную
информационную систему. Оба варианта имеют
место быть, однако, чтобы сделать правильный
выбор, потребуется учесть множество факторов,
часть из которых находятся вне области
компетенции лица, принимающего решение.
Более того, …
Хочу свою Додо ИС, сколько будет стоить и сколько времени
займет?

Приблизительно такой вопрос мне задают бизнесмены. Сложно дать ответ, потому что
программистам нужно техническое
задание, чтобы точно ответить, а вы его не предоставляете (у нас даже родилась такая
поговорка: «Хочешь избавиться от
заказчика — пошли его писать ТЗ»). …
Создание алгоритма маршрутизации для сервиса доставки воды

На проекте по доставке воды перед нами была поставлена задача автоматизировать
распределение заказов между фиксированным
количеством автомобилей. Критерием эффективности решения являлось не только
минимальное суммарное расстояние, но
равномерность загрузки автомобилей. В качестве дополнительного ограничения выступало
скорость работы алгоритма, так как
она влияла на некоторые бизнес-процессы. …
Индексы в реляционных БД на пальцах
Думаю, что многие бывали в регистратурах больниц. Представьте себе, что медицинские
карточки людей хранились бы на
полках в абсолютно произвольном порядке, где нашлось свободное место, туда и
положили. А теперь представьте сколько
времени сотрудница регистратуры искала бы вашу карточку при таком подходе? …
Хранение истории состояний в реляционной БД
Хранение истории состояний является достаточно часто встречающейся задачей.
Например, вам нужно хранить информацию,
когда заказ перешел в тот или иной статус. Пример списка возможных статусов: Ожидает
приготовления, готовится, ожидает
доставки, доставляется, завершен. Для решения этой задачи мы применяем 2 подхода,
которые внутри нашей команды условно
называются «горизонтальная запись» и «вертикальная запись». Горизонтальная запись
Горизонтальную запись …
Kometa Fit. Как мы автоматизировали сеть фитнес-клубов в
Москве

Основная задача — создать экономически
рабочую, масштабируемую информационную
систему, с возможностью расширять модель,
чтобы можно было открывать новые клубы,
развивать их и получать прибыль. Нами была
создана информационная система, позволяющая
оцифровать большинство процессов, которые
происходят в клубе (посещение клиентов, покупка
и продление абонементов, работа с тренерами и
т.д.). Какие были цели у заказчиков? Предыдущая
система …
Идентификатор записи в БД: Целое число против UUID
Впервые отказаться от целочисленного идентификатора пришлось при работе над проектом
Dodo IS (Информационная система
Додо пиццы), когда на горизонте замаячили микросервисы, нагрузка, шардирование и
прочие непонятные термины. До этого в
качестве идентификаторов использовались именно целые числа, которые генерировались
БД при помощи автоинкремента …