¡Estoy ocupado! La mayor parte de mi tiempo lo paso usando técnicas analíticas, o en el trabajo del curso, y cuando cambio al modo de programación, necesito generar código rápidamente. Desde entonces, al Investigador principal del laboratorio en el que estoy no le importa si estoy usando TDD o un ábaco siempre que obtengo resultados rápidos.¿Cómo incorporo TDD en mi flujo de trabajo como programador científico/estudiante/investigador?
He leído "TDD por ejemplo" y me pareció bastante útil. Posteriormente compré "Refactorización: mejorando el diseño del código existente", "Patrones de diseño: elementos de software reutilizable orientado a objetos" y "Trabajando eficazmente con código heredado", pero estos libros son grandes y las perspectivas de saltar a ellos ahora son desalentadoras. !
El estilo conversacional y el flujo de "TDD por ejemplo" hicieron que fuera fácil de incorporar a mi agenda. Pero, no sé cómo trabajar en estos otros libros y en qué orden; parece que cada uno es igual de relevante (estoy en una especie de callejón sin salida filósofo de comedor; estoy esperando que cada aspecto de mi kit de herramientas de programación mejore, pero su interdependencia me tiene atascado o perdiendo tiempo para cambiar el contexto; perdón por el analogías :)). p.ej. Tengo un código heredado que necesita ser refactorizado y cubierto con pruebas, necesito avanzar usando TDD (pero nunca lo hago), necesito codificar con patrones de diseño, así que dejo de reinventar las ruedas.
¿Hay una buena manera de romper estos requerido lee en trozos del tamaño de un byte y una manera de hacerlo, mientras que la aplicación de sus técnicas a los proyectos actuales (personalmente, me suelta la información si no puedo aplicarlo de inmediato)? ¿Me concentro en un libro y lo completo? ¿Necesito TDD primero y luego refactorizar y diseñar habilidades de patrones (pero 'chicken and the egg' todos estos libros de pruebas unitarias hablan sobre patrones de diseño y refactorización como si los conociera hacia atrás y hacia adelante)?
He leído el best tutorials for beginners pero no explica cómo lo integro en un apretado horario. Y, leí programming in a scientific environment, pero nuevamente se pierde la marca de cómo se agregan estas técnicas cuando ya se ha retrasado.
+1 - De acuerdo 100% – Paul
Software de escritura para un laboratorio de investigación, puedo afirmar que no es una suposición segura de que la actitud de "hacerlo rápido" es una indicación de que el alcance del software es pequeño o "nivel de script". Los principales investigadores científicos a menudo ven el software creado para su investigación como un medio para un fin y no les importa la calidad que el software produjo, solo sus resultados finales. Esto a menudo resulta en un diseño de software deficiente debido a la presión para hacer las cosas a corto plazo, así como a los esfuerzos duplicados en los proyectos debido a la falta de implementaciones modulares. –
+1 @Mark, sí, el código es bastante complejo y no puede lograrse fácilmente en entornos como Matlab o Mathematica. Entonces, necesito comenzar a reutilizar el código (lo que me obligará a refactorizar). – bias