Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rails без ActiveRecord: старая-добрая рельса или инвалид c костылями?

Rails без ActiveRecord: старая-добрая рельса или инвалид c костылями?

Очень часто работая с rails приложениями не задумываешься о том, что будет, если отказаться от стандартных Rails-way решений и библиотек, однако, столкнувшись со всем этим в процессе переосмысливания архитектуры приложения задаешь себе другой вопрос - а нужна ли теперь мне рельса?

Sharipov Ruslan

June 23, 2014
Tweet

More Decks by Sharipov Ruslan

Other Decks in Programming

Transcript

  1. Проект: ! 1.5 года активной разработки Тонна rails-way кода CI

    зелёный ~ раз в месяц, а то и реже >500 opened Github issues (процентов 70 - баги) 1000-1500 LoC классы, vim тормозит ! Недовольные разработчики
 Недовольный заказчик
  2. ActiveRecord troubles Violation of SRP Say goodbye to User class

    with >1000 LoC Say goodbye to ActiveRecord-depended gems Say goodbye to AR callbacks
  3. ActiveRecord troubles Persistence Domain logic Forms + validations Observers Callbacks

    Tests ActiveRecord model Да, многое из того, что ^^выше^^ нам пришлось/придётся переписать
  4. Say goodbye ActiveRecord-зависимым гемам: ! devise, acts_as_paranoid/paranoia, acts_as_taggable, nested_form, draper,

    paperclip, paper_trail, friendly_id, auto_strip_attributes и ещё несколько тысячам :)
  5. routes.rb form_for Ability.rb request params polymorphic associations AR Serializers ActiveModel

    validations url_for form helpers accept_nested_attributes_for strong_parameters csrf_token ActionView helpers attr_accessible Callbacks
  6. Теряем: Optimistic locking Dirty tracking ActiveRecord Serializers ActiveRecord Observers accept_nested_attributes_for

    Callback hell Головную боль при смене способа хранения :) Приобретаем: Простые PORO модели, репозитории, сервисы, предсказуемый код Независимые друг от друга слои !