- всегда используй state_machine
- Выделение репозиториев (и если у нас репозиторий User то через него достаем только юзеров!)
- используй презентеры (draper)
- фикстуры в тестах
- почему нужно использовать jbuilder для апи
- respond_with умнее чем кажется
- оперируйте объектами, а не числами (валидация, присвоение ...)
- кастомная валидация в модели, выделение метода вопроса
- skip_before_filter зло, но безопасность по дефолту
- value object, embedded object
- методы вопросы any? present? blank? zero?
- аттрибуты в моделях по имени существующих методов
- scoped vs all, includes
- черные и белые списки (except, only, безопасность по дефолту)
- самодокументируемый код (примеры с sign_in, if user.can_edit_profile)
- один уровень абстракции
- CQS
- переопределение дефолтного поведения (переопределяем destroy так что он всего лишь помечает, это нарушение постусловия контракта)
- зависимость от типа - убийство полиморфизма
- использование кастомных импутов форм - добро
- потоковый парсинг
- ожидания от апи (index отдает полный список, а не урезанные данные)
- дефолт в ифах и кейсах, когда его там нет
- как версионировать api