metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2006-02-04 12:06 am

(no subject)

случайно отрытая в гугле ссылка

On the other hand, table driven applications have just as much potential to
be maintenance nightmares. A table driven application with the same
features and flexibility as a source code based one is no easier to
maintain. In fact due to the infrastructure and experience that is
available using source code, I would contend that it is easier to manage
source code. However, what tends to happen is the table driven applications
are less flexible and therefore sometimes easier to manage.


Я на эту хрень уже наткнулся. Пытаясь сделать приложение, для перенастройки
которого под новые бизнес-процессы не требуется перекомпиляция, довел его
до того, что в нем чуть ли не собственный язык программирования
получился. В итоге в следующей версии забил и сделал то же самое в виде конечных
автоматов на обычном языке программирования, компилируется это дело в обычную dll
и все на этом. Отладка проще, птичьего языка не нужно, парсеров не нужно, итд.

Возможно, в .NET получится совместить оба подхода, так как там есть средства генерить
код из кода.

[identity profile] 1ceheart.livejournal.com 2006-02-03 11:02 pm (UTC)(link)
Да, птичьи языки - ужасно. В машиностроении, каждый производитель контроллера считает своим долгом изобрести свой птичий язык (это в лучшем случае), или какой-нибудь дурацкий способ типа рисования в своей (кривой) проге блоков на экране и компиляции этого в байткод, причем байткод закрытый - это вообще кошмар. Я их ненавижу.

[identity profile] yakov-sirotkin.livejournal.com 2006-02-04 08:55 am (UTC)(link)
Это известная шутка - что ни делаешь, всё равно получается компилятор:)

[identity profile] vp.livejournal.com 2006-02-04 11:37 am (UTC)(link)
Я максимально забил на реализацию птичьих языков и на локальную настройку у клиента (с обновлением серверов, записями в реестр и т.п.). Ибо при 50-60 объектах становится просто НЕРЕАЛЬНО :)

А вот на дотнеце - да, рулит. Ибо там это идеологически интегрировано, уже реализовано, и реализовано хорошо.

[identity profile] nuclight.livejournal.com 2006-02-08 06:06 pm (UTC)(link)
Почему-то при словах table driven вспомнились именно конечные автоматы. Что имелось ввиду?

[identity profile] metaclass.livejournal.com 2006-02-09 08:16 am (UTC)(link)
Это фактически они и есть. Логика работы программы описывается не кодом на более-менее обычном языке программирования, а данными. Т.е. можно считать это таблицей состояний огромного конечного автомата, или птичьим недоязыком специально заточенным под предметную область.
Обычно это делается с целью "отдать обслуживание и настройку" другим людям, знающим предметную область, но не программистам. В итоге, имхо, получается только хуже. Предметники отказываются настраивать("это работа программистов/админов/обслуживающего персонала") а ИТшники хуже знакомы с предметной областью и им все-таки проще описание в виде кода, а не данных.