Download - Андрей Колешко «Что не так с Rails»
![Page 1: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/1.jpg)
Что не так с Rails?Андрей Колешко @ka8725
![Page 2: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/2.jpg)
Вступил в ряды Rails разработчиковПолон надежд. Готов изучить “серебряную пулю” от
корки до корки
![Page 3: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/3.jpg)
![Page 4: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/4.jpg)
![Page 5: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/5.jpg)
![Page 6: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/6.jpg)
Повторяющиеся неудачи
![Page 7: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/7.jpg)
Почему?
![Page 8: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/8.jpg)
• Уровень разработчиков слабоват?
• Неадекватный заказчик?
• Нехватка кофе?
• Печенек?
• Не та фаза луны?
![Page 9: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/9.jpg)
Ваши задачи решаются не теми инструментами
![Page 10: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/10.jpg)
Rails - не серебряная пуля
![Page 11: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/11.jpg)
Rails - MVC
![Page 12: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/12.jpg)
Корень всех бед Данная модель работает на небольших проектах с прямолинейными пользовательскими сценариями (например, простые формы CRUD)
![Page 13: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/13.jpg)
ActiveRecord подталкивает к нарушению всех принципов SOLID
![Page 14: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/14.jpg)
В жизни присутствуют сценарии использования (use cases)
![Page 15: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/15.jpg)
Добавляем слой бизнес логикиДобавление нового слоя для бизнес логики облегчает
жизнь
![Page 16: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/16.jpg)
Добавляем слой для viewТеперь слой представления не зависит от структуры
объектов ActiveRecord
![Page 17: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/17.jpg)
API
WebAndroidiOS
View Data
Controller
User
Business Logic
Model
Database
Router
Структура современного проекта
![Page 18: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/18.jpg)
Инструменты
![Page 19: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/19.jpg)
К чему приводит программирование на Rails
![Page 20: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/20.jpg)
К чему приводит программирование с помощью подходящих инструментов
![Page 21: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/21.jpg)
Подходящие инструменты для нашего проекта
• PostgreSQL (hstore, JSON)
• Ruby
• Virtus
• Grape
• Rails (частичное использование некоторых компонентов)
• AngularJS
• ui-router
• Restangular
![Page 22: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/22.jpg)
Выводы
• Не нарушайте принципы SOLID
• Подбирайте правильные инструменты под задачи
• Соблюдение лучших практик Rails не позволит избежать от написания большого количества кода в реальных проектах
![Page 23: Андрей Колешко «Что не так с Rails»](https://reader033.vdocuments.net/reader033/viewer/2022050922/55b14f2dbb61eb1e0c8b474e/html5/thumbnails/23.jpg)
Полезные ссылки
• 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 - мой блог и контакты