¿Es un comportamiento racional anticipar errores de IDE, por ejemplo, volver a compilar desde cero justo antes del envío de la aplicación o es un signo de TOC?

Debe tener un proceso de compilación independiente de su IDE. El propósito de un IDE es hacerlo productivo para resolver problemas, no para administrar su proceso de lanzamiento. Una vez que haya configurado su proyecto, no debería tener que pensar en dependencias, empaquetado, metadatos, ubicaciones de instalación, permisos del sistema de archivos, etc. en sus tareas de desarrollo ordinarias, pero esas cosas son cruciales para la administración efectiva de la versión. Si su IDE tiene errores, en su mayoría es irrelevante si tiene un proceso de lanzamiento versionado, repetible y bien administrado que sea independiente de su IDE.

La importancia de esto también depende del idioma y el compilador que estés usando. Por ejemplo, el compilador de Java copiará los valores de los tipos primitivos en su clase si hace referencia a ellos. El JLS 13.1.3 indica que: ” [una] referencia a un campo que es una variable constante ( §4.12.4 ) debe resolverse en tiempo de compilación … ” Las fallas de tiempo de ejecución confusas suelen producirse cuando se cambian las constantes después de que se hayan compilado las clases dependientes .