2008-11-10 8 views

Respuesta

3

Si está utilizando archivos de configuración en lugar de globales, entonces sí, son similares.

Los archivos de configuración solo deben utilizarse en casos en que el usuario final (presumiblemente un usuario con conocimientos de informática, como un desarrollador) necesita declarar configuraciones para una aplicación o código, mientras mantiene sus manos fuera del código mismo .

+0

No quise que la primera parte de esta respuesta sonara cortante. El punto que estaba tratando de hacer es que los archivos de configuración no son una solución alternativa para evitar los globales. –

3

Mi primera reacción sería que no es lo mismo. Creo que el problema con los globales es el escenario de lectura + escritura. Los archivos de configuración son de solo lectura (al menos en términos de ejecución). Del mismo modo, las constantes no se consideran un mal comportamiento de programación. Los archivos de configuración, al menos en la forma en que los uso, son constantes fáciles de cambiar.

0

Los archivos de configuración son realmente destinados a ser fácilmente modificable por el usuario final como una forma de decirle al programa cómo ejecutar.

Una forma más especializada de los archivos de configuración, preferencias del usuario, se utilizan para recordar las cosas entre ejecuciones del programa.

0

Global está relacionada con una instancia única de un objeto que nunca va a cambiar, mientras que el archivo de configuración se utiliza como recipiente para valores de referencia, para los objetos dentro de la aplicación que puede cambiar.

Un objeto "global" nunca va a cambiar en tiempo de ejecución, el otro objeto es inicializado a través de archivos de configuración, pero se puede cambiar más adelante.

En realidad, esos objetos no solo pueden cambiar durante la vida útil de la aplicación, sino que también pueden supervisar el archivo de configuración para realizar un "cambio en caliente" (modificación de su valor sin detener/reiniciar la aplicación), si el archivo de configuración está modificado.

3

Bueno, ya que un archivo de configuración y una variable global pueden ambos tienen el efecto de propagación de los cambios a través de un sistema - que son más o menos similares.

Pero ... en el caso de un archivo de configuración, ese cambio generalmente tendrá lugar en una sola ubicación altamente visible (para el desarrollador), y las variables globales pueden afectar el cambio de manera muy furtiva y difícil de rastrear down-por lo que de esta manera los dos conceptos no son similares.

Tener un archivo de configuración usualmente ayuda con DRY concepts, y no debería dañar el orthogonality del sistema, tampoco.

Puntos extra por usar la palabra $ 25 'ortogonal'. Tuve que buscarlo en Wikipedia para descubrir la definición no euclidiana.

+0

Sí, leyendo El programador pragmático y el tema de los globales se presenta después del desacoplamiento. La idea de los archivos de configuración me vino a la mente y quise determinar su nivel de maldad. – osp70

0

No son absolutamente iguales o sustitutos para cada uno. Un archivo de configuración u objeto puede usarse de forma no global, es decir, aprobado de manera explícita.

Por supuesto, puede tener una variable global que hace referencia a un objeto de configuración, y que sería el propósito de derrotar.

Cuestiones relacionadas