Андрей Колешко «Что не так с rails»
TRANSCRIPT
Что не так с Rails?Андрей Колешко @ka8725
Вступил в ряды Rails разработчиковПолон надежд. Готов изучить “серебряную пулю” от
корки до корки
Повторяющиеся неудачи
Почему?
• Уровень разработчиков слабоват?
• Неадекватный заказчик?
• Нехватка кофе?
• Печенек?
• Не та фаза луны?
Ваши задачи решаются не теми инструментами
Rails - не серебряная пуля
Rails - MVC
Корень всех бед Данная модель работает на небольших проектах с прямолинейными пользовательскими сценариями (например, простые формы CRUD)
ActiveRecord подталкивает к нарушению всех принципов SOLID
В жизни присутствуют сценарии использования (use cases)
Добавляем слой бизнес логикиДобавление нового слоя для бизнес логики облегчает
жизнь
Добавляем слой для viewТеперь слой представления не зависит от структуры
объектов ActiveRecord
API
WebAndroidiOS
View Data
Controller
User
Business Logic
Model
Database
Router
Структура современного проекта
Инструменты
К чему приводит программирование на Rails
К чему приводит программирование с помощью подходящих инструментов
Подходящие инструменты для нашего проекта
• PostgreSQL (hstore, JSON)
• Ruby
• Virtus
• Grape
• Rails (частичное использование некоторых компонентов)
• AngularJS
• ui-router
• Restangular
Выводы
• Не нарушайте принципы SOLID
• Подбирайте правильные инструменты под задачи
• Соблюдение лучших практик Rails не позволит избежать от написания большого количества кода в реальных проектах
Полезные ссылки
• https://goo.gl/iTU7ss - SOLID Object-Oriented Design by Sandi Metz
• https://goo.gl/8vGBtF - Architecture the Lost Years by Robert Martin
• http://railsguides.net - мой блог и контакты