recoder: (Default)
[personal profile] recoder

Возникла идея в рабочей системе вообще отказаться от интерпретируемых языков. Статику отдавать через 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?

coding

Date: 2012-04-02 05:54 am (UTC)
From: [identity profile] larubin.livejournal.com
Имхо идея правильная.

Я вот только не понял, зачем тебе мегафреймворки для отдачи данных в ххмль/джсон?

Date: 2012-04-02 07:00 am (UTC)
From: [identity profile] vanxant.livejournal.com
Так а задача какая?
Просто проверить параметры, взять данные из базы селектом и завернуть в json/html? Ну так в этом случае 80%-90% времени будет работать база, да и алгоритмы декорирования в том же пыхапе до блеска отлажены.
Или у вас там какая-то сложная математика, которую считать долго, и нужны какие-то хитрые алгоритмы? Ну и всё равно, джедаи в этом случае советуют считать на плюсах и складывать данные в базу в memory-таблицу. А отдавать апачу всё равно предназначенным для этого инструментом.

Date: 2012-04-02 07:54 am (UTC)
From: [identity profile] Андрей (from livejournal.com)
Посмотрите на CAS от Rambler http://cas.havoc.ru/ на нем, вроде как, их почта работает (сам не смотрел, c++ - не мое =) )

Date: 2012-04-02 08:07 am (UTC)
From: [identity profile] netspyder.livejournal.com
> Статику отдавать через Apache
если проект не маленький, можно посмотреть на связку NGinx+Apache/PHP или вообще NGinx+PHP-FPM.
я для интереса поднял связку NGinx+Apache+PHP-FPM, так он летает куда шустрее, чем на Apache+FastCGI, на котором живут остальные сайты.
а с последней - вынес статику (картинки статей) на паре вордпрессов в субдомен на NGinx, тоже весьма неплохо.

Date: 2012-04-02 11:11 am (UTC)
bluedrag: (Default)
From: [personal profile] bluedrag
Посмотри на OKWS, на котором написан OKCupid: http://www.okcupid.com/about/technology

Date: 2012-04-02 11:25 am (UTC)
From: [identity profile] mpak666.livejournal.com
А зачем такие сложности в будущем при отладке, поддержке и развитии потом этого С++ веб-продукта?

Если стоит Apache то почему бы не посмотреть на mod_perl скорость просто идеально вшитая внутрь Apache кишков, отлаживать легче, хотя надо быть и аккуратнее с "мусором", но всё же разработка быстрее будет в разы, имхо.

А не хочется связываться с perl, полно интрументов например в ruby и ниже rails уровня, как sinatra или прям на голый rack садиться.

Date: 2012-06-11 03:36 pm (UTC)
From: [identity profile] kpeo-y3k.livejournal.com
с самого старта фреймворка работаю с CppCMS - из всего перечисленного сейчас кажется самым перспективным. единственная проблема - ненулевое вхождение в тему.

как JSON-RPC вполне рабочий фреймворк, для этого есть отдельный вид асинхронного приложения "cppcms::rpc::json_rpc_server" (http://cppcms.com/wikipp/en/page/cppcms_1x_json_rpc)

сейчас как раз пишу для него фронтенд для более простой и быстрой разработки собственных приложений (типа Kotti в Pyramid Python-проекта Pylons), надеюсь уже скоро открою для тестирования :)

Date: 2012-10-18 02:43 pm (UTC)
From: [identity profile] omas.livejournal.com
Выросла ли идея во что-нибудь? Или так идеей и осталась?

December 2024

S M T W T F S
1234567
891011121314
15161718192021
22232425 262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 26th, 2026 02:30 am
Powered by Dreamwidth Studios