підлаштувань • Образ мислення розробників • Неосяжні зусилля, щоб “виростити” супротивника RoR • Без плюралізму та реального перезастосування коду • Потрібне розуміння кожного окремого компонента
Object-Oriented Design in Ruby: An Agile Primer” • Transparent - зміна кода несе передбачувані наслідки • Reasonable - маленькі зміни у бізнес вимогах, потребують маленькі зміни в коді • Usable - існуючий код легко перезастосовувати у непередбаченному зазделегідь контексті • Exemplary - найлегший спосіб внести змінити, це додати код, що у свою чергу такий же простий (як той, що вже існує)
Rectify (https://github.com/andypike/rectify) • Trailblazer (http://trailblazer.to/) HTTP => Controller (redirecting, rendering, etc) Data Input => Form Object (validation, acceptable input) Business Logic => Command (logic for a specific use case) Data Persistence => Model (relationships between models) Data Access => Query Object (database queries) View Logic => Presenter (formatting data)