Теоретическая часть статьи написана неплохо. По практической части: 1. Слишком много кода для такого простого проекта (оверинжиниринг получился) 2. Подход к именованию не очень удачный 3. Архитектурные границы поделены неправильно (у вас получилось подобие CRUD, обернутое в слои) 4. Есть еще и другие проблемы
Теоретическая часть статьи написана неплохо.
По практической части:
1. Слишком много кода для такого простого проекта (оверинжиниринг получился)
2. Подход к именованию не очень удачный
3. Архитектурные границы поделены неправильно (у вас получилось подобие CRUD, обернутое в слои)
4. Есть еще и другие проблемы