[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