2009-08-24 7 views
8

Frecuentemente código numerosos experimentos para probar varios algoritmos, bibliotecas o hardware. Todos los códigos, las dependencias y el resultado de estos experimentos deben ser anotados y guardados, para poder volver a ellos más tarde. ¿Hay buenos enfoques comunes para este problema? ¿Qué haces con tus experimentos después de ejecutarlos?Programando experimentos

+7

¿almacenarlos en un sistema de control de versiones? –

+1

Me gusta git para este tipo de cosas. Toda la historia contigo todo el tiempo, fácil de hacer una copia de seguridad. –

+0

He usado Subversion antes (en una de las publicaciones a continuación), sin embargo, si puedes probar y usar GIT, es mucho mejor. (Todavía tengo que usarlo, pero quiero hacerlo pronto) – Audioillity

Respuesta

5

En un trabajo anterior teníamos un proyecto en SVN llamado Area51 donde la gente escribía código de prueba. Las reglas eran

  1. crear un espacio de nombres paquete
  2. inicio a través de un public void
  3. añadir comentarios a través de javadocs
  4. dejar el proyecto en un estado compilables
  5. el proyecto no puede ser nunca una dependencia de otro código

En un equipo de tres personas esto funcionó bien. Podríamos poner el código "what if" allí para compartir y fue fácil ejecutarlo a través de ide o la línea de comando

2

acabo de una carpeta que llamo OneOffCode

Ésta es una carpeta de solo código que he escrito, ya sea aprender una nueva tecnología tratando de demostrar un concepto etc. . Esto no es un código de producción.

Normalmente lo respaldo en una unidad de almacenamiento y lo muevo conmigo de una tarea a otra o de una computadora a otra.

+1

Un poco prolijo. Yo llamo al mío "Prueba". –

+0

Llamo a mis pruebas "prueba": los experimentos y las pruebas no son lo mismo. –

5

Cuando hago esto, generalmente son proyectos específicos, por lo que van en un subdirectorio del proyecto (generalmente llamado "Investigaciones" en mi caso). Esto se revisa en el sistema de control de versiones con todo lo demás.

Los resultados (cuando corresponda) entran en el mismo subdirectorio de "Investigaciones" que el código utilizado para producir los resultados.

+1

+1: Los llamamos "Spikes". –

+0

@ S.Lott: "Spikes": ¡me gusta! – DrAl

+0

Esto es lo que hago, también. Excepto que los experimentos se ramifican y respaldan mucho más que el código de producción, lo que tiende a provocar un desastre en el sistema de control de versiones. Buscar y verificar versiones anteriores de SVN es bastante inconveniente. –

2

Normalmente estoy cambiando entre C# y C++. Entonces, tengo una aplicación de consola de prueba para C# y C++ en una ubicación "Sandbox", bajo control de fuente. Las aplicaciones de la consola se configuran de la misma manera donde hay un Main que llama la prueba que estoy intentando en ese momento. Cuando termino, guardo los métodos y comentarios anteriores y borro el Principal cuando se produce la próxima prueba.

No sé si es el mejor, pero una vez configurado, es bastante rápido entrar, obtener las respuestas, salir y tener todo guardado para la próxima vez.

Cuestiones relacionadas