1   2   3   4   5   6   7   8   9   10
Ім'я файлу: магіст-Данещук-фініш-АПДЕЙТ.docx
Розширення: docx
Розмір: 1908кб.
Дата: 18.11.2021
скачати
Пов'язані файли:
2 diplom - гаврилов.doc

2.2. Ruby on Rails


Ruby on Rails - це структура, яка спрощує розробку, розгортання та обслуговування веб-додатків. З моменту свого першого випуску Rails перетворився з маловідомої технології на глобальне явище, і що більш важливо, він став самим середовищем вибору для створення так званих додатків Web 2.0. Рейки добре схопилися з самого початку. Велика кількість розробників були незадоволені технологіями, які вони використовували для створення веб-додатків. І справа, мабуть, не в тому, що вони використовували - Java, PHP чи .NET - у них було відчуття, що їх робота надто копітка. І ось в один момент з’явилися Rails, з якими стало набагато простіше працювати. Але сама простота не означає простоти. Мова йде про професійних розробників, які створюють веб-сайти, які користуються попитом у всьому світі. Вони хочуть побачити створені ними програми, які витримали випробування часом - розроблені та розроблені з використанням сучасних професійних технологій. Тож розробники сприйняли Rails серйозно і виявили, що це більше, ніж просто інструмент розробки веб-сайтів. Наприклад, усі програми Rails запускаються з використанням архітектури Model-View-Controller (Model-View-Controller, MVC).

Поширене середовище виконання Java, таке як Tapestry або Struts, також базується на MVC. Але Rails йде ще далі у використанні MVC: Коли ви розробляєте Rails, ви починаєте якомога ефективніше з програмного забезпечення, яке має місце для кожного фрагмента коду, і всі частини вашого додатку взаємодіють між собою стандартним способом. Професійні програмісти пишуть тести. І Rails знову робить свою справу. Усі програми Rails мають вбудоване тестування. Коли ви додаєте будь-яку функціональність до коду, Rails автоматично створює тестові заглушки для тестування. Цей фреймворк полегшує тестування ваших додатків, заохочуючи тим самим розробників це робити. Rails повністю використовує переваги Ruby і є його оригінальним продовженням, щоб полегшити життя програмістам. Програми стають коротшими та легшими для читання. Це також дозволяє нам виконувати завдання, які в іншому випадку виконувалися б у вихідному коді зовнішніх файлів конфігурації. Це полегшує розуміння того, що відбувається. Наступний код визначає модель класу для проекту. Тепер вам не потрібно вдаватися в подробиці цього коду - краще просто подумати про те, скільки інформації було висловлено в декількох рядках програми.

class Project < ActiveRecord::Base belongs_to :portfolio has_one :project_manager has_many :milestones has_many :deliverables, through: milestones validates :name, :description, presence: true validates :non_disclosure_agreement, acceptance: true validates :short_name, uniqueness: true end

Існують дві інші філософські основи цього фреймворку, які дозволяють скоротити ваш код Rails і зробити його більш читабельним - конвенція щодо конфігурації. DRY розшифровується як "не повторюйся", тобто "ніколи не повторюйся": кожен фрагмент знань у системі повинен бути виражений лише в одному місці. Щоб втілити все це в життя, Rails повністю використовує силу мови Ruby. У програмах Rails ви можете побачити лише невелику частку повторень, потрібно сказати, що це лише в одному місці, це часто пропонують архітектурні конвенції MVC, і вам більше не доведеться турбуватися про це, система дуже добре продумана в цьому плані. Для програмістів, які звикли працювати в інших середовищах веб-розробки, де проста зміна може призвести до того, що вони можуть внести півдюжини, якщо не більше, редагувань програмного коду, це стало відкриттям. Привілей транзакції на основі конфігурації є не менш важливим принципом. Це означає, що Rails має раціональні значення за замовчуванням майже для кожного аспекту, який пов'язує вашу програму. Дотримуючись домовленостей, ви можете написати програму Rails, використовуючи менше коду, ніж звичайна веб-програма Java, використовуючи конфігурацію XML. Якщо конвенції потрібно переписати, Rails також полегшує це.

Розробники, які переходять на Rails, помічають чергову химерність. Rails не відповідає новим стандартам; навпаки, це допомагає визначити їх. Крім того, Rails полегшує розробникам інтеграцію таких функцій, як інтерфейси AJAX та RESTful, у свій код, оскільки їх підтримка вже вбудована в Rails. Розробники також стурбовані розгортанням їх продуктів. А потім виявляється, що за допомогою Rails ви можете розповсюдити хорошу версію свого додатка на будь-яку кількість серверів лише за допомогою однієї команди (і так само легко повернути все назад, якщо версія не зовсім успішна). Рейки вилучено з реального комерційного використання. Виявляється, найкращий спосіб створити середовище - це визначити основні будівельні блоки певної програми, а потім додати їх до загального пулу коду.

