Что значит, что язык программирования должен быть “на рельсах”?

StackOverflow https://stackoverflow.com/questions/183462

Вопрос

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

Это было полезно?

Решение

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

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

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

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

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

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

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

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

Другие советы

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

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

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

  

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

     

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

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

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

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

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

  • Поощряемый TDD:автоматически генерируемые скелеты для модульных тестов,

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

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

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

  • интеграция с библиотеками ajax:RJS, прототип и скриптовый интерфейс

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

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

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

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

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

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

Ruby и Groovy - это языки.

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

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

Это метафора, и мне почти сказали, что это нужно объяснить. В любом случае, это очень хорошая метафора для того, что делает Ruby on Rails. Это позволяет очень легко делать (переходить) к обычным вещам, т.е. е. тестирование, валидация, развертывание, MVC.

Я не согласен с другими комментариями к "rails" - это философия соглашения о конфигурации ". и так далее.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top