metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-12-16 03:42 pm

Кто-то тупой, или я или гвозди

Сижу изучаю различные варианты реализации middle-tier, который планируется использовать в будущем для нескольких проектов. Решил пересилить свой страх и взглянуть на J2EE. А надо сказать, что для неподготовленного ума ентерпрайз жаба выглядит совершенно ирреально бредовой: миллиарды фреймворков, утилит, серверов, сотни страниц документации, проекты на ней содержат over 9000 папок и мелких исходников и xml-конфигов и вообще я не уверен, что в здравом уме и имея некую начальную свободу выбора инструментов, с этим стоит вообще связываться.

Начал искать что-нибудь вроде "J2EE для начинающих с пошаговыми инструкциями". Нашел AppFuse. Вроде все описано понятно, есть QuickStart, написано откуда качать зависимости, итд, итп. Но таки вы будете смеятся - но я не могу найти, где качать исходники этого дела. Ссылки "Download" на сайте нету.

Я, конечно, счас попытаюсь произвести описанные там вуду-ритуалы, может мавен тот все что нужно сам скачает, но то, что начинать приходится с вуду-действий, как-то печалит.

Вообще говоря, у меня уже есть почти полностью готовая основа для этого миддл-тиера, на которой я бы проект сделал очень быстро: Firebird+Delphi+ASP.NET RESTful веб-сервис. Но проблема в том, что это означает полную и окончательную привязку проектов к виндам, отказ от любых потенциальных работ с юниксами в будущем и сгнаивание мозга до состояния "сеньор-фокспро-девелопер в ВЦ НИИ Говна и Торфа, 50 лет, 30 лет опыта рисования формочек в дизайнере".

Кроме того, если дать объявление "требуется разработчик на дельфи" - приходят такие долбаные мышевозы с паттернами "magic button" что рыдать хочется, соответственно шансов на то, что хотя бы когда-нибудь я займусь только архитектурой и управлением проектами, вместо того, чтобы самостоятельно писать код, внедрять и обслуживать - не останется никаких.


PS: Есть кстати, еще одна, еще более неадекватная альтернатива: сойти с ума и ударится в нетривиальщину вроде ерланга и хаскеля, начать писать самодельный миддл-тиер на чистом С и изобретать прочие велосипеды. То, что это гарантированно будет легче для нервной системы, чем J2EE и ASP.NET, я уверен. Там комьюнити меньше и не будет такого, что половина интернетов забита разнообразными фреймворками, каждый из которых настолько наворочен, что позволяет не писать код, а всего лишь парой сотен xml-конфигов сделать любое приложение.
Я вспоминаю 90-е годы, когда никаких интернетов не было, проекты были более мелкие и выбора "на чем писать" особо не было, можно было велосипеды изобретать хоть годами.

В этом, кстати, и проблема с J2EE - я уверен, что 83% авторов готовых фреймворков думают совершенно не так как я, то бишь неправильно, хаскель не изучали, и вообще делали эти фреймворки по наитию левой задней пятки.

Вот, к примеру: я считаю, что любой, кто сталкивался с статической типизацией и выводом типов, резко перестанет делать проекты "мегапереконфигурируемыми" с помощью сотен xml-конфигов, т.к. это выносит проверку правильности с времени сборки на время деплоймента и запуска. Ошибся в xml-файле в одной букве и вешайся, читай 100-строчные стеки вызовов и это еще хорошо, если у тебя доступ к продакшен-серверу есть.

[identity profile] norguhtar.livejournal.com 2009-12-17 02:08 pm (UTC)(link)

То, что вы не знаете, как подружить php с fastcgi не значит, что их нельзя подружить. Сайтов которые этим пользуются до жопы.

FastCGI подразумевает наличие демона который ожидает соединения и обрабатывает его. В случае php fastCGI это не так. Используется враппер который через FastCGI запускает обычные php скрипты. Т.е. любой сайт который запускается при помощи php-cgi или mod_php можно запустить и там. Причем без модификации. Я помню только одну единственную реализацию которая реально изображает FastCGI.

[identity profile] alexclear.livejournal.com 2009-12-17 02:15 pm (UTC)(link)
FastCGI подразумевает наличие демона который ожидает соединения и обрабатывает его. В случае php fastCGI это не так.

Эти два утверждения логически противоречивы.
Если подразумевает, значит, демон есть.
Видимо, в случае с PHP он тоже есть.

Используется враппер который через FastCGI запускает обычные php скрипты.

Нет, это не так.
То есть, PHP-скрипты обычные, а демон все равно есть.
Что как бы говорит нам, что нет никакой особой нужды в использовании PHP под FastCGI, он и под Apache работает ровно точно так же.

[identity profile] norguhtar.livejournal.com 2009-12-17 02:48 pm (UTC)(link)

Видимо, в случае с PHP он тоже есть.

Не ввиде приложение, а в виде самого php.


Что как бы говорит нам, что нет никакой особой нужды в использовании PHP под FastCGI, он и под Apache работает ровно точно так же.

Дык я на это и намекаю. Что модель то та же остается. То что у нас есть демон который конвертит FastCGI в CGI мало что меняет.

[identity profile] alexclear.livejournal.com 2009-12-17 03:14 pm (UTC)(link)
Не ввиде приложение, а в виде самого php.

Ну, может оно и к лучшему.

Дык я на это и намекаю. Что модель то та же остается. То что у нас есть демон который конвертит FastCGI в CGI мало что меняет.

Я все равно не понимаю, при чем здесь CGI.
CGI здесь совсем не при чем.
mod_php никакого отношения к CGI не имеет.

[identity profile] norguhtar.livejournal.com 2009-12-17 03:20 pm (UTC)(link)

Ну, может оно и к лучшему.

Вот в случае PHP это точно.


Я все равно не понимаю, при чем здесь CGI.

CGI подразумевает, что при приходе запроса активируется скрипт и ему кормятся параметры в формате CGI после того как он отдает ответ он умирает. В mod_php если нет акселератора даже код не сейвится скомпилированный, т.е. да мы имеем php в памяти что позволяет не запускать его каждый раз, но скрипт то запускается каждый раз заново, как это делается при CGI.

[identity profile] bopm.livejournal.com 2009-12-17 02:38 pm (UTC)(link)
Правильно, вам просто нужно в сочетании с php-fastcgi использовать eaccelerator. В этом случае второй решит проблему однократной генерации байт-кода, а второй проблему демонизации.
Однако мы отклонились от темы. В случае с рельсами это работает из коробки на стандартном mongrel_cluster.

[identity profile] norguhtar.livejournal.com 2009-12-17 02:55 pm (UTC)(link)
yep. Только FastCGI в чистом даже php-fastcgi с акселератором не дает. Сугубо говоря если я в скрипте открою соединение, то в конце скрипта оно закроется.

В случае рельсво действительно так.