Ruby on Rails
Опубликовано admin в сб., 04/12/2008 - 22:56.
Ruby on Rails — это среда выполнения, облегчающая разработку, внедрение и обслуживание веб-приложений. За месяцы, прошедшие с ее начального выпуска, Rails прошла путь от малоизвестной забавной технологии до феномена мирового масштаба. Она удостоилась наград, но, что более важно, стала именно той средой выполнения, которую стали выбирать для создания широкого круга так называемых приложений Веб 2.0. И это не только модное веяние среди утонченных знатоков: Rails используется для создания веб-приложений многими интернациональными компаниями. И этому есть множество причин.
В первую очередь, создается впечатление, что многие разработчики разочаровались в тех технологиях, которые применяются ими для создания веб-приложений. И похоже, что дело совсем не в том, что именно они используют — Java, PHP или .NET, — у них накапливается ощущение излишней трудоемкости их работы. А затем в один прекрасный момент пришла Rails, с которой работать стало намного
проще. Но сама по себе простота не означает упрощенность. Речь идет о профессиональных разработчиках, создающих реально востребованные веб-сайты. Им хочется видеть созданные ими приложения выдержавшими испытание временем — спроектированными и разработанными с использованием современных, профессиональных технологий. Поэтому разработчики занялись Rails всерьез и обнаружили, что она пригодна не только для разработки веб-сайтов. К примеру, все Rails-приложения выполняются с использованием архитектуры Модель-Представление-Контроллер (Model-View-Controller, MVC). Привычная Java-разработчикам среда выполнения, к примеру Tapestry или Struts, тоже основана на MVC. Но Rails идет в использовании MVC еще дальше: при разработке Rails-приложений в каждом фрагменте кода остается возможность для полного взаимодействия. Похоже на то, что вы начинаете работу, имея уже готовую
структуру приложения.
Профессиональные программисты пишут тесты. A Rails и здесь на высоте: она избавляет их от этой необходимости. Все Rails-приложения имеют встроенное тестирование. По мере добавления к программному коду какой-либо функциональности Rails автоматически создает пустые тестовые функции, предназначенные для ее тестирования. Упрощая тестирование Rails-приложения, среда выполнения способствует его проведению. Rails-приложения пишутся на Ruby — современном интерпретируемом объектно-
ориентированном языке. Краткость кода Ruby не влияет на его понятность — свои идеи на этом языке можно выражать вполне четко и естественно. В результате чего программы легко пишутся и (что не менее важно) по прошествии нескольких месяцев вполне легко читаются. Rails использует все возможности Ruby, являясь его оригинальным расширением, облегчающим жизнь программистов. Программы становятся более короткими и читаемыми. Появляется возможность выполнять задачи, для которых иначе пришлось бы использовать параметр codebase внешних конфигурационных файлов. Тем самым облегчается отслеживание событий. Приводимый ниже
код определяет класс модели, использующейся в проекте. Не стоит именно сейчас вдаваться в детали. Лучше призадуматься над тем, как много информации изложено всего в нескольких строках кода.
class Project < ActiveRecord::Base belongs_to : portfolio
has_one :project_manager
has_many milestones
has_many .deliverables, :through => milestones
validates_presence_of :name, idescription
validates_acceptance_of :non_di sclosure_agreement
validates_uniqueness_of :short_name
end
Разработчики, перешедшие на использование Rails, находят в ней еще и мощную философскую подоплеку. Замыслом Rails преследовалось соблюдение двух ключевых концепций: DRY и соглашения по конфигурации. DRY означает «Don't Repeat Yourself», то есть «Не допускайте повторений» — любая порция сведений в системе должна быть отображена лишь в одном месте. Для воплощения этой
концепции в жизнь Rails использует ту мощь, которая предоставляется ей языком Ruby. В Rails-приложениях дубликаты крайне редки; необходимые сведения приводятся в одном месте, которое часто предлагается в соответствии с соглашениями, существующими в архитектуре MVC, и далее об этом уже можно не волноваться. Для программистов, привыкших к работе с другой средой выполнения
веб-приложений, в которой простые поправки в схеме влекут за собой полудюжину или около того изменений в программном коде, это было настоящим открытием. Весьма важными являются и соглашения по конфигурации. Их суть заключается в том, что у Rails есть установки по умолчанию, имеющие значения почти для всех аспектов, обеспечивающих целостность вашего приложения. Если следовать
соглашениям, можно написать Rails-приложение, используя меньше программных строк, чем имеется в обычном веб-приложении на Java, использующем XML-конфигурацию. Ну а если вам понадобится переписать соглашения, то в Rails это тоже не составит особого труда.
Разработчики, переходящие на Rails, замечают еще кое-что. Среда выполнения Rails является новаторской разработкой, и основная команда ее разработчиков хорошо разбирается в новых веяниях Интернета. Rails не играет в догонялки со ставшими де-факто новыми стандартами: она помогает их определять. К тому же Rails облегчает разработчикам интегрирование в свой код таких функций, как интерфейсы AJAX и RESTful, обеспечивая их встроенную поддержку. (Если вы не знакомы с интерфейсами AJAX и REST, не стоит беспокоиться, чуть позже мы объясним, что это такое.) Разработчики озабочены также внедрением своих продуктов. И тут обнаруживается, что с Rails можно распространять удачную версию приложения на любое число серверов всего лишь одной командой (и также легко вернуть все назад, если версия окажется не вполне удачной). Rails была выделена из реального коммерческого приложения. Оказалось, что лучшим способом создания среды выполнения является определение основных составляющих конкретного приложения, а затем занесение их в общий фонд кода. При разработке Rails-приложения в вашем распоряжении с самого начала уже имеется половина по-настоящему хорошего приложения. Но у Rails есть еще что-то такое, что трудно поддается описанию. У вас возникает чувство, что вы на правильном пути. Разумеется, пока не будет самостоятельно написан ряд приложений на Rails (а это может произойти и в ближайшие 45 минут), вам придется поверить нам на слово. Обо всем этом и будет рассказано на нашем сайте.