Skip to content

Latest commit

 

History

History
31 lines (28 loc) · 1.85 KB

README.md

File metadata and controls

31 lines (28 loc) · 1.85 KB

rails specific

  • всегда используй state_machine
  • Выделение репозиториев (и если у нас репозиторий User то через него достаем только юзеров!)
  • используй презентеры (draper)
  • фикстуры в тестах
  • почему нужно использовать jbuilder для апи
  • respond_with умнее чем кажется
  • оперируйте объектами, а не числами (валидация, присвоение ...)
  • кастомная валидация в модели, выделение метода вопроса
  • skip_before_filter зло, но безопасность по дефолту
  • value object, embedded object
  • методы вопросы any? present? blank? zero?
  • аттрибуты в моделях по имени существующих методов
  • scoped vs all, includes

for all

  • черные и белые списки (except, only, безопасность по дефолту)
  • самодокументируемый код (примеры с sign_in, if user.can_edit_profile)
  • один уровень абстракции
  • CQS
  • переопределение дефолтного поведения (переопределяем destroy так что он всего лишь помечает, это нарушение постусловия контракта)
  • зависимость от типа - убийство полиморфизма
  • использование кастомных импутов форм - добро
  • потоковый парсинг
  • ожидания от апи (index отдает полный список, а не урезанные данные)
  • дефолт в ифах и кейсах, когда его там нет
  • как версионировать api