Принцип прост. Одна модель - один модуль.
Преимущества:
- пропадает вопрос "где разместить код", ответ очевиден
- проще определить назначение модуля
- проще определить зависимости между модулями
- проще абстрагироваться
- объединить мелкие модули в один большой проще, нежели распилить большой модуль на мелкие
Минусы:
- большое количество папок
Примечание
- в примере модуль кажется абсолютно пустым и бессмысленным, на практике модуль наполнится логикой по мере работы над проектом
Пример обычного модуля:
Companies
- Models
-- Company
-- CompanyInvite
-- CompanyMember
-- CompanyNews
- Services
-- Companies
-- CompanyInvites
-- CompanyMembers
-- CompanyNews
Пример модулей по принципу один модуль - одна модель:
Companies
- Models
-- Company
- Services
-- Companies
CompanyInvites
- Models
-- CompanyInvite
- Services
-- CompanyInvites
...