Pregunta

Actualmente estoy trabajando con Groovy y Grails. Si bien Groovy es bastante sencillo, ya que es básicamente Java, no puedo decir que grok Grails. Leí que Groovy es para Grails como Ruby es para Ruby on Rails, pero ¿qué significa eso?

¿Fue útil?

Solución

Para abordar su confusión con la metáfora (aunque se ha respondido en otras palabras bajo su pregunta):

Groovy es para Grails como Ruby es para Ruby on Rails, pero ¿qué significa eso?

Grails era un marco web construido sobre / con el lenguaje de programación Groovy para hacer lo mismo para Groovy que Rails (un marco web para Ruby) hace para Ruby.


¿Qué significa estar "sobre rieles"?

La respuesta a esto se reduce a la esencia de estos marcos web.

Estos marcos web (Grails & amp; Rails) se basan en la premisa de `` convención sobre configuración '', lo que significa que el uso de convenciones comunes para desarrollar aplicaciones web puede conducir a una mayor productividad y aplicaciones más mantenibles (esto es una generalización general) ) Y al definir una convención y apegarse a ella, encontrará que sus aplicaciones son fáciles de generar y rápidas de poner en funcionamiento.

Esto es lo que significa para mí estar `` sobre rieles '', como un tren. Cuando se desarrolla una nueva ruta de tren, no hay que preocuparse por reinventar la forma en que el tren se moverá de un lugar a otro, se ha resuelto por una sola convención durante décadas: los rieles. Así como las vías en una ruta de tren limitan su ruta desde dos ubicaciones, los marcos web basados ??en convenciones utilizan convenciones para la flexibilidad de los desarrolladores de aplicaciones para que puedan concentrarse en cuál es el problema comercial esencial de su aplicación.

Un beneficio clave de una convención para un marco web es que el marco web ahora puede hacer suposiciones sobre cómo se unen ciertas capas de la aplicación. En Rails, generalmente se puede suponer que si la tabla de la base de datos tiene un nombre plural, la clase ActiveRecord asignada a esa tabla tendrá el nombre singular correspondiente. En consecuencia, los generadores de código de Rails pueden consumir la información de mapeo de datos para generar código de acceso a datos como buscadores dinámicos, migraciones, recorridos de asociación con carga lenta, etc. Este código de acceso a datos en un marco basado en la configuración es laborioso de codificar a mano.

Otros consejos

Varias personas han mencionado los tecnicismos de lo que hace que Rails / Grails sean lo que son. Varias personas también han mencionado '' convenio sobre configuración '' como siendo los "rieles" en rieles / griales. Esto se está acercando a la verdad. Pero esta es solo una característica de la amplia filosofía de Rails, que es el concepto de software con opiniones .

El software con opiniones no se puede describir solo en términos técnicos; es una filosofia; un ethos; una actitud . Me gusta o odio , eso es lo que está en el corazón de Rails.

Aquí hay una excepción de 2005 entrevista con David Heinemeier Hansson , creador de Rails:

  

Rails es un software obstinado. Evita colocar los viejos ideales del software en una posición primaria. Uno de esos ideales es la flexibilidad: la noción de que debemos tratar de acomodar tantos enfoques como sea posible, de que no debemos juzgar una forma de desarrollo sobre otra. Bueno, Rails sí, y creo que es por eso que funciona.

     

Con Rails, intercambia flexibilidad a nivel de infraestructura para ganar flexibilidad a nivel de aplicación. Si está contento de trabajar por el camino dorado que he incorporado en Rails, obtendrá una inmensa recompensa en términos de productividad que le permite hacer más, más rápido y mejor a nivel de aplicación.

También hay una entrevista posterior que más explora el tema .

Por lo tanto, estar 'sobre rieles' es una metáfora de ser 'obstinado', por eso se le llama así. Eso y el hecho de que "Ruby on Rails" es todoiterativo, que cualquier periodista o escritor le dirá, es una forma segura de atraer la atención de la gente.

Creo que un marco que se esfuerza por ser como "rieles" se refiere a varias cosas:

  • nivel de modelo: un ORM con patrón AR (en lugar de datamapper), migraciones o algún esquema automatizado y gestión de capa de modelo, manejo de claves foráneas en la aplicación (no en el esquema de la base de datos, y tampoco utilizando procedimientos almacenados o lógica pura de DBMS)

  • TDD fomentado: esqueletos generados automáticamente para pruebas unitarias,

  • convenciones de nomenclatura que conectan nombres de tablas de bases de datos y nombres de modelos, acciones de controlador y vista y plantillas HTML

  • esquema simplificado de reconocimiento de ruta y generación de ruta

  • énfasis en la arquitectura REST

  • integración con libs ajax: RJS, prototipo y scriptaculous

Rails es un marco para desarrollar aplicaciones web con una base de datos. Creo que el nombre originalmente era un juego de palabras. Un tren puede llevarte a un lugar realmente rápido, pero solo a donde van los rieles.

Estar sobre rieles significa que no puedes controlar a dónde vas. Significa que solo puedes ir donde se han colocado los rieles. Cualquier intento de ir a donde las personas que colocaron los rieles no anticiparon que irá conducirá a la frustración.

Es una expresión automotriz. Cuando un automóvil se maneja excepcionalmente bien, se dice que "curva como conducir sobre rieles". (es decir, te da un excelente control).

No sé si ahí es donde los rieles obtuvieron ese nombre, pero así es como lo interpreté.

Respuesta realmente corta y simple: Convención sobre configuración.

Como se dijo anteriormente, Rails y Grails proporcionan convenciones para el desarrollo de aplicaciones web: nombrar sus piezas de una manera determinada y colocarlas en los lugares correctos hace que su aplicación funcione de manera predeterminada sin configuración adicional. Cuando desee desviarse de la convención, puede configurar su camino allí.

Ruby y Groovy son idiomas.

Ruby on Rails es un marco innovador para aplicaciones web. Vea excelentes respuestas sobre software obstinado arriba.

Como cuestión de historia, un título funcional para un marco de aplicaciones web Groovy fue Groovy on Rails . Sin embargo, la comunidad de RoR se opuso. El equipo eligió Grails en su lugar.

Es una metáfora, y casi me dicen que hay que explicarlo. De todos modos, es una metáfora extremadamente buena de lo que hace Ruby on Rails. Hace que sea extremadamente fácil hacer (ir a) las cosas comunes, i. mi. prueba, validación, implementación, MVC.

No estoy de acuerdo con los otros comentarios de '' on rails es una filosofía sobre la convención sobre la configuración '' y así sucesivamente.

Mientras que los rieles se adhieren a esas filosofías, "Ruby on Rails" es el nombre de un marco web. Nada más y nada menos. No se refiere a ninguna "on-railsness" específica al respecto, es solo una marca de la misma manera que McDonald's es una marca.

Si alguien más escribe otro marco y lo llama "Python on Rails" entonces habrá otra marca. Si no, "XYZ sobre rieles" solo significa que las personas están siendo confundidas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top