Конфигурационные файлы являются важной частью программы. Некоторые конфигурационные файлы очень легко составлять и легко поддерживать в будущем; другие отпугивают же своим видом раз и навсегда (вспомните конфигурационные файлы sendmail).
Сегодня мы попробуем разобраться в конфигурабилити файлов, которые отвечают за настройку тех или иных частей системы.
Что к чему
Из названия «Тэбс» видно, что-к-чему будет в наших конфигурационных файлах. А именно, разделителями у нас будет являться символ табуляции, который уже довольно часто используется в различном программном обеспечении (не могу не упомянуть файлы программы Make и синтаксис языка Python, основанные в некотором роде на табулятивном разделении). Похожие конфигурационные файлы, помимо всего прочего, уже применялись в Ruby.
Начнём с примера такого файла.
Преимущества
Сразу бросается в глаза его иерархическая структура, разделённая символами табуляции. Каждый уровень отделён друг от друга визуально, что помогает лучше воспринимать такой конфигурационный файл, причём, вложенность уровней иерархии может быть довольно неограниченной.
Помимо этого, его достаточно легко обрабатывать на каком-либо языке программирования для создания разного рода структур. Например, можно его обработать таким образом, чтобы он был ассоциативным массивом, где каждый уровень является определённым элементом масисва, либо, чтобы он был обычным деревом.
Перед INI-файлами есть явные преимущества: возможность неограниченной вложенности настроек, визуальное отделение настроек друг от друга и визуальное обобщение категорий и типов настроек.
Перед XML-файлами также существует по-крайней мере одно преимущество: служебная информация занимает много меньше объёма. То есть, если в XML-файле у нас используются теги для отделения иерархии и её компонентов, тогда как здесь используется лишь один служебный символ: символ табуляции.
Недостатки
Из минусов можно заметить некоторую сложность представления однотипных элементов и хранение больших данных в таких конфигурационных файлов
А в целом же, решать, какие конфигурационные файлы использовать, вам, дорогие коллеги.