103 Stimmen

Ab wann wird eine Konfigurationsdatei zu einer Programmiersprache?

Ich denke schon seit einiger Zeit über Konfigurationsdateien und ihre Beziehung zum Code nach, und je nach Tageszeit und Windrichtung scheinen sich meine Ansichten zu ändern. Mehr und mehr komme ich jedoch zu der Erkenntnis zurück, die ich schon beim Lernen von Lisp hatte: Es gibt kaum einen Unterschied zwischen Daten und Code. Dies scheint doppelt für Konfigurationsdateien zu gelten. Wenn man es richtig betrachtet, ist ein Perl-Skript kaum mehr als eine Konfigurationsdatei für Perl. Das hat ziemlich schwerwiegende Folgen für Aufgaben wie Qualitätssicherung und Arbeitsteilung, z.B. wer für die Änderung von Konfigurationsdateien zuständig ist.

Die Entwicklung von einer Konfigurationsdatei zu einer vollwertigen Sprache ist im Allgemeinen langsam und scheint durch den Wunsch nach einem generischen System getrieben zu sein. Die meisten Projekte scheinen klein anzufangen, mit ein paar Konfigurationspunkten, wie z.B. wo Protokolle geschrieben werden, wo nach Daten gesucht wird, Benutzernamen und Passwörter, usw. Aber dann beginnen sie zu wachsen: Funktionen können ein- oder ausgeschaltet werden, die Zeitpunkte und die Reihenfolge der Operationen werden kontrolliert, und unweigerlich will jemand eine Logik hinzufügen (z. B. 10, wenn der Rechner X ist, und 15, wenn der Rechner Y ist). Ab einem bestimmten Punkt wird die Konfigurationsdatei zu einer domänenspezifischen Sprache, und zwar zu einer schlecht geschriebenen Sprache.

Nachdem ich mich nun in die Thematik eingearbeitet habe, möchte ich meine Fragen stellen:

  1. Was ist der wahre Zweck einer Konfiguration? Datei?
  2. Sollte ein Versuch unternommen werden, die Konfigurationsdateien einfach zu halten?
  3. Wer sollte verantwortlich sein für die Erstellung Änderungen an ihnen (Entwickler, Benutzer, Administratoren, usw.)?
  4. Sollten sie quellenkontrolliert sein (siehe Frage 3)?

Wie ich bereits sagte, ändern sich meine Antworten auf diese Fragen ständig, aber im Moment denke ich darüber nach:

  1. einem Nicht-Programmierer zu erlauben, die große Teile des Verhaltens schnell zu ändern
  2. ja, alles, was nicht grobkörnig ist körnig ist, sollte im Code sein
  3. sollten die Nutzer verantwortlich sein für Konfigurationsdateien und Programmierer sollten für eine Konfigurationsschicht Schicht zwischen Konfigurationsdateien und Code die eine feinkörnigere Kontrolle der Anwendung
  4. nein, aber die feinkörnigere mittlere Schicht sollte

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X