Каждый объект должен иметь одну обязанность и эта обязанность должна быть полностью инкассирована в класс (Робер Мартин).
Через ваш класс должна проходить только одна ось изменений (Сергей Немчинский)
Т.е. Ваш класс должен меняться только по одной причине (содержать поля и методы относящиеся к одному вопросу).
- Никаких Gob Object.
- Осмысленно используйте SRP. Не следует, необдуманно, рубить все классы на мелкий классы.
- Active Record содержит две оси изменения.