Антон Суминов | Tony pro IT
Антон Суминов, Руководитель студии Adinadin · 14.02 · ред.
Почему важна архитектура даже в небольших проектах? 🚀
«Давайте сделаем по-быстрому, потом разберёмся».
💬 Сколько раз вы слышали это на старте небольшого проекта?
👉 Вначале всё кажется простым – один сервер, пара API, база данных. 👉 Код пишется быстро, фичи выкатываются без задержек. 👉 Клиент рад, команда довольна – всё работает!
📌А потом приходит реальность: ❌ Запросов становится больше – все начинает тормозить. ❌ В коде сложно разобраться – добавление новой фичи превращается в боль. ❌ Одно изменение ломает полпроекта – и начинается хаос.
Почему так? Потому что никто не подумал об архитектуре заранее.
📌Когда маленький проект становится большим? Обычно в момент, когда кто-то говорит: 💬 «Этот сервис живёт уже два года, а мы думали, он временный» 💬 «Клиент решил его расширить, но мы не готовы» 💬 «Нужно добавить фичу, но проще переписать всё с нуля»
Большинство проблем начинается не из-за технологий, а из-за того, что изначально не думали на два шага вперёд. Но архитектура – это не значит избыточная сложность.
📌Можно сделать гибкую систему, которая: ✔️ Не будет тормозить разработку на старте. ✔️ Позволит масштабировать проект, если он вырастет. ✔️ Не превратится в ад для тех, кто придёт через полгода.
📌**Что можно сделать заранее, чтобы потом не было больно?
1. Чётко определить границы сервиса** 📌 Какие основные сценарии проекта? 📌 Какие интеграции точно будут, а какие возможны в будущем? 📌 Где можно оставить гибкость, а где нужно жёстко фиксировать логику?
❌ Плохо: «Просто напишем API, потом разберёмся». ✅ Хорошо: «Определяем основные модули и их взаимодействие сразу».
2. Не игнорировать базовые архитектурные паттерны 📌 MVC, MVVM, Hexagonal, Clean Architecture – их придумали не просто так. 📌 Чёткое разделение логики, данных и представления снижает хаос. 📌 Если код разрастается, но логика разделена – его проще поддерживать.
❌ Плохо: «Просто сделаем один монолитный сервис». ✅ Хорошо: «Даже в монолите можно разделить слои и оставить точки расширения».
3. Подумать про данные 📌 Будут ли большие нагрузки? 📌 Какой план роста БД? 📌 Нужно ли кэширование, чтобы не убить базу запросами?
❌ Плохо: «Просто положим всё в одну таблицу». ✅ Хорошо: «Сразу прорабатываем индексы, нормализацию, кэш».
4. Делать код читаемым, а не только рабочим 📌 Писать чистый, модульный код вместо «лишь бы работало». 📌 Соблюдать единые код-стайлы и правила именования. 📌 Добавлять минимальные, но понятные комментарии.
❌ Плохо: «Главное, чтобы работало». ✅ Хорошо: «Если сюда заглянет другой разработчик, он поймёт, что происходит».
5. Писать документацию, но без фанатизма 📌 Архитектурные решения → в понятные диаграммы. 📌 API → описаны в Swagger или Postman. 📌 Главные принципы проекта → зафиксированы в одном месте.
❌ Плохо: «В коде разберёмся». ✅ Хорошо: «Если завтра придёт новый разработчик – он за день вникнет, а не за месяц».
Что в итоге? ❌ Если на старте думать только про скорость разработки – через год проект будет проклят. ✅ Если сразу заложить базовые принципы архитектуры – проект будет расти без боли.
Вопрос не в том, писать ли архитектуру на старте. Вопрос в каком объёме.
Мария Чекашкина
· 15.02
Вся конструкция держится на правильном основании👌 Спасибо за развернутый пост!
ответить
Александр Гаврилин
· 15.02
Сложно конечно Но вообще нужен какой то компромисс для mvp
ответить
еще контент автора
еще контент автора
Антон Суминов | Tony pro IT
Антон Суминов, Руководитель студии Adinadin · 14.02 · ред.
войдите, чтобы увидеть
и подписаться на интересных профи