Welche Configuration File Formate benutzt Ihr in euren Projekten?



  • Mich würde interessieren welche Dateiformate Ihr in euren Projekten für Konfigurationsmanagement hernehmt.

    Ich bin gerade in der Situation einen Release Prozess für ein zukünftiges Projekt aufzusetzen und versuche alle Informationen die ich dafür brauche irgendwo zentral und nur einmal zu halten.

    Ich will mit diesen Informationen in meinen Makefiles arbeiten und ich will die Informationen für die zu erstellenden Release Dokumente verwenden.

    Welche Dateiformate nutzt ihr um solche Informationen zu halten?

    Gruß
    Tobi



  • Auf Grund der von mir in erster Linie verwendeten Programmiersprachen und deren gängigen Build-Tools überall XML. Ist ganz okay, aber XML ist viel zu dick für solcherlei Kram (auch Speicherkosten, aber in erster Linie sind Features gemeint).

    Würde mich wenn (gut) möglich nach etwas anderem umsehen, aber teilweise bist du da eben sowieso von vornherein auf etwas festgelegt weil alles andere furchtbar umständlich wäre.

    MfG SideWinder





  • YAML muss man schon alleine dafuer hassen, dass es Spaces verwendet.



  • xml ist eine möglichkeit, aber ".ini" dateien sind bedeutend simpler aufgebaut,
    man kann sich seinen eingenen parser in 20minuten (höchstens) schreiben.

    es richtiges dateiformat gibt es da nicht...

    falls es dich interessiert:
    Eine ini-datei ist aufgebaut in sections, in denen keys und values gespeichert werden:

    ; Dies ist ein Kommentar, er wird mit einem ";" eingeleitet und gilt bis zum
    ; Ende der Zeile
    [EINSTELLUNGEN]   ; Section "Einstellungen"
    key1 = hallo      ; der key "key1" aus section "Einstellungen" hat den wert "Hallo
    
    [ZWEITE SECTION]
    key1 = trololo    ; der key "key1" aus section "ZWEITE SECTION" hat den wert "trololo"
    

    und das war eigentlich schon alles. zwischen groß- und kleinschreibung wird nicht unterschieden.
    jeder keyname darf pro section nur einmal vorkommen.

    einen parser für sowas ist echt einfach (< 100 zeilen code, schätze ich).

    zum nachlesen: http://de.wikipedia.org/wiki/Initialisierungsdatei



  • hallo,

    was genau findet ihr eigentlich besser, JSON oder YAML?

    beide scheinen ja eine "xml-lightversion" zu sein.

    mich interessiert...
    1. welche sprache ist einfacher zu parsen?
    2. welche sprache ist "schneller" / "leichtgewichtiger"?
    3. welche sprache ist leichter zu lesen?

    würde mich mal interessieren.



  • Danke an alle Antwortenden...

    YAML schaue ich mir mal an, wobei ich wahrscheinlich nach den heutigen Diskussionen auf XML festgelegt bin.

    Nichts desto trotz interessieren mich weitere Antworten...

    Gruß
    Tobi



  • @XML vs INI: Einen eigenen Parser für welches Format auch immer zu schreiben nur um Konfigurationsdateien zu lesen -> kommt sowieso nicht in Frage. Ist imho kein Argument.

    MfG SideWinder



  • YAML oder GAMMEL schrieb:

    was genau findet ihr eigentlich besser, JSON oder YAML?

    Beide sind sich enorm ähnlich.
    JSON ist zB gültiges yaml

    Im Prinzip hat Side aber schon das essentielle gesagt: einen eigenen Parser schreiben kommt nicht in Frage - also welche Parser hat man zur Verfügung?

    Bei uns ist es eben so, dass ein größteil aller Config Sachen in yaml und ini Dateien vorliegt - weil das eben die guten Parser sind die wir haben.

    JSON und XML bietet sich hier natürlich auch an, weil es dazu Parser wie Sand am Meer gibt...

    PS:
    Wegen den Spaces bei YAML: http://editorconfig.org/
    Seit es EditorConfig gibt, sind solche Sachen wie Spaces/Tabs etc vollkommen uninteressant geworden. Man lädt die passende Config und schreibt den Code so wie man es gewohnt ist. Den Rest macht EditorConfig.



  • Und was verwendet EditorConfig als Konfigurationsformat? ... INI 😉



  • also wer es nicht auf die reihe kriegt, so einen verschissenen (man verzeihe mir das wort) ini-parser zu programmieren, der darf sich nicht programmierer nennen.

    xml ist da schon eine andere liga, aber einen ini parser...

    verstehe ich jetzt auch nicht, warum man keine eigenen parser programmieren soll. irgendjemand programmiert parser, sonst hätte ja keiner einen (weil ja keiner einen programmiert).

    ob diese leute das genausogut können wie du und ich ist hier die frage.

    das gleiche gilt auch für irgendwelche crypto-libs... ständig hört man den spruch "bloß nicht selber implementieren, sondern eine fertige lib verwenden!".

    find ich problematisch, immer zu sagen "Ein anderer macht's, und er machts wahrscheinlich auch noch besser als ich!".

    🙄



  • das übliche blabla schrieb:

    also wer es nicht auf die reihe kriegt, so einen verschissenen (man verzeihe mir das wort) ini-parser zu programmieren, der darf sich nicht programmierer nennen.

    Es geht nicht ums koennen. Jeder Affe kannen einen validierenden XML Parser schreiben - er braucht halt dementsprechend.

    Es geht darum, dass nur dumme Leute alles selber machen. Config parser gibt es wie Sand am Meer. Wer einen selber schreibt, der hat was grundlegendes an der Programmierung nicht verstanden.



  • Shade Of Mine schrieb:

    Es geht darum, dass nur dumme Leute alles selber machen. Config parser gibt es wie Sand am Meer.

    ja, aber woher willst du wissen, dass die erhältlichen parser nicht auch von "dummen leuten" programmiert wurden?

    ich hab schon quellcodes von kommerziellen spielen gesehen. alle haben ini-dateien benutzt, und ALLE hatten einen EIGENEN parser.



  • -.-'' schrieb:

    Shade Of Mine schrieb:

    Es geht darum, dass nur dumme Leute alles selber machen. Config parser gibt es wie Sand am Meer.

    ja, aber woher willst du wissen, dass die erhältlichen parser nicht auch von "dummen leuten" programmiert wurden?

    ich hab schon quellcodes von kommerziellen spielen gesehen. alle haben ini-dateien benutzt, und ALLE hatten einen EIGENEN parser.

    Sie koennen von den groessten Idioten der Welt programmiert worden sein. Wichtig ist, dass sie Fehlerfrei sind. Und fehlerfrei ist nur Software die sehr sehr sehr sehr gut getestet wird. Und welche Software ist das? Nur Software die ueberall eingesetzt wird.

    PS:
    google mal nach "das rad neu erfinden"



  • also was jetzt?

    ini oder yaml? oder doch json?

    was ist jetzt am "leichtgewichtigsten" und resourcensparensten?



  • ini
    Lediglich für simple Configs ist das am einfachsten, sowohl für den Schreiber, als auch für den Parser.



  • Nathan schrieb:

    ini
    Lediglich für simple Configs ist das am einfachsten, sowohl für den Schreiber, als auch für den Parser.

    ok, und für etwas komplexeres?

    yaml oder json?



  • Entweder ganz einfache Konfigs mittels Key=Value-Paare (also ini). Oder wenn es komplexe Konfigs sind, benutze ich gleich eine Scriptsprache, z.B. Lua.

    Sowas wie XML ist irgendwie witzlos. Zu viel Overhead für ein wenig Struktur, und trotzdem nicht leistungsfähig wie Lua.



  • Shade Of Mine schrieb:

    Es geht darum, dass nur dumme Leute alles selber machen. Config parser gibt es wie Sand am Meer. Wer einen selber schreibt, der hat was grundlegendes an der Programmierung nicht verstanden.

    Nur dumme Leute bezeichnen andere Leute als dumme Leute 🙄 .



  • Artchi schrieb:

    Entweder ganz einfache Konfigs mittels Key=Value-Paare (also ini). Oder wenn es komplexe Konfigs sind, benutze ich gleich eine Scriptsprache, z.B. Lua.

    Sowas wie XML ist irgendwie witzlos. Zu viel Overhead für ein wenig Struktur, und trotzdem nicht leistungsfähig wie Lua.

    eine skriptsprache als config-file? eine interessante idee. aber wie schaut dass dann aus?

    z.b.:

    ; "userdata.ini" -- http://commons.wikimedia.org/wiki/File:Mustermann_nPA.jpg
    [USER]
    username=Erika Mustermann
    
    birth_day=12
    birth_month=08
    birth_year=1964
    

    wie würde dann sowas in lua oder python aussehen? erschliest sich mir nicht ganz


Anmelden zum Antworten