Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ruby on Rails – висхідна зірка комп’ютерних інф...docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
772 Кб
Скачать
☆

5. Переваги Rails

“Ruby on Rails is a breakthrough in lowering the barriers of entry to programming. Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days.”

-Tim O'Reilly, Founder of O'Reilly Media

До цього часу багато було сказано про плюси RoR. Та мимоволі постає питання: яким чином йому вдається процвітати не маючи в своєму активі обширних бібліотек, як це потрібно в інших мовах? Пропоную розглянути саме ці аспекти, що надають Rails такої гнучкості.

Безперечно, всі розробники Веб-ужитків, що працюють з Rails повинні дотримуватись двох концепцій: DRY і домовленість по конфігурації. Хотілося б докладніше розглянути їх. Отже, DRY – “Don’t Repeat Yourself” в перекладі означає «Не повторюйся». А саме, кожна стрічка коду повинна бути унікальною. І якщо хоча б два методи мають одинакові стрічки, то їх неодмінно потрібно об’єднувати в окремий метод. Наприклад: якщо у методах add_to_cart, empty_cart потрібно використати flash[:notice] = msg

redirect_to :action => :index

то простіше помістити їх в окремий метод redirect_to_index(msg). Такий прийом надає коду лаконічності та зменшує ресурсні затрати ужитку вцілому.

class StoreController < ApplicationController

def add_to_cart

begin

product = Product.find(params[:id])

rescue ActiveRecord::RecordNotFound

logger.error("Try to get nil product #{params[:id]}")

redirect_to_index("Wrong product's id ")

else

@cart = find_cart

@cart.add_product(product)

redirect_to_index

end

end

def empty_cart

session[:cart] = nil

redirect_to_index("Now your cart is empty")

end

private

def redirect_to_index(msg)

flash[:notice] = msg

redirect_to :action => :index

end

end

Ще одна цікава річ – це домовленість по конфігурації. Тобто, розробнику пропонується певний набір правил для написання того чи іншого елементу програми. З одного боку одразу всі правила тяжко запам’ятати. А з іншого – ця концепція є ідеальним методом для використання всіх автоматичних кодів, що на інших платформах мають вигляд повсякчасної рутинної роботи. Серед таких конфігурацій, наприклад:

  • Ім’я контроллера завжди повинне бути в однині, так як платформа по замовчуванню створює базу даних на основі контроллера, але в множині;

  • Ім’я класу повинне починатися з великої букви, при чому, якщо воно має декілька слів, то, відповідно, вони писатимуться разом і кожне слово з великої букви; такий стиль написання називають «верблюжим стилем» (“Camel casing”).

  • Для розділення слів при найменуванні методів, таблиць баз даних, колонок, атрибутів та символів потрібно використовувати нижнє підкреслення. Наприклад, щоб представити клас з іменем ChunkyBacon можна використати символ :chunky_bacon.

Та це не все!!! Саме цікаве ще попереду…

6. Філософія Ruby on Rails

“Rails is the killer app for Ruby.”

Yukihiro Matsumoto, Creator of Ruby

Уже декілька розділів підряд пов’язані з філософією. А що ж дійсно ховається за словом «філософія». У нашому випадку це ті методи, точніше кажучи принципи, за якими працює програма. Rails побудований на філософії MVC – Model-View-Controller.

Що ж собою по суті являє MVC? MVC в перекладі означає Модель-Вид-Контроллер. Це архітектурний шаблон, який використовується при проектуванні та розробці програмного забезпечення. Він ділить програму на три частини. У тріаді до обов'язків компоненту Модель (Model) входить зберігання даних і забезпечення інтерфейсу до них. Вигляд (View) відповідальний за представлення цих даних користувачеві. Контролер (Controller) керує компонентами, отримуючи сигнали у вигляді реакції на дії користувача, і повідомляючи про зміни модель компоненту. Така внутрішня структура в цілому розбиває систему на самостійні частини і розподіляє відповідальність на різні компоненти.

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

Зареєстровані події транслюються в різні запити, що направляються компонентам Моделі або об'єктам, відповідальним за відображення даних. Розділення моделі від представлення даних дозволяє незалежно використовувати різні компоненти для відображення інформації. Таким чином, якщо користувач через Контролер внесе зміни в Модель даних, то інформація, представлена одним або декількома візуальними компонентами, буде автоматично відкоректована відповідно до змін, що відбулися.

Мета шаблону — гнучкий дизайн програмного забезпечення, який повинен полегшувати подальші зміни чи розширення програм, а також надавати можливість повторного використання окремих компонент програми. Крім того використання даного шаблону в великих системах приводить їх до певної впорядкованої структури і робить зрозумілішими завдяки зменшенню їх складності. Наприклад, у мові програмування Java концепція MVC підтримується на рівні стандартних класів-бібліотек. В результаті використання парадигми MVC програміст отримує в своє розпорядження могутню структуру об'єктів-компонентів, функції яких строго розмежовані, що гарантує надійність і розширюваність системи, що розробляється.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]