FastAPI без лапши в роутинге
В WikiMind разделили роуты и бизнес-логику: в view.py оставили только маршруты, а всю логику вынесли в controller.py. Это упростило тесты, CI и рефакторинг.

В WikiMind мы в какой-то момент поймали классический бекенд-вайб: роуты в FastAPI начали пухнуть логикой, и поддержка стала как разбирать старый ящик с кабелями 😅 Поэтому ввели жёсткое правило: view.py — только маршруты, вся бизнес-логика — в controller.py.
Что это дало? Тестируемость без HTTP-контекста. Контроллеры гоняем обычными юнит-тестами, без поднятия сервера, without pain. Для команды это прям мастхэв: быстрее CI, проще рефакторинг, меньше магии в эндпоинтах.
Самое приятное — паттерн не развалился на масштабе. Мы раскатили его на все 48 бизнес-модулей бэкенда, и архитектура не превратилась в тыкву. На фоне тренда на AI-first продукты и ускорение релизов это особенно ценно: когда фичи летят быстро, код должен оставаться читаемым, а не “работает — не трогай”.