
Чистая архитектура для MVP — оверхед. Пока в проект не пришёл AI
wizardloong 7 часов назад Чистая архитектура для MVP — оверхед. Пока в проект не пришёл AI Средний 5 мин 3.3K Open source * SaaS / S+S * Python * Аналитика Всем привет!После публикации прошлой статьи про шаблон для...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. wizardloong 7 часов назад Чистая архитектура для MVP — оверхед. Пока в проект не пришёл AI Средний 5 мин 3. 3K Open source * SaaS / S+S * Python * Аналитика Всем привет!
После публикации прошлой статьи про шаблон для микропроектов я получил много полезной критики. Часть замечаний оказалась настолько хорошей, что я решил пересобрать некоторые архитектурные решения и заодно переосмыслить сам подход к MVP-разработке в эпоху AI-агентов. В конце статьи я оставлю ссылку на свой DEV-блог, если захотите узнать больше о соло-разработке SaaS продуктов.
Технические детали
Первым делом давайте разберём пару интересных замечаний с прошлой публикации и проработаем их. Тут будет душно, но после сделаем интересные выводы. Зачем в хендлерах на каждую команду заново создавать сервисы и репозитории?
Почему бы не сделать хендлер на основе класса, добавить тод register, который будет вешать команды на нужный метод класса, а сервисы и репозитории передать в инит? Вообще я делал это для простоты. Однако замечание действительно интересное.
В чём была проблема: — В каждом хендлере была новая инициализация сессии БД, что делало невозможным тестирование без реальной живой сессии БД. — Не было единой точки композиции. Хендлеры во многом похожи, однако собираются каждый раз заново.
Отраслевые последствия
Это создавало риски неправильной сборки и, в целом, могло замедлять добавление новых хендлеров. Теперь же мы имеем такую картину: — TelegramHandlers - это нормальный класс, теперь с ним можно делать что угодно. — У него есть единая точка сборки всех роутов.
— Инъекция фабрики сессии через конструктор. Ну и чем это лучше: — Теперь изи подменяется зависимость от БД для тестов - можно мокать, давать другую фабрику и что угодно. — Весь список роутов теперь до крайности нагляден - вместо хаоса тегов @router у нас единый register - короткий и очевидный.
— Код легче масштабировать. Вывод: — Код нагляднее, а зависимости поставляются чище. сервисы почему-то знают что-то об arq и sqlalchemy, а не работают через абстракции Да, получилась не-очень-чистая архитектура, которая не решает проблемы.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





