He estado programando en C y C ++ durante algún tiempo, aunque diría que estoy lejos de ser un experto. Durante algún tiempo, he estado usando varias estrategias para desarrollar mi código, como pruebas unitarias, diseño basado en pruebas, revisiones de código, etc.
Cuando escribí mis primeros programas en BASIC, escribí largos bloques antes de encontrar que no se ejecutarían y que era una pesadilla para depurar. Entonces aprendí a escribir un poco y luego probarlo.
En estos días, a menudo me encuentro escribiendo repetidamente un pequeño código y luego usando el compilador para encontrar todos los errores. Eso está bien si detecta un error tipográfico, pero cuando comienzas a ajustar los tipos de parámetros, etc. solo para compilarlo, puedes arruinar el diseño. También parece que el compilador se está arrastrando al proceso de diseño cuando solo debe usarse para verificar la sintaxis.
Aquí existe el peligro de depender demasiado del compilador para mejorar mis programas. ¿Hay mejores estrategias que esta?
Recuerdo vagamente hace algún tiempo un artículo sobre una compañía que desarrollaba un tipo de compilador de C donde un archivo de encabezado adicional también especificaba los prototipos. La idea era que las inconsistencias en la definición de API serían más fáciles de detectar si tuviera que definirlo dos veces de diferentes maneras.