Pour ceux qui vont m'objecter que dans un fichier de configuration plat, on ne peux pas avoir de structure en arbre... J'ai une chose à dire.
Un système de fichier, ça ne comporte pas que des fichiers, mais aussi des dossiers.
Hors, le système dossier/fichier, est une structure arborescente. S'il est vraiment nécessaire d'avoir une structure en arbre pour une configuration, alors utilisez le système de fichier.
- C'est portable (chaque langage sait gérer les systèmes de fichiers, excepté C++ mais C++ peut utiliser boost::filesystem qui marche très bien),
- efficace (pas de parsing à la con, ni de compression),
- économe en place,
- permet de manipuler la configuration avec de vulgaires scripts shell/batch/powershell (ou même en ligne de commande),
- utilisable avec un outil de contrôle de versions,
- et en plus, ce n'est plus vous qui ferez le boulot, mais l'OS.
Si le fait d'avoir une arborescence à copier pour filer la conf à quelqu'un vous gêne, qu'a cela ne tienne, il existe le format .tar => 0 compression donc rapide à lire/écrire, et ça transforme votre arborescence en fichier unique.
Effet secondaire, le fichier .tar sera même encore plus petit que le dossier racine de la configuration! (Ben oui, on se passe de la notion de blocs)
Partager