[Moscow.pm] В чем смысл Catalyst?
Alex Povolotsky
tarkhil на over.ru
Пн Ноя 17 06:56:49 PST 2008
Dmitry Simonov wrote:
> Привет!
>
> В традиционных мануалах по перлу разумеется все примеру показываются с
> использованием CGI-скриптов, где всё записано вместе –sql-запросы,
> куски html-кода и даже нередко java-script-вставки. И кое-где в
> промежутках между этим всем добром иногда встречается перл :)
>
> Начинающие разработчики с этого и начинают.
>
> Тот, кто понимает HTTP-протокол и SQL, вероятно, будет в состоянии
> понять большую часть этого кода, потому что в нем используются
> стандартные техники веб-разработки. Кодирование этим способом
> предоставляет разработчику огромное количество возможностей, так как
> разработчики обладают контролем над каждым видом HTTP-ответа и могут
> писать настолько сложные SQL-запросы, насколько захотят.
>
> Такой скрипт разумеется проще написать, чем большой громоздкий
> продукт, а уж собрать из нескольких скриптов некий сайт вообще задача
> вполне решаемая.
>
> Эти скрипты, собранные в сайт, будучи однажды отлаженными, работают
> годами. Дёшево и сердито. Я слышал про команды под руководством
> известных здесь на листе рассылке деятелей, которые в общем всю работу
> на таких скриптах и строят. Так как оптимизировать и развивать сами
> эти скрипты довольно сложно, то новую функциональность получают либо
> рисуя на коленке новый скрипт и путём шаманских действий, включая их в
> общем комплект, либо вообще тупо копируют один из существующих
> скриптов для добавления скажем нового раздела на сайте.
>
> Решение дешёвое и сердитое. Это отлично работает с простыми или даже
> небольшими, но нетривиальными приложениями, но все программные
> продукты имеют тенденцию расти, и без хороших концепций, они
> становятся проблемными в обслуживании и поддержке. То есть перестают
> быть сначала простыми, а потом дешёвыми.
>
> Это действительно ОЧЕНЬ трудоёмко – развивать такие скрипты, в которых
> намешано всё. Трудности начинаются с того, что каждый скрипт на сайте
> нуждается в аналогичном коде, чтобы загружать конфигурационный файл и
> обрабатывать ошибки. Написание кода доступа к базе данных очень часто
> повторяется, а структуры данных из базы не обязательно представляют
> объекты, с которыми Ваше приложение захочет иметь дело. Дизайнерам
> покажется сложной смена темы сайта, так как код, генерирующий HTML,
> перемежается с кодом Perl. И наконец CGI-скрипты могут быть
> медленными, потому что весь интерпретатор Perl в целом, как и модули,
> используемые скриптом, требуют загрузки в память на каждом запросе.
Самое главное в этой конструкции, что она живет либо до того момента,
как перестанет помещаться в голове разработчика, либо - пока разработчик
не уйдет.
После этого, разобраться в системе сложнее, чем написать с нуля
аналогичную. Первая же попытка пошевелить конструкцию приводит к тому,
что валится все подряд.
Alex.
Подробная информация о списке рассылки Moscow-pm