Creo est Credo
Los puntos fuertes de Rails
Se puede desarrollar extensas aplicaciones web en Rails sin las numerosas librerías de base requeridas por otros lenguajes. La flexibilidad de Ruby permite extender los desarrollos a niveles antes inimaginables sin demasiados conocimientos teóricos.
Una de las funcionalidades de Rails llamada scaffolding permite implementar interfaces para manipular bases de datos muy rápidamente. A medida que el código de la aplicación evoluciona, el scaffolding (andamiaje, en inglés) se va retirando. Esto permite construir modelos de objetos para manipular las bases de datos usando solo unpar de líneas de código, y dejar que Rails se encargue de las tareas tediosas y repetitivas.
El problema más común de desarrollo en una aplicación web típica implica construir una interfaz web para administrar una base de datos relacional. Para ese tipo de problemas Rails es un framework realmente productivo, gracias a las siguientes características:
- Metaprogramación
-
Las técnicas de metaprogramación usan programas que escriben programas. Otros frameworks, usan extensivamente la generación de código, la cual brinda una impulso excepcional al desarrollo cuando recién comienza, y a través de scripts de personalización, agregar código personalizado en puntos de la aplicación específicos y bien delimitados. La metaprogramación reemplaza estas dos técnicas primitivas y elimina sus desventajas. Ruby es uno de los mejores lenguajes para metaprogramación, y Rails usa esta capacidad. Cabe aclarar que Rails también usa generación de código, pero mucho más metaprogramación para la funcionalidad pesada.
-
Active Record
-
Rails introduce el patrón Active Record para guardar objetos en base de datos. Basada en este patrón de diseño, catalogado por Martin Fowler, la versión de Active Record utilizada por Rails se encarga de descubrir las columnas en una tabla de una base de datos y automaticamente las adjunta a los objetos del dominio, a través de metaprogramación. Este enfoque para envolver tablas de base de datos es simple, elegante y poderoso.
- Convención sobre configuración
-
La mayoría de los frameworks de desarrollo para .NET o Java requieren de forma obligatoria la escritura de páginas de configuración. Rails no necesita mucha configuración. De hecho se puede reducir el código de configuración hasta a un 20%, siguiendo las convenciones comunes.
- Scaffolding
-
A menudo se usa en las etapas tempranas de desarrollo para ayudar a obtener una aplicación funcional rápidamente, y ver como los principalñes componentes trabajan juntos. Rails automaticamente crea mucho de este necesario andamiaje.
- Testeo incorporado
-
Rails crea testeos automatizados de forma simple, los cuales pueden extenderse. Rails además probee piezas de código llamadas harnesses and fixtures, los cuales ayudan a escribir casos de prueba fáciles de escribir y ejecutar con Ruby, a través de la utilidad rake.
- Tres entornos: desarrollo, testeo y producción
-
Rails otorga tres entornos por defecto, desarrollo, testeo, o prueba y produccón. Cada uno se comporta ligeramente diferente al otro, haciendo el ciclo de desarrollo más simple. Por ejemplo, Rails crea una copia de la base de datos de prueba para cada ejecución de prueba.
Hay muchas otras funcionalidades útiles incorporadas a Rails, como por ejemplo Ajax para interfaces de usuario enriquecidas, vistas parciales y helpers para reutilización de código en las vistas, caching incorporado, un framework para envío de mail y web services, muchos de los cuales veremos en próximos posts.
