Sven Rautenberg: Konfigurationsdaten Projekt

Beitrag lesen

Hi, ich fange wieder mal ein neues Projekt an, und möchte mal neue Wege gehen.
Früher hatte ich immer alle Konfigurationswerte als Konstanten definiert. Diesmal möchte ich das anders machen.

Welche Konfiguration? Es gibt so viele verschiedene Dinge:

  • Konfiguration auf bzw. der Server-Ebene
  • Konfiguration der Applikation
  • Konfiguration von Einzelteilen, die in der Applikation benutzt werden.

Was ist denn so der Stand der Dinge? Alle Konfig-Daten in einer XML-Datei abzulegen und per setter an die entsprechenden Methoden weiterzureichen? Völliger Verzicht auf Konstanten?

Keine Konfigurationswerte haben. Die machen nämlich das Testen komplizierter, weil z.B. pro binärem Wert zwei Testfälle entstehen: Eingeschaltet und ausgeschaltet muss es funktionieren. Bei zweier solcher Schalter sind es schon vier Testfälle.

XML zu haben macht Konfigurationswerte nicht besser.

Was ist an Konstanten schlecht? Die sind ideal, um die Autocompletion der IDE zu nutzen, und um die möglichen Werte einer Konfiguration aufzunehmen.

Wie kommt die Konfiguration irgendwohin? Indem sie dem Konstruktor des relevanten Objekts bei dessen Erstellung mitgegeben wird. Keinesfalls werden solche Werte durch mehrere Objekte durchgereicht!

Wenn tatsächlich Werte erst zur Laufzeit der Applikation entstehen und irgendwohin gelangen müssen, sind das keine Konfigurationswerte. Konfigurationswerte stehen vor dem Start der Applikation fest und ändern sich während der Lebenszeit nicht.

- Sven Rautenberg