2011-02-11 11 views
6

Estoy trabajando en un proyecto de Java y tengo que extenderlo (agregar más funcionalidades). Pero no sé cómo debería aprender el existente antes de incorporarlos. ¿Hay alguna ruta específica que deba seguir? ¿Puedo ejecutarlo de forma que pueda ver, enunciado por enunciado, la ejecución del programa?Comprender un gran programa de Java

Estoy algo atrapado en su comprensión, gracias.

+0

Código heredado: la causa y la solución de todos los problemas de la vida – ryebr3ad

+2

posible duplicado de [Adquisición de un proyecto -] (http://stackoverflow.com/questions/3147059/taking-over-a -proyecto) –

Respuesta

1

Siempre puede activarlo en un depurador/su IDE de su elección y recorrer todo lo que desee, aunque es probable que sea mejor encontrar a alguien que esté más familiarizado con la fuente para proporcionarle una visión general o buscar documentación sobre dónde comenzar

+0

Gracias por la respuesta rápida, pero el problema es que es un programa de prueba de software llamado YETI, que ejecuté en eclipse proporcionando el argumento requerido y las clases para probar, pero después de clics de paso en el botón el programa muestra excepción pero sin depurador funciona sin problemas. –

+0

Intenté esto pero después de algunos pasos da classnotfoundexception y por lo tanto no pude continuar. –

1

Elija una de las funcionalidades para las que entienda los requisitos. Encuentre el punto de entrada para esa característica y siga el código para esa característica. Debería darte una buena comprensión de cómo funciona la arquitectura.

+0

Intenté esto pero fallé .... –

0

Le recomendaría que también comience con la depuración para que pueda seguir el programa paso a paso.

1

Esta es una pregunta recurrente en Stack Overflow. Ya hay muy buenas respuestas por todas partes:

Además, este libro puede ayudar a: Working Effectively with Legacy Code

"La paciencia y la fortaleza conquistan todas las cosas. " - Ralph Waldo Emerson

+0

No tengo mucho tiempo porque estoy haciendo un doctorado y tengo que mostrar resultados .... –

1

La integración con el código que ya está escrito puede ser muy difícil. En mi experiencia, algunas de las mejores pistas que he obtenido sobre el código ya escrito provienen de las firmas de método (la asignación de la entrada de la función a su salida). La firma del método puede darle muchos consejos sobre un programa, es decir, dónde y especialmente cómo encaja ese método particular en el contexto del programa más grande. Por lo general, una firma de método junto con un nombre de método descriptivo puede proporcionarle información suficiente como para ser peligroso, especialmente en un lenguaje escrito como Java.

Aunque no recomendaría ejecutar el código línea por línea y observar los cambios (porque esto normalmente equivale a toneladas de trabajo) pero a veces es necesario un código realmente feo pero importante (lo he definido antes de usar DDD para programas C). En este caso, una búsqueda rápida en Google revela http://www.debugtools.com/, un depurador gráfico de Java, que puede hacer el truco; también parece haber una versión de DDD que funciona con Java.

+1

Dudo que alguien haya usado un depurador autónomo para programas Java en el último 10 años. Todos los IDE de Java tienen depuradores bien integrados. –

3

Aquí hay otro enfoque que es hacky, pero he encontrado útil en el pasado cuando no se puede conectar un depurador. Si hay un fragmento de código que está mirando, pero le resulta difícil determinar quién lo está llamando, puede lanzar una nueva excepción de tiempo de ejecución, capturarla e imprimir el seguimiento de la pila.

 
try { 
    throw new RuntimeException("who is calling me"); 
} catch (RuntimeException e) { 
    e.printStackTrace(); 
} 
0
  • Documentación:

    Si tiene documentación, que va a ser útil. Pero puede ser un escollo, ya que mucha documentación está fuera de fecha, pueden engañarte.

  • Solución de error:

    Usted podría comenzar con corrección de errores o de nueva implantación función. Comience a trabajar con un alcance pequeño, será un trabajo fácil. Durante la corrección de errores, puedes entender el código cada vez más.

+0

Sin documentación del paquete. –

0
  1. línea de base del código, por lo general usaría git
  2. hace una compilación de la aplicación
  3. ejecutarlo.
  4. Si la línea base falla la compilación o el proceso es demasiado complicado, cree una rama y corríjala
  5. Cree una rama y modifique una cadena o algo que mostraría algún cambio visible si modifica el código.
  6. Si los Javadocs no se crean a través de archivos ant o build, cree una nueva rama para hacer esto.
  7. Si no hay casos de prueba JUnit (o si los hay pero no funcionan), cree una rama y corríjalo.
  8. Crea una nueva rama para hacer la fusión.

El siguiente es si está usando Eclipse o un producto similar

  1. Si usted es el único estudio de desarrollo, crear una nueva rama y establecer las configuraciones de proyecto para el formato de código y limpieza. A continuación, ejecute el formato del código y la limpieza. Esto le permitiría tener una línea base más estable para el trabajo futuro. Si no, trata de coordinar con los demás.
  2. Instalar FindBugs, Checkclipse, PMD para hacer algunas comprobaciones simples en la base de código. Observar las WTF a veces le dará una mejor idea de cómo están funcionando las cosas (o no)
  3. Instale Eclemma y vea cuánto del código se está probando realmente.
Cuestiones relacionadas