Большой комок грязи
Содержание
Бывает, что проект превращается в Большой комок грязи, попробуем понять как этого не допустить.
Софт не существует сам по себе, а призван решать проблемы бизнеса.
Мы можем слышать типичные запросы от бизнеса по типу “Нам бы побыстрее выйти в релиз и получить первых клиентов. А потом уже давайте думать, как улучшать продукт”.
Команда начинает разработку без анализа требований и проработки архитектуры. Все изменения вносятся “на лету”. Далее идут доработки “по-ходу”. В результате система плохо функционирует и развивать и поддерживать ее все сложнее.
В какой-то момент времени нагрузка на систему возрастает, функционал становится популярным, но, появляются баги. Начинаем их править, система валится, клиенты уходят, продаж и прибыли нет. В результате проект закрывается.
Подумаем как этого избежать. Поговорим о хороших вещах, что должно быть проекте.
Архитектура
Очень важно продумать архитектуру проекта с самого начала, все нюансы важны. Описание и разделение предметной области является ключевым моментом в планировании архитектуры. Начать можно со схемы предприятия, как все работает. По-хорошему нужен доменный эксперт, который объяснит как все работает в организации.
Код
- Код держим в гит, не ftp и архив с файлами.
- Любой программист может в любой момент менять код, а не избранные.
- Единый стиль кодирования, а не лапшекод на коленке в notepad.
Среда разработки
- Среда максимально приближена к продакшену. Если продакшен на Linux, а мы разрабатываем на Windows, так не пойдет.
- Разработка ведется локально на машине разработчика в докер или другом окружении, а не по ftp левой ногой в провое ухо.
- Быстрое локальное разворачивание проекта, а не трех часовое чтение мануалов как на windows поднять apache.
Качество кода
- Пишем тесты, без них сложно
- Используем статические анализаторы кода
- Используем линтеры кода
Автоматизация
- В идеале выкладка на сервер происходит автоматически при коммите в репозиторий, а не копированием вручную на сервер измененных файлов.
- Обновление версии происходит прозрачно для пользователей. То етсь пользоваели не должны заметить, что идет обновление.
Каждая из тем выше достойна отдельной статьи, ибо очень много нюансов.
После выполнение хотя бы части рекомендаций выше, проект уже не будет таким большим комком грязи, и с ним можно как то жить.