С++ Web Services
Apr. 2nd, 2012 01:38 amВозникла идея в рабочей системе вообще отказаться от интерпретируемых языков. Статику отдавать через Apache, клиента сделать на статическом JavaScript, а динамику отдавать через FastCGI из своего C++ приложения в XML/JSON.
В теории идея выглядит вполне работоспособной. Однако мысль о том, что придётся переизобретать маленькую роту велосипедов, которые в Rails/Django вылизывались годами, меня очень смущает. Гугление уже существующих решений (и их обсуждений типа - раз два три четыре) дало такие примеры:
CppCMS: похоже, довольно полная библиотека для написания приложения. Всё как у взрослых: кое-какие routes, контроллеры, темплейты+views+шкуры и всё прочее. Немного смущает что, как и другие фреймворки, у них свои строки, массивы и прочие базовые классы. Но в целом - кажется приемлемо.
Wt: любопытная widget-ориентированная библиотека для написания веб-систем. Оригинальная, но уж очень самобытная. А к самобытным системам ни Dojo не прикрутишь, ни программистов потом не найдёшь. Плавали - знаем.
TreeFrog: похоже на попытку аккуратного портирования Rails на плюсы, но результат непонятный: проект молодой, документация почти несуществующая.
ffead: занятная штука, судя по всему написанная сумасшедшим Java-программистом, который почему-то начал писать на C++. Посмотреть конечно прикольно, но не брать же это в production.
CPP SERV: уже другие безумные Javaнцы переписывали на C++ - на этот раз servlets. Однако года три назад вылечились и бросили это дело.
Есть ещё кучка библиотек помельче для разработки мини-сервисов: Klone, PoCo, NanoGear, REST CGI. Но с ними опять придётся выстраивать собственно архитектуру с самого начала. А не хочется.
Выходит, особенного изобилия веб-приложений на C++ не наблюдается. И начинают закрадываться сомнения - может быть, миллионы мух не могут ошибаться, тысячи программистов уже пробежали этот марафон по граблям и разбрелись кто куда?
Вот, сижу теперь, думаю... Записываться в экстремалы с такой системой или плюнуть и откопать PHP?
no subject
Date: 2012-04-02 08:07 am (UTC)если проект не маленький, можно посмотреть на связку NGinx+Apache/PHP или вообще NGinx+PHP-FPM.
я для интереса поднял связку NGinx+Apache+PHP-FPM, так он летает куда шустрее, чем на Apache+FastCGI, на котором живут остальные сайты.
а с последней - вынес статику (картинки статей) на паре вордпрессов в субдомен на NGinx, тоже весьма неплохо.
no subject
Date: 2012-04-02 08:10 am (UTC)no subject
Date: 2012-04-02 08:18 am (UTC)no subject
Date: 2012-04-02 08:37 am (UTC)Есть джанго/райлс/пирамида/whatever, нахрен нужен этот пхп вообще?
no subject
Date: 2012-04-02 08:50 am (UTC)с этими яйцами и прочими прелестями. 100500 раз объяснял этой скотине, этому жЫвотному, куда класть свои яйца. несколько раз он их пытался откладывать в разные места совершенно без каких-либо очевидных причин, а сколько велосипедов на эту тему, ухх. но починить таки удалось, каким-то телепатическим способом. =)
Ruby тоже веселая штука, милион версий, не дай Боже поставишь что-то поновее со старым - все, велосипед не едет. но тоже удалось полечить, указал в файле версии, которые подгружать. телепатия рулит))
no subject
Date: 2012-04-02 08:56 am (UTC)Билдаут же обычно деревянный, кладет куда попросишь.
no subject
Date: 2012-04-02 09:10 am (UTC)PYTHON_EGG_CACHE
python-eggs
вот по этим словам можете поискать.
no subject
Date: 2012-04-02 09:13 am (UTC)PS Впрочем допускаю, что делающий make install от рута идиот, потому что не осилил инструкцию даже до середины.
no subject
Date: 2012-04-02 09:19 am (UTC)no subject
Date: 2012-04-02 09:16 am (UTC)no subject
Date: 2012-04-02 09:20 am (UTC)просто клиент попросил поставить такой велосипед, пришлось ставить))
no subject
Date: 2012-04-02 09:38 am (UTC)1 -- virtualenv (типа чрута, но исключительно для интерпретатора -- влияет на его пути поиска, и яйцеустановку), бонус -- изоляция от "системных" питонопакетов
2 -- buildout -- строит песочницу с наполнением по формальному описанию, чем-то издалека похоже на bsd порты. Полной изоляции не делает, но может быть засунуто в virtualenv. Зато гарантирует возспроизводимость (особенно если ты прикопал за угол все скачаное в процессе).
Туториал по билдауту от автором джанги
http://jacobian.org/writing/django-apps-with-buildout/http://jacobian.org/writing/django-apps-with-buildout/
(впрочем телега тоже устарела, но как отправная точка сгодится)
http://buildout.org -- родная документация, которой хер знает сколько лет, внутри исходников она поактуальнее.
Если есть вопросы, могу ответить.
no subject
Date: 2012-04-02 10:00 am (UTC)no subject
Date: 2012-04-02 03:12 pm (UTC)