Что значит для языка программирования быть "на рельсах"? - PullRequest
29 голосов
/ 08 октября 2008

В настоящее время я работаю с Groovy и Grails. Хотя Groovy довольно прост, так как это в основном Java, я не могу сказать, что я использую Grails. Я читал, что Groovy для Grails так же, как Ruby для Ruby on Rails, но что это значит?

Ответы [ 11 ]

39 голосов
/ 08 октября 2008

Чтобы устранить путаницу с метафорой (хотя на ваш вопрос ответили другими словами):

Groovy для Grails, как Ruby для Ruby on Rails, но что это значит?

Grails - это веб-фреймворк, построенный на / с языком программирования Groovy, который делает то же самое для Groovy, что Rails (веб-фреймворк для Ruby) делает для Ruby.


Что значит быть "на рельсах"?

Ответ на этот вопрос сводится к сути этих веб-фреймворков.

Эти веб-фреймворки (Grails & Rails) построены на предпосылке «соглашения по конфигурации», что означает, что использование общих соглашений для разработки веб-приложений может привести к повышению производительности и более поддерживаемым приложениям (это грубое обобщение). Определив соглашение и придерживаясь его, вы обнаружите, что ваши приложения легко создавать и быстро запускать и запускать.

Вот что для меня значит быть "на рельсах", как поезд. Когда разрабатывается новый железнодорожный маршрут, не нужно беспокоиться о том, чтобы заново изобрести способ, которым поезд будет перемещаться из одного места в другое, это решалось одним соглашением на протяжении десятилетий: рельсы. Подобно тому, как железнодорожные пути ограничивают путь из двух мест, основанные на соглашениях веб-платформы используют соглашения для гибкости разработчиков приложений, чтобы они могли сосредоточиться на том, что является основной бизнес-проблемой их приложения.

Одним из ключевых преимуществ конвенции для веб-фреймворка является то, что веб-фреймворк теперь может делать предположения о том, как определенные слои приложения соединяются вместе. В Rails обычно можно предположить, что если таблица базы данных имеет имя во множественном числе, класс ActiveRecord, сопоставленный с этой таблицей, будет иметь соответствующее имя в единственном числе. Следовательно, генераторы кода Rails могут использовать информацию отображения данных для генерации кода доступа к данным, такого как динамические искатели, миграции, лениво загруженные ассоциации и т. Д. Этот код доступа к данным в инфраструктуре на основе конфигурации трудоемок для кодирования вручную.

14 голосов
/ 09 октября 2008

Несколько человек упомянули о технических особенностях того, что делает Rails / Grails тем, чем они являются. Несколько человек также упомянули «соглашение о конфигурации» как «рельсы» в Rails / Grails. Это становится ближе к истине. Но это только одна из характерных черт широкой философии Rails, которая заключается в концепции самоуверенного ПО .

Мнение программного обеспечения не может быть описано только в технических терминах; это философия; этос; отношение . Нравится тебе это или ненавидишь , , что - вот что лежит в основе Rails.

Вот выдержка из интервью 2005 с Дэвидом Хейнемайером Ханссоном , создателем Rails:

Rails - программное обеспечение. Он избегает ставить старые идеалы программного обеспечения в исходное положение. Одним из таких идеалов является гибкость - идея о том, что мы должны пытаться учесть как можно больше подходов, что мы не должны судить об одной форме развития над другой. Что ж, Rails делает, и я верю, что именно поэтому он работает.

С Rails вы торгуете гибкостью на уровне инфраструктуры, чтобы получить гибкость на уровне приложений. Если вы готовы работать по золотому пути, который я внедрил в Rails, вы получите огромное вознаграждение с точки зрения производительности, которое позволяет вам делать больше, быстрее и лучше на уровне приложений.

Существует также более позднее интервью, которое дополнительно исследует предмет .

То есть «на рельсах» - это метафора «самоуверенности», поэтому и называется так, как есть. Это и тот факт, что «Ruby on Rails» - это alliteratve, о котором вам скажет любой журналист или писатель, - верный способ привлечь внимание людей.

8 голосов
/ 08 октября 2008

Я думаю, что структура, которая стремится быть "подобной рельсам", относится к нескольким вещам:

  • на уровне модели: ORM с AR-шаблоном (а не datamapper), миграции или некоторые автоматизированные схемы и управление уровнем модели, обработка внешних ключей в приложении (не в схеме базы данных, а также не использование хранимых процедур или чистая логика СУБД)

  • TDD рекомендуется: автоматически генерируемые скелеты для юнит-тестов,

  • соглашения об именах, связывающие имена таблиц базы данных и имена моделей, действия контроллера и представления и шаблоны HTML

  • оптимизированная схема распознавания и генерации маршрута

  • акцент на архитектуре REST

  • интеграция с ajax libs: RJS, прототип и scriptaculous

7 голосов
/ 08 октября 2008

Rails - это инфраструктура для разработки веб-приложений с базой данных. Я думаю, что название изначально было игрой слов. Поезд может доставить вас куда-нибудь действительно быстро, но только туда, куда идут рельсы.

4 голосов
/ 11 октября 2008

Нахождение на рельсах означает, что вы не можете контролировать, куда идете. Это означает, что вы можете идти только туда, где были проложены рельсы. Любая попытка пойти туда, куда люди, положившие рельсы, не ожидали, что вы пойдете, приведет к разочарованию.

1 голос
/ 05 ноября 2008

Ruby и Groovy являются языками.

Ruby on Rails - это инновационная платформа для веб-приложений. См. Отличные ответы на самоуверенное программное обеспечение выше.

Исторически, рабочее название для веб-фреймворка Groovy было Groovy on Rails . Однако сообщество RoR возражало. Команда выбрала Grails .

1 голос
/ 09 октября 2008

Как уже говорилось выше, Rails и Grails предоставляют соглашения для разработки веб-приложений - присваивая названия вашим элементам определенным образом и размещая их в нужных местах, ваше приложение работает по умолчанию без дополнительной настройки. Если вы хотите отклониться от соглашения, вы можете настроить свой путь там.

1 голос
/ 08 октября 2008

Действительно короткий и простой ответ: соглашение по конфигурации.

1 голос
/ 08 октября 2008

Это автомобильное выражение. Когда автомобиль управляется исключительно хорошо, говорят, что он «вращается, как езда по рельсам» (т. Е. Он дает вам отличный контроль).

Я не знаю, где люди получили это имя, но я так его интерпретировал.

0 голосов
/ 09 октября 2008

Я не согласен с другими комментариями о том, что "на рельсах - это философия соглашения о конфигурации" и т. Д.

Хотя rails придерживается этой философии, "Ruby on Rails" - это название веб-фреймворка. Ни больше ни меньше. Это не относится к какому-либо конкретному вопросу о «рельсах», это просто название бренда, точно так же, как McDonald's - это название бренда.

Если кто-то еще напишет другой фреймворк и назовет его «Python on Rails», тогда будет другое название бренда. Если нет, то «XYZ на рельсах» означает, что люди в замешательстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...