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
Respuesta
En un trabajo anterior teníamos un proyecto en SVN llamado Area51 donde la gente escribía código de prueba. Las reglas eran
- crear un espacio de nombres paquete
- inicio a través de un public void
- añadir comentarios a través de javadocs
- dejar el proyecto en un estado compilables
- 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
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.
Un poco prolijo. Yo llamo al mío "Prueba". –
Llamo a mis pruebas "prueba": los experimentos y las pruebas no son lo mismo. –
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: Los llamamos "Spikes". –
@ S.Lott: "Spikes": ¡me gusta! – DrAl
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. –
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.
- 1. Programando un ajedrez AI
- 2. Programando VHDL en Linux?
- 3. Programando primero, segundo marco?
- 4. Programando la aplicación P2P
- 5. Java - Programando con aserciones preguntas
- 6. Java - Programando una tarea diaria
- 7. Programando redes neuronales con Python?
- 8. Cassandra Amazon EC2, experimentos de rendimiento de lectura
- 9. Programando mediante la carga de Django
- 10. Programando aplicaciones de Android en jython
- 11. programando tareas secuenciales con cada gema
- 12. Programando la ubicación del simulador de iphone
- 13. Programando la apertura de la aplicación de configuración (iPhone)
- 14. Programando dinámicamente una grilla que consta de 64 botones (8x8)
- 15. ¿Hay alguien programando en Visual FoxPro por ahí?
- 16. duplicado 'row.names' están no se permiten errores en I programando
- 17. Programando el cambio de la pantalla de bloqueo de iOS
- 18. Programando texto parcialmente parcial en un campo de entrada
- 19. Programando una aplicación de pantalla táctil con SWING
- 20. Programando Programar un PNG a Picture Control en Win32 APIs
- 21. Programando un gráfico orientado a objetos simple en C++
- 22. Programando R/Sweave para una salida \ Sexpr correcta
- 23. Programando la creación de un CMS/Página en Magento
- 24. MATLAB: ¿Existe algún método para organizar mejor las funciones de los experimentos?
- 25. Experimentos de contenido de Google Analytics: ¿es posible configurar variaciones para varias páginas a la vez?
- 26. Si estuvieras programando un calendario en HTML, ¿usarías las etiquetas Table o Div?
- 27. Programando el cambio de la impresora de destino para un control WinForms WebBrowser
- 28. Programando obtener el directorio actual de la solución IDE de Visual Studio desde complementos
- 29. Programando una función de devolución de llamada dentro de un plugin de jQuery
- 30. Programando el formato de conversión de imagen a JPEG o PNG para la pantalla de Silverlight
¿almacenarlos en un sistema de control de versiones? –
Me gusta git para este tipo de cosas. Toda la historia contigo todo el tiempo, fácil de hacer una copia de seguridad. –
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