Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пример диплома специалиста / 002 Пояснювальна записка.docx
Скачиваний:
15
Добавлен:
28.03.2016
Размер:
323.39 Кб
Скачать

2.6.1.5. Додаткові інструменти і бібліотеки

Неминучою була поява зовнішніх інструментів для роботи з Rails. Наприклад, в редактор TextMate вбудована непогана підтримка (синтаксичне підсвічування, автоматичне дописування коду і так далі). Цей редактор, напевно, є найпопулярнішим серед програмістів на Ruby на платформі OS X.

21

02070743.00569-01 81 01

Багатообіцяючим виглядає проект InstantRails (http://instantrails.rubvforge.org). Це єдиний пакет, Ruby, що містить, Rails, MYSQL і Apache, причому всі продукти вже конфігуровані і готові до роботи.

На платформі OS/X є еквівалентний проект Locomotive. Це досить зріле і добре працююче середовище для розгортання Rails «одним клацанням».

Існує також RadRails – інтегроване середовище розробки для Rails, надбудованою над Eclipse, що підтримує управління версіями, відладку, сервери WEBrick, майстер генерації коду, синтаксичне підсвічування, інструменти для роботи з даними і багато що інше. Цей пакет повинен працювати на всіх платформах, де працює сам Eclipse.

Важливо також розуміти, що таке модулі Rails, що підключаються (plugins). Це невеликі автономні програми, які модифікують поведінку ActiveRecord або Rails. Їх нескладно писати і розгортати. Існують сотні невеликих модулів, що підключаються, займаються аутентифікацією, генерацією GUID, інтернаціоналізацією, підтримкою CSS і так далі.

2.7. Ruby і Web-сервер

На сьогоднішній день одним з найпопулярніших Web-серверов є Apache. Ще одна корисна можливість на стороні сервера – вбудований Ruby; цю технологію підтримують інструменти erb і eruby. Вони дозволяють вбудовувати код на Ruby в текст сторінки (зазвичай HTML або XML), унаслідок чого дані можна вставляти динамічно.

Деякі розробники реалізували Web-сервери, написані цілком на Ruby. Природно виникає питання: навіщо писати новий Web-сервер, коли їх вже і так існує немало – узяти хоч би той же Apache?

По-перше, є ситуації, коли бажано мати спеціалізований Web-сервер, наприклад ради нестандартного способу обробки сторінок, коли можна пожертвувати функціональністю заради швидкості, або для автоматичної трансляції спеціальної розмітки в HTML.

22

02070743.00569-01 81 01

По-друге, може виникнути бажання по експериментувати з поведінкою сервера і його взаємодією із зовнішнім кодом, наприклад з CGI-програмами. Можливо, у вас є якісь ідеї відносно створення сервера застосувань і середовища розробки на стороні сервера.

По-третє, інколи буває розумно вбудувати Web-сервер в інше застосування. До цієї можливості удаються розробники, що бажають надати функціональність програмної системи зовнішньому світу; протокол HTTP простий і чітко визначений, а Web-браузеры як клієнти є всюди. Цей прийом можна навіть використовувати для видаленої відладки, якщо система часто оновлює свій внутрішній стан і робить його доступним вбудованому серверу.

І остання причина полягає в тому, що невеликий автономний Web-сервер може спростити розгортання і конфігурацію. Наприклад, перезапустити сервер для застосування Rails набагато простіше, якщо в цій якості виступає WEBrick, а не Apache [18].

2.7.1. Модуль mod_ruby

Зазвичай, якщо CGI-сценарий пишеться мовою, що інтерпретується, то при кожному запиті завантажується новий екземпляр інтерпретатора. Це дорого обходиться з точки зору вжитку ресурсів сервера і часу виконання.

Сервер Apache вирішує цю проблему шляхом створення завантажуваних модулів, які, по суті, стають частиною сервера. Вони завантажуються динамічно в міру необхідності і стають загальними для всіх залежних від них сценаріїв. Одним з таких модулів є mod_ruby.

Модуль mod_ruby реалізує декілька директив Apache, зокрема: