Sven Rautenberg: XML Files als Configfiles (Userfreundlichkeit)

Beitrag lesen

Moin!

Könnt ihr euch diese Datei mal anschauen, und mir euren Eindruck berichten?

Mein Eindruck: grausam!

  • Ist die Datei gut strukturiert.

Nein. Alles ist voll mit Kommentar, die eigentlichen Konfigurationszeilen sind hingegen extrem gut versteckt. Da springt absolut nichts ins Auge.

  • Ist sie auch für nicht Spezialisten verständlich (Schreibfehler sind noch vorhanden) Och ihr seid ja alles Spezialisten. Ist hier noch ein Hausmann/ eine Hausfrau?

Wenn ich nicht weiß, was ich konfigurieren kann, bringt mir eine ausführlich kommentierte Datei relativ wenig. Ebensowenig weiß ich, was ich konfigurieren WILL, und welche der verfügbaren Einstellungen ich denn wünsche oder wünschen sollte.

Ganz tödlich sind natürlich die XML-Kurztags <tagname/>, denn wenn man da was reinintegrieren will, muß man eventuell erstmal das schließende Tag schreiben.

Aus Sicht eines Konfigurationsdateibearbeiters will ich so wenig wie möglich Schreibarbeit haben. Das bedeutet:
1. Vorkonfigurierte, aber auskommentierte Beispielzeilen, die ich mit einfachsten Mitteln aktivieren kann.
2. Kurze Handreichung hinsichtlich der verfügbaren Optionen - keine Komplettdoku.
3. Die Default-Einstellungen, die sich auch ohne Konfiguration aus der Software ergeben würden, sind als aktivierte Einstellungszeile in der Datei enthalten und können auf einfache Weise abgeändert werden.
4. Immer und überall das gleiche Muster der Einstellung.

Mein CMS produziert per default HTML4.01 strict.
Dieses vorliegende Configfile aber habe ich als XML verfasst.

Das ist durchaus eine Wurzel des Übels.

Ist dieses Konzept nicht verwirrend für den Anwender.

Ja, aber aus anderen Gründen. Ich würde nicht freiwillig auf die Idee kommen, eine Konfigurationsdatei in XML zu verfassen, wenn diese Datenstruktur nicht wirklich enorme Vorteile hätte. Und das sehe ich bei dir nicht. Das, was du da konfigurieren willst, paßt locker in ein INI-Dateiformat, alternativ würde es genausogut auch als Variablendefinitionsdatei der genutzten Programmiersprache funktionieren.

Wenn es denn unbedingt mit Tags sein muß, bietet sich als Vorbild die Apache-Konfiguration an: Die einzelnen Werte werden mit "Option Wert1 Wert2 Wert3" in einer einzelnen Zeile geschrieben, zusammengehörige Werte mit Tags gruppiert. Kommentare fallen durch den Zeilenbeginn mittels "#" sowohl extrem auf, zusätzlich erlaubt diese Schreibweise auch das sehr schnelle Auskommentieren oder Reaktivieren einer einzelnen Zeile.

Ich gehe davon aus, dass Anwender von HTML selbst nicht viel Ahnung haben müssen äh... sollten.

Wenn der Anwender von HTML nichts weiß, dann weiß er auch nichts von der Konfiguration eines CMS. Heißt: Die Konfiguration nimmt entweder ein Fachmann vor, der sich mit der CMS-Software auskennt, oder es bleibt eben bei den Defaults, solange die für die Anforderungen ausreichen.

Unter der Annahme, dass solche Configfiles nicht direkt an den Browser geschickt werden, (werden eh nur als .txt ausgegeben) wäre ein Pseudo-Html besser?

Ich halte es für unsinnig, hier überhaupt mit Pseudo-HTML zu operieren. Tags wie <title> oder <meta> verwirren nur, bieten aber keinerlei Mehrwert. Im Gegenteil!

<meta name="..." content="..."> - ok, da kann man natürlich assoziieren, dass hier zu generierende Meta-Elemente in der fertigen Seite gemeint sind. Gefällt mir trotzdem nicht in der Umsetzung, insbesondere nicht mit dem erfundenen Extra-Attribut "ehf-mix".

Ebenso die Geschicjte mit <title>: In allen anderen Konfigurationsoptionen ist der festgelegte Wert Bestandteil eines Attributs - nur hier ist es plötzlich anders, und der Wert ist Bestandteil des Taginhalts.

Verwirr mich nicht mit unterschiedlichen, voneinander abweichenden Methoden der Konfiguration, das wird immer Anlaß von Konfigurationsfehlern sein!

Ich würde explizit die namentliche Übereinstimmung von Konfigurationsoptionen und existierenden HTML-Elementen vermeiden wollen!

Gibt es ein Configfile-Design, das sich als besser / verständlicher herausgestellt hat?

INI-Format.
Apache-Format.
PHP-Skript mit Konfigurationsarraydefinition.

Meine Anforderung an ein Configfile ist, dass es sowohl im Plaintext-Editor wie auch, wenn über eine WebGui bearbeitet, gleichermassen funzenfunzen tut.

Jede "Textdatei" funzt dort.

Ich brauche also Konsistenz an erster Stelle.

Daran mangelt es ja noch.

- Sven Rautenberg