[Devel-conf] описание структуры бакенда на примере пользователей (was alterator backends and XML Schema)
Peter V. Saveliev
=?iso-8859-1?q?peet_=CE=C1_altlinux=2Eorg?=
Ср Окт 17 13:45:00 MSD 2007
В сообщении от Wednesday 17 October 2007 13:12:57 Alexander Bokovoy
написал(а):
> Peter V. Saveliev пишет:
> >> uint32 users_new(
> >> [in,ref] string *name,
> >> [out,ref] user_account *account
> >> );
> >> }
> >
> > слова про xml и андроидов беру назад... ;)
>
> А что именно? Плохо, хорошо, что? :-)
>
> Код выше человек читает нормально. Следом за ним читает компилятор и
> генерирует код на определенном языке, какой заложен -- у нас C, в
> Microsoft -- C/C++/C#, в jCIFS -- Java и так далее. Написать расширение
> для pidl (Samba4), чтобы генерировался код для scheme/python/etc --
> особых проблем нет вообще.
<skip />
Ключевой момент, который я не понимаю -- это уверенность в том, что код
_нужно_ генерировать. Причём в такой манере. Я не говорю, что она плохая, мне
просто кажется, что в данном случае это может быть слегка не в кассу.
Посмотрите на это с точки зрения разработчика, который хочет написать _один_
_простой_ модуль к альтератору или неважно к чему. Но модуль, реализующий
дерево команд. Скажем, из трёх узлов. Для него чем меньше телодвижений нужно
совершить, тем лучше. Что мы имеем и что нам нужно:
У нас есть:
* древовидная структура, где каждый узел несёт стандартные методы и атрибуты,
один из атрибутов описывает принимаемые узлом параметры и их типизацию
(параметры, приходящие не в метод, а просто: если узел представляет команду,
какие параметры будут возможны для этой команды)
* желание сферического разработчика в вакууме писать бэкенд на шелл.
То есть, для описания древовидной структуры он может:
* описать каждый узел в своём файле, файлы организовать в иерархическую
структуру на ФС
* описать все узлы в одном файле
У меня возможны оба метода, но в connexion использется не шелл, а python, где
описание вложенных классов -- вещь тривиальная. Однако, сферический
разработчик требует шелл, и нехочет писать несколько файлов (не понимаю,
почему, но Стас меня заверил в этом). И тогда,
Что нам нужно:
* возможность написать "плоский" файл и карту, которая методы плоского файла
будет проставлять в соответствие стандартным методам узлов, как это принято в
движке.
Если по пути будет генериться код-скелетон для шелл-модуля -- хорошо, но он
должен получаться очень просто. А то, что я увидел выше -- само по себе код,
причём не самый простой (для такого тривиального случая).
Если бы я собрался писать для альтератора и увидел бы этот пример -- я бы
крепко призадумался. Я не говорю, что IDL плохо. Просто меня это бы испугало:
невозможно знать всё, а этот пример требует явных усилий по изучению чего-то
не очень простого, что мне пока нигде не нужно было и вряд ли где-то ещё
пригодится. Учитывая, что последнее время я начал достигать порога насыщения,
для меня это потенциально тяжёлая ситуация.
--
Peter V. Saveliev
Подробная информация о списке рассылки devel-conf