Proceso de desarrollo de Ruby on Rails

8

Somos un pequeño equipo que está a punto de comenzar a desarrollar una versión localizada de una aplicación web estadounidense exitosa en Corea, utilizando RoR.

Nuestra pregunta es: ¿Qué proceso recomendaría que usemos para desarrollar la aplicación?

¿Deberíamos comenzar con los modelos de datos? Las vistas en HTML y luego codificarlas? ¿Tomar una característica única, desarrollarla y luego agregar características adicionales según sea necesario?

Algunos detalles más sobre el proyecto:

  1. es una aplicación web para propietarios de pequeñas empresas
  2. incluye las funciones habituales de gestión de documentos de administración de informes de panel de control de crm que la mayoría de las aplicaciones de negocios pequeños tienden a tener
  3. El tamaño del equipo es inicialmente de 2 personas: un programador y un diseñador / gurú de CSS (solo un codificador)
  4. El nivel de experiencia es medio. buen conocimiento de Git, Ruby, Rails y XHTML / CSS, menos experiencia con problemas de implementación. este es el primer proyecto de este tipo que estamos haciendo juntos como equipo
Kai EV
fuente

Respuestas:

2

Recomiendo el patrón de desarrollo impulsado por el comportamiento,

Si no está familiarizado, permítame darle una descripción general:

Comience por las tuercas y tornillos del "paso del elevador" de la aplicación.

"¿Qué es esto que estamos construyendo? ¿Qué valor aporta?"

Y luego elija el requisito mínimo absoluto "característica" y comience a "especificarlo". ID 'recomienda usar Cucumber: http://cukes.info/ y Rspec: http://rspec.info/ para describir la característica cómo debe comportarse ... ejecutar las pruebas / especificaciones y verlas fallar ...

Luego sumérjase y comience a implementar la función y vea pasar las pruebas 1 por 1.

Cuando se realiza esta función (todas las pruebas pasan) repita el proceso ... pase a la siguiente "función" de requisito mínimo y así sucesivamente ...

En cuanto a la carga de trabajo, enfóquese en la característica de su edificio juntos, el programador trabaja en el comportamiento y el diseñador trabaja en la apariencia hasta que ambos funcionen perfectamente juntos.

Daniel Upton
fuente
¡Gracias! ¿Alguna recomendación sobre un buen tutorial / libro sobre rspec / pepino que no nos detenga en los detalles?
Kai EV
Estaba buscando lo mismo hace poco. No puedo equivocarme con "el libro rspec": pragprog.com/titles/achbd/the-rspec-book Creo que lo importante de BDD es hacer que funcione para usted .. Cuando comencé, pasé mucho tiempo preocupándome por lo bonita que era la suite de pruebas. Nunca hice ningún trabajo. Además, este gran screencast de Ryan Bates fue realmente útil: railscasts.com/episodes/155-beginning-with- pepino
Daniel Upton
0

El mayor problema que tendrá es administrar las actualizaciones del producto principal: deberá fusionar sus cambios en él si desea mantenerse al día con sus lanzamientos. Todos los otros factores son irrelevantes en mi humilde opinión.

Por lo tanto, asegúrese de tomar el producto principal, luego haga una copia para trabajar. Cuando lancen una nueva versión, actualice su original con la suya y luego podrá ver los cambios que han realizado y combinarlos con los suyos. Refactorizar el producto es un problema muy importante: no lo haga, ya que cada archivo nuevo dificulta las cosas para ver dónde ocurrió el cambio del original. También es más fácil si puede mantener sus cambios en archivos separados.

De lo contrario, para el desarrollo lo haría característica por característica, entonces tiene una buena manera de probar que funciona antes de pasar a la siguiente característica. Intentar todo de una vez es mucho más difícil. Mantenga un sistema de prueba en su lugar para que pueda liberar cada característica y asegurarse de que funcione (es decir, en una caja que no sea del desarrollador)

gbjbaanb
fuente
re el proceso de desarrollo - ¡te escuchamos! parece coherente con la recomendación de Daniel, así que iremos a lo que usted propone. sin embargo, no estoy seguro de que comprendamos completamente el párrafo de administración de actualizaciones ... ¿se está refiriendo al desafío posterior a la implementación de agregar / cambiar funciones? ¿Por qué un simple sistema de control de fuente no manejaría estos cambios?
Kai EV