posicionamiento para name metadatos keywords etiquetas etiqueta codigo buscadores maintenance codebase

maintenance - para - ¿Cómo se familiariza con una base de código que no tiene documentación?



seo en tu codigo html (8)

No sé, me han dicho que los desarrolladores previos hicieron bien al recoger y dirigirse directamente a la codificación sin mayor problema. Me pregunto si lo estoy haciendo mal solicitando a mi gerente algunas breves reuniones con algunos programadores senior aquí. ¿Es mejor ser cauteloso y terminar este rastreador sensible en el tiempo, o apresurarlo para cumplir con la fecha límite?

Justo en la nota al margen, los programadores anteriores que mantienen esta aplicación se han ido después de menos de un año en la empresa. No sé si hay alguna relación en algo.


¿Qué lenguaje de programación? ¿Qué tan grande es la base de código (1k, 10k, 100k líneas?)

En cualquier caso, recomiendo usar Doxygen para crear una referencia cruzada HTML que sea fácil de navegar.


He tenido un par de trabajos así, donde todos los programadores habían dejado la empresa. Yo llamaría eso una bandera roja.

Probablemente no sea coincidencia que el proyecto no tenga documentación, pero es difícil saber si existe una relación causal allí. La verdad podría ser cualquiera de los siguientes:

  • Los programadores se fueron porque la gerencia no les permitió documentar su trabajo.
  • La gerencia pidió a los programadores que se fueran porque se negaron a documentar su trabajo.
  • Los programadores se fueron después de que el proyecto se volviera demasiado difícil de trabajar, sin documentación.

Probablemente la mejor manera de familiarizarse con el código es escribir pruebas. Configure usted mismo con una herramienta de prueba de unidad que produce informes de cobertura de código. Escriba pruebas que ejerciten todo el código. La visualización de cobertura de código lo ayuda a detectar casos extremos que aún no ha realizado. A medida que avance en este proceso, le garantizo que aprenderá mucho sobre cómo funciona el código. Y como beneficio adicional, producirá un conjunto completo de pruebas de unidad.

Obtener una herramienta que genere documentos API es otra opción, otras personas han mencionado. Este tipo de documentación solo es útil como referencia. No es útil para mostrarle cómo o cuándo usar mejor una clase o método determinado.

Otro ejercicio sería construir diagramas UML para partes del sistema. Un diagrama de secuencia puede ser útil incluso cuando la arquitectura orientada a objetos del código es defectuosa.


Hubo un hilo acerca de esto en Slashdot hace un año. En medio del habitual Slashdot cruft, hay algunas buenas respuestas; tal vez alguien pueda extraerlos aquí.

Algunos buenos están pasando por el programa con un depurador , Doxygen (por supuesto) (y herramientas relacionadas como ctags / etags / GNU Global), rindiéndose , y un par de libros sobre exactamente este tema : Trabajando eficazmente con Legacy Code by Michael Plumas y lectura de código: la perspectiva de código abierto de Diomidis Spinellis.

Y yo personalmente recomiendo leer The PG Wodehouse Method of Refactoring ; ¡si nada es al menos una lectura divertida!


Lee las pruebas unitarias No hay pruebas de unidad? Escribe algunas pruebas unitarias.


Lo primero que siempre hago (en VisualStudio) es crear un diagrama de clases de cada proyecto en una solución. Eso me permite ver una representación gráfica de con qué estoy trabajando.

Y por alguna razón simplemente reviso las clases principales con un bloc de notas amarillo y simplemente anoto notas sobre qué habla con qué. Esto parece funcionar para mí. Realmente no sé por qué, o por qué es mejor que solo leer el código.

Además, si hay fragmentos de código confusos que no sabe cómo se supone que funcionan, ejecútelo a través del depurador y páselo. Siempre trato de mantener visible la pila de llamadas para tener una idea de las diferentes rutas de código.

Una última cosa (y esto puede no ocurrirle a todos) es ejecutarlo a través de un generador de perfiles. No necesariamente busca números de rendimiento, pero le interesan las rutas de código capturadas. Es realmente muy útil para ver lo que realmente está sucediendo cuando se ejecuta.


Si es lo suficientemente pequeño como para hacer esto (digamos 10,000 líneas o menos) he tenido un buen grado de éxito con los buenos listados antiguos de Fashoned. Imprima el código, obtenga algunas plumas resaltadoras y esas banderas coloreadas de post-it y revise la lista, garabatee notas, encuentre referencias y reconstruya la estructura general. Vaya a un lugar tranquilo para hacerlo y simplemente pase el tiempo para repasar el código.

Si está escrito en algo que puede usar ctags o algo similar, tome una computadora portátil para poder buscar el código.


¿Viste esta pregunta ?

La respuesta de consenso parece ser:
Sumérgete y arregla un error. Elija uno limitado a una pequeña porción de la base de código. Usa el depurador mucho.


Diría que con muchas pruebas, si han configurado algún tipo de marco de prueba de unidades, entonces eres bueno, si no, entonces quizás quieras iniciar uno. Como no hay nada más frustrante que romper algo mientras tratas de arreglar otra cosa.

y para referencia es posible que desee comprobar esto, este tipo parece estar en un lugar más apretado que usted:

inherited-a-php-nightmare-where-to-start