¿Cómo identificar y corregir el código siguiente olor:Código Olor: Configuración pesadilla
Tengo una pequeña aplicación informática científica de que estoy escribiendo que tiene que ser capaz de manejar una gran cantidad de variaciones sobre el mismo tema. El funcionamiento interno de la misma está bien factorizado, principalmente utilizando el patrón de método de plantilla y algunas funciones de orden superior. Sin embargo, especificar cómo se deben instanciar y usar todas estas clases y funciones y con qué parámetros en una ejecución determinada del programa es tan complicado que a veces pienso que la forma más fácil de hacerlo sería reescribir main() para cada ejecución y recompilar eso.
¿Existe una forma relativamente simple y liviana de realizar una gestión de configuración que no sea exagerada para una pequeña aplicación científica? Básicamente solo he usado conmutadores de línea de comandos y se están volviendo bastante difíciles de manejar.
Editar: La aplicación es lo suficientemente pequeña como para que los tiempos de construcción sean insignificantes. Veo poca ventaja en enlazar a un lenguaje de scripting sobre simplemente modificar el código en el idioma nativo. (La aplicación está escrita en el lenguaje de programación D.)
Edición n. ° 2: Pensé en la idea del archivo de configuración y sería útil, pero me gustaría escribir el archivo de configuración sería casi tan difícil como volver a escribir main() cada vez.
¿Qué tal un archivo de configuración XML? o un archivo .INI –
Me puede estar faltando algo, pero ¿no puede simplemente establecer esos parámetros en un archivo de configuración? Puede crear diferentes archivos para diferentes escenarios, y luego simplemente modificar según sea necesario. – Jay
Re: Editar 2: Pero dijiste que los conmutadores de la línea de comandos se volvían difíciles de manejar. En su forma más simple, podría simplemente almacenar los conjuntos de conmutadores de línea de comando que usa en su archivo de configuración, y usar un interruptor en la línea de comando para cambiar el archivo de configuración que usa. No es necesario que te apetezca estar cerca del lugar donde debes estar. –