← До списку лабораторних по Python
Повний опис / сценарій лабораторної:
Meta: навчитися відділяти логіку роботи з даними від логіки прийняття рішень у застосунку. Krok 1. Створити каталог src/app/domain65 з файлами service.py і repo.py. Krok 2. У repo.py описати простий інтерфейс репозиторію користувачів з методами get і save. Krok 3. Реалізувати in memory версію репозиторію для тестів. Krok 4. У service.py створити клас UserService який використовує репозиторій і містить бізнес логіку. Krok 5. Додати методи створення користувача з перевірками валідності. Krok 6. Написати юніт тести для UserService замінюючи репозиторій на фейковий. Krok 7. Занотувати переваги такого поділу при переході з in memory на реальну базу даних. Krok 8. Продумати як організувати транзакції на рівні сервісного шару. Krok 9. Додати простий CLI або HTTP ендпоінт який використовує UserService. Krok 10. Mini zvit. Zavdannya: опиши коли шар сервісів стає надто товстим і потребує подальшого поділу.