Experimentos de progtwigción

Con frecuencia código numerosos experimentos para probar varios algorithms, bibliotecas o hardware. Todos los códigos, las dependencies 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?

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

  1. crear un espacio de nombres de package
  2. comenzar a través de un vacío público principal
  3. agregar comentarios a través de javadocs
  4. dejar el proyecto en estado comstackble
  5. el proyecto nunca puede ser una dependencia de otro código

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

Cuando hago esto, generalmente son proyectos específicos, por lo que van en un subdirectory 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 subdirectory de "Investigaciones" como el código utilizado para producir los resultados.

Solo tengo una carpeta a la que llamo OneOffCode

Esta es una carpeta del código que he escrito, ya sea aprendiendo una nueva tecnología tratando de probar un concepto, etc. . Esto no es un código de producción.

Normalmente lo respaldo en un disco de salto y lo muevo conmigo de un trabajo a otro, o de una computadora a otra.

Por lo general estoy cambiando entre C # y C ++. Entonces, tengo una aplicación de console de testing para C # y C ++ en una location "Sandbox", bajo control de fuente. Las aplicaciones de la console se configuran de la misma manera donde hay un Main que llama la testing que estoy intentando en ese momento. Cuando termino, guardo los methods y comentarios anteriores y borro el Principal cuando se produce la próxima testing.

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