Мы пишем программу на C ++, которая должна быть легко настраиваемой (во время запуска).
Прямо сейчас у нас есть базовый XML-файл, который содержит несколько переменных конфигурации и имена файлов других XML-файлов с большим количеством переменных конфигурации. В целом, у нас есть дерево из примерно 10 файлов XML и несколько форматов двоичных файлов с некоторым другим содержимым.
Сейчас мы находимся в точке, где ситуация становится крайне беспорядочной: поскольку файлы связаны между собой, трудно определить, какие файлы на самом деле анализируются и какую конфигурацию необходимо редактировать или какие пути нужно задавать.
Существуют ли более эффективные способы реализации конфигурации для сложного программного обеспечения, кроме связанных XML-файлов?
Одним из преимуществ этого подхода, который я бы не хотел потерять, является то, что относительно легко переключаться с одной части конфигурации на другую. Например, у нас есть два файла конфигурации для двух разных роботов, и для переключения между используемым роботом мы просто связываем правильный файл из базового XML-файла.
EDIT
Некоторые возможные идеи могут быть:
- Переключиться на использование базы данных? Это было бы легко настраиваемо, но не так, чтобы читалось человеком.
- Такая структура, как у Firefox
about:config
?
- Один огромный плоский файл .ini и просто заниматься копированием? не вариант, это было бы еще более громоздким
- ...