Розробляючи додаток Rails, ви вже маєте у своєму розпорядженні половину дуже хорошого додатка з самого початку. Але в Rails є щось інше, що важко описати. Якимсь незрозумілим чином вона створює впевненість у правильному виборі.

Що являє собою MVC в RoR? MVC - це патерн архітектури додатку, чітко розмежує три його компонента (Рис. 11):

Model (Модель) є «суттю» додатка і відповідає за безпосередні алгоритми, розрахунки тощо внутрішній устрій додатки. Також надає лінк до сховища даних.

View (Вид) призначений для виведення даних, наданих Моделлю. Це єдина частина MVC, яка безпосередньо контактує з користувачем.

Controller(Контролер) отримує дані від користувача і передає їх в Модель.Он отримує повідомлення від Моделі і передає в Представлення. Виходячи з цього RoR використовує три компоненти:

  • Active Record

  • Action View

  • Action Controller



Рисунок 11. схема model-view-controler ror

Active Record - це Модель в RoR. Модель зберігає дані і надає базу для роботи з даними. Крім цього Active Record також є ORM фреймворком. ORM значить Object-relational mapping (Об'єктно-реляційна проекція).

Схема MVC в Ruby on Rails Власне Active Record робить такі речі: Проекція таблиці на клас. Кожна таблиця проектується на один або кілька класів за принципом convention over configuration (угода вище конфігурації). Одне з таких угод - ім'я таблиці повинно бути у множині, а назва класу - в єдиному. Атрибути таблиці нальоту проектуються в атрибути примірника Рубі. Після того, як всі проекції зроблені, кожен об'єкт ORM класу представляє певну рядок таблиці, з якої клас був спроектований. Ви можете підключитися до бази даних, використовуючи API, що надається Active Record, який створює необхідний вам запит безпосередньо в движок БД за допомогою адаптерів. У Active Record є адаптери для MySQL, 40 Postgres, MS SQLServer, DB2, і SQLite. Необхідно лише записати параметри доступу до БД у файлі database.yml. Операції CRUD. Це операції create (створення), retrieve (отримання), update (оновлення) і delete (видалення) над таблицею.

Так як Active Record - це ORM фреймворк, ви завжди працюєте з об'єктами. Щоб створити новий рядок таблиці, ви створюєте новий об'єкт класу і заповнюєте його змінні екземпляра значеннями. Варто зауважити, що все це Active Record робить за вас. Перевірка даних перед приміщенням їх в таблицю - це перший крок в безпеці вашого проекту. Active Record надає перевірку Моделі. Дані можуть бути перевірені автоматично за допомогою готових методів. Action View включає в себе логіку, необхідну для виведення даних Моделі. Роль Уявлення в RoR грає Action View. Функції ActionView: Шаблони (Templates).

Шаблони - це файли, що містять наповнювачі (placeholders), які буду замінені на контент. Шаблони можуть містити HTMLкод і код Ruby, вбудований в HTML з використанням синтаксису вбудованого (embedded) Ruby (ERB).

Помічники (helper, далі хелпер) форм і форматування.

Хелпери форм дозволяють створювати такі елементи сторінок, як чекбокси, списки, використовуючи готові методи. У свою чергу хелпери форматування дозволяють форматувати дані за необхідне нам способом.

Макети (layouts) визначають, як контент буде розташований на сторінці. Динамічно створювана сторінка може містити вкладення з декількох сторінок, навіть без використання таблиць і фреймів, використовуючи API Макета. У вебдодатку Контролер регулює потік логіки додатка він знаходиться на кордоні програми, перехоплюючи всі запити, на основі яких він змінює якийсь об'єкт Моделі і викликає Вид, щоб відобразити оновлені дані. У RoR Action Controller є Контроллером, ось його основні функції для роботи програми:

Підтримка сесій.

Сесія - період часу, проведений користувачем на сайті. Його можна відстежити за допомогою cookie або об'єкта сесії. Cookie - невеликий файл, він не може містити об'єкти. Бувають ситуації, коли необхідно викликати певний код, перед тим як виконувати логіку Контролера або після нього, наприклад, аутентифікація користувачів, логування подій, надання персонального відповіді. Допомагають в таких випадках фільтри, що надаються Action Controller. Існують три основних фільтра: before, after і around. Кешування - це процес, при якому найбільш запитуваний контент зберігається в кеші, щоб не запитувати його знову і знову.

Сьогодні Ruby та Ruby on Rails являється однією з популярних мов для розробки веб-сайтів, веб-додатків, серед яких найбільш популярними є:

  • Kickstarter-найбільша стартап площадка для фінансування різних проектів, задумок.

  • Twitter-популярна соціальна мережа.

  • GitHub-веб сервіс для хостингу IT проектів.

  • Redmine вільний серверний веб-застосунок для управління проектами та відстежування помилок.

До системи входить календар-планувальник та діаграми Ганта для візуального представлення ходу робіт за проектом та строків виконання. Redmine написано на Ruby і є застосунком розробленим з використанням відомого веб-фреймворку Ruby on Rails, що означає легкість в розгортанні системи та її адаптації під конкретні вимоги. Для кожного проекту можна вести свої вікі та форуми.

Фреймворк Ruby on Rails.

Rails - це перш за все середовище розробки, яка чудово підходить для створення будь-якого типу веб-додатків: систем для управління веб-сайтами і платформ для ведення електронної торгівлі, програм для організації спільної роботи і для веб-сервісів для здійснення комунікації, для облікових і ERP -систем, статистичних та аналітичних систем.

Ruby on Rails (RoR або «Рельси») - це багаторівневий MVC-фреймворк для побудови веб-додатків, що використовують реляційні і NoSQL бази даних (наприклад, MySQL, MariaDB, PostgeSQL, MongoDB). Фреймворк написаний на мові програмування Ruby. Rails підходить як для розробки звичайних сайтів, які повинні бути реально швидкими, відмовостійкими і працюють під високим навантаженням, так і для веб-додатків зі складною бізнес-логікою і динамічними web-інтерфейсами. Ruby on Rails є відкритим програмним забезпеченням і розповсюджується під ліцензією MIT.

Професійні розробники. Варто відзначити те факт, що на мові програмування Ruby працюють в основному професіонали: поріг входження досить високий, тому програмісти в Ruby зазвичай приходять уже після кількох років роботи на будь-яких інших мовах програмування (найчастіше зі світу PHP). Тому навіть початківець Ruby-програміст - це досвідчений веб-розробник з великим запасом знань і досвіду. Для мови Ruby найпопулярніший фреймворк - це Rails, більше 90% веб-додатків, які написані на Ruby, використовують саме рельси.

Культура розробки на Ruby on Rails.

Основними принципами розробки на Rails є:

  • Принцип DRY (Do not repeat yourself) - фреймворк надає механізми повторного використання програмного коду. Це дозволяє не тільки мінімізувати дублювання коду, але і підвищити швидкість розробки.

  • Принцип Convention over configuration - за замовчуванням у фреймворку використовуються численні угоди по конфігурації, типові для більшості додатків. Це дуже спрощує створення додатків, так як явна специфікація конфігурації потрібно тільки в нестандартних випадках.

  • Автоматизоване тестування - в складі RoR поставляються засоби для проведення повністю автоматичного модульного, інтеграційного і функціонального тестування, а ідеологія Ruby on Rails передбачає використання методів розробки через тестування (TDD - Test Driven Development). Все це робить розроблені додатки реально надійними.

Можливість розширення фреймворка Ruby on Rails. Навколо Ruby on Rails склалася велика екосистема додаткових плагінів з відкритим вихідним кодом («гемів», gems), які реалізують найбільш затребувані функції. «Геми» бувають дуже різні: від низькорівневих, що відповідають за якийсь аспект внутрішньої роботи програми, до високорівневих, що представляють собою окремі модулі для вирішення цілого спектру бізнес-завдань. Використання системи підключаємих плагінів багато в чому і послужило причиною високої популярності фреймворка - можливість вибірково підключати окремі компоненти і бібліотеки дуже сильно прискорює розробку, а той факт, що використовувані розширення добре протестовані і отлаживаются роками, забезпечує надійність рішень, розроблених за допомогою такого підходу.

Міфи про мову Ruby і про фреймворку Ruby on Rails

  1. Міф перший полягає в тому що багато хто вважає що на «рельсах» нема розробників. Але це зовсім не так, робники є, звичайно їх менше, ніж на PHP, але і середній рівень «на голову» вище - дуже багато з тих, хто називає себе php-програмістом, насправді всього лише верстальники з поверхневими знаннями мови програмування, які не в змозі написати навіть самий просте веб-додаток. Якщо порівнювати Ruby з Java, то число розробників однакове, а в порівнянь з .NET, Python і Perl - Ruby-розробників більше.

  2. Другий міф це те що замовники вважають що веб-додаток на Ruby on Rails дуже дорогий. Хороші веб-програмісти взагалі коштують дорого, незалежно від мови і платформи розробки. Рівень ЗП програміста на PHP і програміста на Ruby можна порівняти, якщо перший і другий в змозі написати програму складніше «Hello, world!», Працюють на фреймворками, знають ООП, парадигму MVC, а також мають досвід роботи в сфері більше 3х років.

  3. Третій міф-«Повільно» і «Немасштабовано». GitHub, Groupon, Basecamp, Twitter, Lenta.ru і ще багато проектів з багатотисячною відвідуваністю використовують Rails: працюють швидко, витримують навантаження і відмінно масштабуються.




1   2   3   4   5   6   7   8   9   10

скачати

© Усі права захищені
написати до нас