Voy a dar a este un tiro, mi filosofía es la siguiente:
1 - Mantener un archivo de configuración & clase analizador/función que están muy dumbed y simple como sea posible para darle la tranquilidad de que cada vez que necesite algo de él, puede obtenerlo sin tener que crear una instancia de un analizador de archivos de configuración de crujido XML ridículamente sobresalido. Mi archivo de configuración es el siguiente:
DBHostname -> XX.XX.XXX.XX
DBUsername -> foomonger
DBName -> fooDb
DBPassword -> xxxxx
ImageUploadsDir -> /uploads/images/
...
extraigo lo que necesito de ella usando un método estático helper (pequeñas aplicaciones) o una instancia singleton (grandes MVC aplicaciones de tracción) generada por mi amigo idiota ConfigHelper, que es tan tonto, él no sabe cómo generar gastos generales.
Tengo este dilema varias veces en mi día laboral promedio: ¿debo poner esto en config.txt o debería hacerlo una constante de clase? Mi respuesta es que simplemente no lo sé, hasta mucho más tarde. Si resulta que debe colocarse en el archivo de configuración, nada supera a un IDE decente con una implementación estable 'Buscar & Reemplazar en proyectos' para cambiar las referencias.
3 - Los archivos de configuración eliminan la pesadilla de la implementación de la aplicación cuando el desarrollo implica un servidor de prueba seguido de la implementación en la producción; no existe una alternativa práctica real. Diferentes instancias de bases de datos en diferentes máquinas tienen diferentes direcciones IP en el mundo que entiendo.
Uno de los muchos ejemplos es escribir el código HTML de una página web de forma manual vs tener el programa automáticamente generarla
Esto es tan cierto. Si bien nosotros, como desarrolladores, disfrutamos de la construcción de máquinas, tendemos a perder mucho tiempo construyendo máquinas para construir la máquina que inicialmente pretendíamos construir. Aunque esto puede ser extremadamente gratificante, por experiencia puedo aventurarme a decir que en situaciones más cuantas más máquinas tenga, cuantos más sistemas tenga que admitir, más puntos de falla, más golpes de mano obtendrá de los propietarios de la empresa - y eso no es divertido. Además, tenderá a encontrarse con situaciones en las que el generador intermedio de HTML no puede producir el resultado deseado. Entonces, ¿qué haces, perder el tiempo arreglando el error en la cosa del generador, perder el tiempo ideando una solución vudú, o simplemente escribir a mano el HTML?Realmente depende de la circunstancia particular, pero prefiero lo último.
Fue un poco una farsa, pero espero que ayudó a responder a su pregunta, al menos un poco.
Si escribe código duplicado, pero no lo registra hasta que haya refactorizado, ¿duplicó el código? (Filosófico) – Arafangion