Es una pregunta interesante y la respuesta podría ser más fácil de lo que piensas.
En pocas palabras, escriba pruebas que validen sus suposiciones. No importa si haces la implementación o si tus compañeros programadores
La larga respuesta.
Cualquiera de las opciones que enumera son algo pasivas y requieren que regrese y vuelva a visitar el código (si existe) tarde o temprano.
- Los comentarios deben ser leídos y manejados por su contraparte responsable de la implementación. Su código no se puede compilar mientras tanto. Si verifica dicho estado en un repositorio de código, su canal de integración continua no funcionará, y de todos modos es una mala práctica ... nunca registre código roto
- Las excepciones de tiempo de ejecución parecen mejores, pero siguen siendo tóxicas, porque su compañero programador podría asumir que la implementación ya se realizó sin verificar, dejando el sistema también en un estado inestable. Si el método no se activa con tanta frecuencia, podría dar lugar a un código de producción roto ... una mala práctica también ... nunca verifique excepciones "no implementadas"
- Esperar a sus compañeros programadores para la implementación de los métodos o un código auxiliar también es desalentador. Rompe tu flujo de trabajo y el flujo de trabajo de tus compañeros programadores. ¿Qué sucede si están enfermos, en una reunión ag, en un descanso para tomar café, quieres pasar el tiempo esperando? ... no esperes a alguien si no tienes que
- implementar los métodos faltantes definitivamente es la mejor manera de seguir adelante. Pero, ¿qué sucede si su implementación no satisface todo el caso de uso y sus compañeros programadores necesitan enmendarlo o cambiarlo? ¿Cómo se aseguran usted y ellos de que todavía sea compatible con su intención? La respuesta es fácil nuevamente. Escriba pruebas que verifiquen, describan y documenten sus intenciones. Si las pruebas se rompen, es fácil notarlo. Si es necesario realizar cambios en ese método que rompan su función ... lo verá de inmediato. Ambos tienen una razón para comunicarse y decidir qué hacer. Dividir la funcionalidad? Cambie su implementación, etc., nunca registre código que no esté suficientemente documentado por las pruebas.
Para lograr un nivel suficiente de pruebas, le sugiero que eche un vistazo a dos disciplinas.
TDD - desarrollo basado en pruebas - esto asegurará que describas tu intención y lo pruebes lo suficiente. También le brinda la posibilidad de simular o falsificar métodos y clases (también mediante el uso de interfaces) que aún no se han implementado. El código y las pruebas aún se compilarán y le permitirán probar su propio código en forma aislada del código de sus compañeros programadores. (ver: https://en.wikipedia.org/wiki/Test-driven_development )
ATDD: desarrollo impulsado por pruebas de aceptación: esto creará un bucle externo (alrededor del bucle TDD) que lo ayudará a probar la función en su conjunto. Estas pruebas solo se volverán verdes cuando se implemente toda la función, lo que le dará un indicador automático cuando sus compañeros completen su trabajo. Muy ordenado si me preguntas.
Advertencia: en su caso, solo escribiría pruebas de aceptación simples y no trataría de incorporar demasiado del lado comercial, ya que sería demasiado para comenzar. Escriba pruebas de integración simples que junten todas las partes del sistema que requiere la función. Eso es todo lo que se requiere
Esto le permitirá poner su código en una tubería de Integración continua y producir una implementación altamente confiable.
Si desea profundizar en ese tema, consulte los siguientes enlaces: