2010-05-12 15 views
19

Digamos que si se trata de un proyecto de 10 personas, 2 o 3 del programador original se retiraron después de que el proyecto presentara una versión estable por un tiempo. ¿Cómo mantener el código mantenible en este caso?Cómo mantener el código que se puede mantener después de que el programador original cerró

Mi imaginación está revisando el código después de que el proyecto va a liberar la versión y mantener revisarlo después? Tal vez dividir en 2-3 grupos pequeños y hacer que cada grupo revise parte del código. Entonces al menos 3-4 personas están familiarizadas con parte del código. ¿Esto funciona? ¿Cómo lidian las empresas con este problema?

Por lo general, ¿qué porcentaje del tiempo dedicado a revisar el código? Por favor asesorar, gracias a la comunidad.

+2

¿Qué problema estás tratando de resolver? – Anonymoose

+0

¡Echa un vistazo a todos los votos! – zaf

+1

Si simplemente divide el código en equipos, nadie sabrá cómo funciona toda la arquitectura. Si el código es divisible, todos, al menos, necesitan comprender cómo encajan las partes juntas. Mi corazonada es que alguien necesita echar un vistazo de alto nivel a cómo encajan los pedacitos, y enseñarle a todos los demás. A partir de ahí, los equipos pueden revisar cada parte y describir. – Carlos

Respuesta

25

Hace que el código se pueda mantener ANTES de que los programadores se vayan. Definir estándares de codificación, escribir un buen código, escribir buenos comentarios y, por supuesto, revisar el código con frecuencia.

+2

+1 totalmente cierto – faya

+5

¡Heh, estoy seguro de que a Stan le encantará este consejo! – richq

7

Creo que lo más importante es obtener código de mantenimiento es escribir pruebas de unidad para el código, antes de que el programador se vaya.

+3

.. mejor que "antes de que el programador se vaya" -> "antes de escribir el código";) – Juri

+0

Sí, por supuesto. ;-) – khmarbaise

+0

O casi tan bueno, escribir pruebas al mismo tiempo que escribe el código –

4

Suena por su pregunta que usted está tratando de aumentar su proyecto de "bus factor". Una forma razonable de lograr esto es exigir que cada fragmento de código tenga múltiples pares de ojos antes de que llegue al repositorio o, como mínimo, revisar periódicamente el código de cada uno para que varios desarrolladores estén familiarizados. con las partes del código de cada uno. Además de eso, se debe exigir que cada clase y método se documente utilizando Doxygen, Javadoc o alguna otra herramienta de documentación estándar, así como también requerir un conjunto estándar de estándares de codificación que resulten en un código intuitivo y comprensible para los desarrolladores que nunca lo han visto (por ejemplo, requiriendo que los nombres de las clases sean TitleCased, que las funciones sean camelCased, que los nombres sean descriptivos y que se expliquen por sí mismos).

Además, es razonable requerir ser creados que las pruebas de unidad para todos y cada componente. Las pruebas unitarias no solo detectan errores de manera temprana, sino que también proporcionan un ejemplo de la forma en que se usará el código.

+0

En realidad, basado en esas publicaciones de blog, él está tratando de * disminuir * su factor de bus. ;) –

+0

@Nick, buen punto. Por lo general, el "factor de bus" es la cantidad de desarrolladores que pueden ser golpeados por un bus sin que el proyecto colapse, pero en el artículo que vinculé lo usan al revés. –

2

Lo que puede hacer depende totalmente de cómo los programadores, que dejan de fumar, han estado haciendo su trabajo. Si su código es "inteligente", y hay poca o ninguna documentación y pruebas, entonces lo mejor que puede hacer es separar los módulos que ha creado, tirarlos y volver a escribirlos con mejores estándares de codificación. De hecho, puede ser mucho menos trabajo que tratar de entender el código existente.

2

El problema sólo se enseña a los programadores restantes cómo leer el código existente es que, si se deciden a ir a pastos más verdes, que son una vez más en una plaza.

que acaba de terminar perdiendo más y más tiempo con sus trabajadores tener que aprender a leer el trabajo diferentes codificadores (que puede ser como la lectura de idiomas únicos y extranjeros) ...

Como algunos de los otros encuestados He dicho que la clave es hacer que todos escriban código según los estándares (lo que significa que solo tienes que enseñarles a los nuevos empleados el único conjunto de estándares), y pedirles a todos que revisen el código de los demás regularmente para asegurarse de que todos cumplan con los estándares, y todos están dirigidos en la misma dirección.

0

Si tiene una compilación estable, entonces, ¿qué le preocupa? El código puede ponerse bajo control de fuente. Antes de que los programadores originales se fueran, usted tomaba la transferencia completa de conocimiento de ellos a nuevos recursos. O no fue planificado.

De todas formas a menos que tenga errores a corregir en los que el código relacionado que no creo que haya nada de qué preocuparse.

1

Suponiendo que el código no tiene pruebas de unidad, este sería un buen comienzo, normalmente las pruebas unitarias se escriben antes del código pero me parece que en casos sin ellas y las agrego me obliga a entender el código que estoy probando. Nunca he podido probar el código sin haberlo entendido primero y esta parece ser tu preocupación. Las personas solo pueden mantener el código que entienden.

Otra ventaja es las pruebas unitarias son de por vida que no dejan la empresa :)

Con su código de prueba (por lo menos las secciones importantes de la misma) la gente tiene menos miedo de mantener el código como el riesgo de cambiar el código se reduce. Si un codificador desea cambiar una pieza de código menos que ideal, usted sabe que una vez que la prueba de la unidad todavía se aprueba, todo está bien en el mundo.

3

Como otros dijeron, es esencial que el código se pueda mantener ANTES de que los programadores se vayan. No repetiré todas las otras publicaciones ya que son todas verdaderas y todas mencionan cosas importantes.

Voy a agregar una cosa más que funcionó bien en un par de situaciones en las que he estado: Crea una página wiki para el proyecto, describe las decisiones importantes de diseño, las clases importantes, la arquitectura y tal vez un par de puntos de entrada (comience en esta clase cuando quiera lograr esto, etc.). También incluya tal vez un par de "cómo hacer": si desea agregar nuevas funcionalidades, estos son los puntos de extensión y esta es la mejor manera de hacerlo ...

Sí, sé que es una gran cantidad de trabajo. Pero es una gran fuente de información una vez que está hecho.

Saludos, Ene

2

Tienes que empezar a escribir la documentación, la creación de pruebas unitarias y publicar javadocs.

Cuestiones relacionadas