2009-08-30 23 views
5

Soy (bastante) un programador experimentado pero totalmente nuevo para Ruby y Ruby on Rails.El último 20% en Ruby on Rails

RoR parece ideal para trabajar rápidamente, especialmente la generación automática de pantallas para operaciones CRUD.

Realmente te hace productivo rápidamente.

La pregunta es con el último 20% del trabajo, cuando debo terminar mi solicitud. ¿Las convenciones de RoR no se interpondrán en mi camino? Porque no todas las tablas de la base de datos deben estar disponibles para todos los usuarios, y no todos pueden editar todas las columnas y/o todas las filas, y las vistas deben adaptarse a la apariencia de mi sitio, etc.

Entiendo que RoR ha sido usado con éxito en sitios vivos, pero ¿cómo exactamente ganas suficiente velocidad en RoR para escapar de la gravedad después de que la primera fase se haya quemado?

+7

Pareces confundir "interponerse en mi camino" con "no hacer el trabajo por mí", al menos a juzgar por tus ejemplos. (¿Tiene que diseñar vistas para que funcionen con la apariencia de su sitio? ¿Cómo es ese un ejemplo de cómo Rails se interpone en su camino?) – Chuck

+0

Buen punto, Chuck. –

Respuesta

7

No creo que los andamios te lleven al 80%. El andamiaje es bueno porque muestra cómo encajan las piezas de los rieles, pero no construiría mi aplicación con el código de andamios. Ahora que te han impresionado los andamios, es mejor que lo olvides por completo. :)

Donde Rails realmente brilla en mi mente es database migrations, la maravilla de cuán dinámico es ActiveRecord y el ecosistema de los complementos.

Hay mucho que aprender a la hora de decidirse por Rails. Tienes un nuevo idioma, un nuevo framework y nuevos complementos, pero si te tomas el tiempo para aprender esas cosas, puedes ser muy productivo con Rails.

+6

Oh, cielos, no es broma. El andamiaje no está * destinado * a llevarlo a ninguna parte cerca de una aplicación completa. +1 – Chuck

+0

Utilizo andamios, pero solo con generadores personalizados. –

1

¿Las convenciones de RoR no se interpondrán en mi camino? Debido a que no todas las mesas base de datos debe estar disponible para todos los usuarios, y no todos los usuarios pueden editar todas las columnas y/o todas las filas, y los puntos de vista debe ser adaptado a la mirada de mi sitio y sentir, etc.

Esto es un poco inseguro. Rails es un marco que se ha eliminado de las aplicaciones del mundo real. Esas aplicaciones también tenían que ocuparse de todos esos problemas, así como de otros en los que aún no había pensado. En general, las convenciones te hacen la vida más fácil una vez que las aprendes.

Otro punto es que las convenciones son simplemente convenciones. No tienes que seguirlos. Ni siquiera tiene que usar RoR para todo, aunque todavía tengo que encontrar un caso en el que no pude/no pude, generalmente intento presionar tanto en la base de datos o caché como sea posible.

5

He estado haciendo Ruby on Rails durante bastante tiempo. El problema 80/20 no es exclusivo de los rieles. Se aplica generalmente al mundo entero. Tampoco estoy al tanto de ningún marco que pueda hacer lógica de negocios para usted.

Para responder a sus preguntas específicas. Las convenciones no se interpondrán en tu camino mientras realizas el 20%. En cambio, las convenciones te ayudarán a superar ese 20% más rápido.

Personalmente, para autenticación de usuario, uso Authlogic. Para la autorización del usuario, uso el complemento Lockdown o Authorization dependiendo de la necesidad del cliente.

También uso inherited_resource en la mayoría de mis proyectos para simplificar el código del controlador. Este es otro poder de convención.

Para aumentar la velocidad de desarrollo, no solo necesitará conocer los rieles, sino también las gemas/complementos que hacen las cosas correctas para usted, para que no tenga que reinventar las ruedas nuevamente. Además, conocer el lenguaje de Ruby es una necesidad para desarrollarse rápidamente más allá del 80%.

Ruby Toolbox proporciona algunas de las gemas y complementos más populares utilizados en proyectos típicos de rieles orientados a dominios específicos. Puede consultar las categorías relevantes y saber qué usa la mayoría de la gente. (Y probablemente sea una buena idea usar gemas populares y bien mantenidas)

El desarrollo de estilo TDD/BDD también lo ayudará a acelerar en el largo plazo.

Por último, una advertencia: si se aleja de la convención de los rieles, tendrá un momento doloroso en general.

P.S. Utilicé a Merb antes. Mi sensación es que las convenciones te ayudan en Merb, pero no recibirás demasiada penalización por no seguirlas en Merb. Sin embargo, mi experiencia con Rails es que si decides no seguir las convenciones de los raíles mientras desarrollas la aplicación Rails, ¡volverá a morderte de una forma u otra! Así que piénselo dos veces cuando realmente intentó alejarse de las convenciones de los rieles ... (Esto es por mi propia experiencia, y por supuesto subjetivo, pero puede pensarlo como una advertencia ...)

0

No lo hago cree que alguna vez tendrá un problema serio con las convenciones de Rails. Simplemente siga las convenciones y confíe en el sistema RoR. La gente detrás de Rails se esforzó mucho en estas convenciones para soportar el 99% de los escenarios de uso común.

Si realmente necesita hacer algo fuera de las convenciones, con el tiempo se complicará bastante rápido. Sin embargo, no estas solo. Hay muchos recursos excelentes en la red para obtener ayuda (por ejemplo, la comunidad StackOverflow).

Para resumir: