Построите REST API с нуля, используя Clean Architecture. Регистрация, авторизация, каталог книг, рецензии — всё разделено на слои. Результат: поддерживаемый код и Docker-контейнер, готовый к деплою.
Войдите, чтобы начать проектПоздравляем! Вас только что назначили техническим директором стартапа "Bookshelf". Это небольшая, но амбициозная компания, которая хочет создать платформу для книголюбов — место, где пользователи могут вести каталог прочитанных книг, делиться рецензиями и находить новые книги по рекомендациям.
Инвесторы дали зелёный свет, и теперь у вас есть три месяца на запуск MVP. Параллельно с вами работает frontend-команда — они уже начали разрабатывать веб-интерфейс на React и ждут от вас готовый API. Дизайнеры утвердили макеты, продакт-менеджер расписал user stories. Дело за малым — нужен бэкенд.
Основатель стартапа, Алексей, на прошлой встрече сказал важную вещь:
Я видел, как умирают стартапы из-за технического долга. Первые полгода всё летает, а потом разработчики месяцами не могут добавить простую фичу, потому что код превратился в спагетти. Давай сразу сделаем правильно.
И он прав. Clean Architecture — это не "архитектура ради архитектуры". Это инвестиция в будущее: код разделён на слои, каждый слой отвечает за своё. Через полгода, когда вы наймёте ещё двух бэкенд-разработчиков, они смогут быстро разобраться в проекте. А когда нагрузка вырастет — вы сможете вынести отдельные части в микросервисы без переписывания всего с нуля.
Архитектура разделена на слои: Handler принимает HTTP-запросы, Service содержит бизнес-логику, Repository работает с базой данных. Каждый слой отвечает за своё и не лезет в чужую работу. Такое разделение упрощает поддержку: новый разработчик быстро разберётся, а замена одной части не ломает остальные.
Ваша задача в этом проекте: построить REST API для Bookshelf с нуля. К концу проекта у вас будет:
Это фундамент, на котором будет строиться всё остальное. Позже, когда стартап вырастет, вы столкнётесь с проблемами масштабирования и разрежете монолит на микросервисы. Но сначала — нужен этот самый монолит, и он должен быть написан правильно.