Para aquellos que no han leído Code Complete 2, el proceso de programación de pseudocódigo es básicamente una forma de diseñar una rutina describiéndolo en inglés simple primero y luego revisarlo gradualmente en pseudocódigo más detallado y finalmente codificar El principal beneficio de esto es ayudarlo a mantenerse en el nivel correcto de abstracción construyendo sistemas de arriba hacia abajo en lugar de hacia abajo, desarrollando así una API limpia en distintas capas. Encuentro que el TDD es menos efectivo en esto, porque se enfoca demasiado en hacer lo mínimo para hacer pasar una prueba y alienta un pequeño diseño inicial. También considero que tener que mantener un conjunto de pruebas unitarias para código inestable (código que se está refactorizando constantemente) es bastante difícil, porque generalmente ocurre que tiene una docena de pruebas unitarias para una rutina que solo se necesita una o dos veces. Cuando realizas la refactorización, por ejemplo, cambias la firma de un método, la mayor parte del trabajo que realizas es para actualizar las pruebas en lugar del código prod. Prefiero agregar pruebas unitarias después de que el código de un componente se haya estabilizado un poco.Proceso de programación de pseudocódigo vs. Desarrollo impulsado por prueba
Mi pregunta es - de los que he probado ambos enfoques, que prefiere?
¿Por qué es mejor TDD? ¿Puedes editar tu respuesta con alguna explicación? –