[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: gconf2 на сервере



On Mon, Jul 07, 2003 at 01:48:21PM +0200, Sergey V. Spiridonov wrote:
> Oleg Gritsinevich wrote:
> >On Fri, Jul 04, 2003 at 12:35:20PM +0200, Sergey V. Spiridonov wrote:
> >[skip]
> >
> >>4. При всём при этом, остаётся возможность выбора бакэнда(формата) и 
> >>возможность сетевого взаимодействия, без необходимости что-либо 
> >>специально для этого программировать или изменять в приложении.
> >
> >	Как в концепцию gconf-а вписывается конфиг sendmail-а
> >(представляющий собой исходник на сноболе)?
> 
> Да хоть на фортране. Какая разница? В чём Вы здесь видите проблему?
> 
> Концепция жконфа вписывается так же, как TCP/IP вписывается в python, к 
> примеру.
> 
> Есть библиотека sockets, и есть к ней API на питоне. Точно так же есть 
> библиотека gconf а для остальных языков пишется соответствующее API.
> 
> Или я Вас не понял?
	Речь идёт не о биндингах к API gconf-a другого языка, а о другом.
	В данном случае _сам_ _конфиг_ (sendmail.cf) представляет собой
программу на некотором языке, которую интерпретирует другая программа (в
данном случае sendmail). Данный конфиг не вписывается в концепцию
name-value pair и ни в какой другой "общий формат" описания конфига тоже не
вписывается. Единственное, чем sendmail может воспользоваться в API
gconf-a, IMHO нотификация об изменении конфига, и чем это лучше обычного
kill -HUP?
	Завязывание программы на gconf автоматически сужает её область
применения/распространения, по крайней мере системные вещи на него
завязываться не должны и скорее всего не будут.
	Не совсем понятна цель создания gcnof-a:
- избавить программистов от рутинной писанины парсеров конфигов? В сложных
  случаях, как в примере с sendmail-ом, это невозможно.
- предоставить средства редактирования конфигов с валидацией синтаксиса и
  введённых значений? Ну синтаксис ещё можно кое-как отслеживать. Так
  большинство существующих программ и так не запустятся с ошибкой конфиге.
  Проверка семантики? Она тоже возможна только в самом примитивном виде
  (проверка принадлежности значения к.-л. м-ву), а как н.п. проверить не
  попутал ли пользователь наружный интерфейс с внутренним в конфиге iptables?
  Конфигурирование сложных приложений gconf упростить не сможет, а в
  простых случаях ничего упрощать и не надо.
	IMHO работать оно будет только в простых случаях, а для простых
случаев достаточно иметь библиотеку парсилки конфига (н.п. вида name-value
pairs): на входе имя файла, на выходе представление конфига в виде
списка/дерева и т.п., подсовываешь библиотеке ключ -- получаешь значение
параметра. Семантической проверкой вообще никак не заниматься --
пользователь перед началом конфигурирования должен внимателььно прочесть
док-цию и иметь ясное представление о том, чего он хочет добиться в
конечном итоге.

-- 
With best regards, Oleg Gritsinevich



Reply to: