С++ 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 05:54 am (UTC)Я вот только не понял, зачем тебе мегафреймворки для отдачи данных в ххмль/джсон?
(no subject)
From:no subject
Date: 2012-04-02 07:00 am (UTC)Просто проверить параметры, взять данные из базы селектом и завернуть в json/html? Ну так в этом случае 80%-90% времени будет работать база, да и алгоритмы декорирования в том же пыхапе до блеска отлажены.
Или у вас там какая-то сложная математика, которую считать долго, и нужны какие-то хитрые алгоритмы? Ну и всё равно, джедаи в этом случае советуют считать на плюсах и складывать данные в базу в memory-таблицу. А отдавать апачу всё равно предназначенным для этого инструментом.
(no subject)
From:no subject
Date: 2012-04-02 07:54 am (UTC)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)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-04-02 11:11 am (UTC)(no subject)
From:no subject
Date: 2012-04-02 11:25 am (UTC)Если стоит Apache то почему бы не посмотреть на mod_perl скорость просто идеально вшитая внутрь Apache кишков, отлаживать легче, хотя надо быть и аккуратнее с "мусором", но всё же разработка быстрее будет в разы, имхо.
А не хочется связываться с perl, полно интрументов например в ruby и ниже rails уровня, как sinatra или прям на голый rack садиться.
(no subject)
From:no subject
Date: 2012-06-11 03:36 pm (UTC)как JSON-RPC вполне рабочий фреймворк, для этого есть отдельный вид асинхронного приложения "cppcms::rpc::json_rpc_server" (http://cppcms.com/wikipp/en/page/cppcms_1x_json_rpc)
сейчас как раз пишу для него фронтенд для более простой и быстрой разработки собственных приложений (типа Kotti в Pyramid Python-проекта Pylons), надеюсь уже скоро открою для тестирования :)
no subject
Date: 2012-10-18 02:43 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: