Pull to refresh

Comments 35

После знакомства с Slim и Mojolicious наследоваться от handler, как то не хочется. Поэтому silicon выглядит чуточку приятней.
UFO landed and left these words here
Если речь идет о Web-UI или Web-API для существующего C++ приложения — да, может оказаться удобно.
Но не в данном случае, т. к. требует стороннего веб сервера. Для таких случаев подходит что-то со встроенным веб сервером CppCMS, Wt и т.д.
UFO landed and left these words here
UI — очень размытое понятие. Например под os/400 с точки зрения разработчика ui пользователь представляется как файл, в который можно писать и с которого можно читать (ессно можно при этом использовать select например) :)
Была задача: оценить возможность создания web интерфеса для существующего приложения. Т.е. "функционал" уже есть, и он был написан на C++ задолго до этого.
Переписывание всего приложения на Ruby, nodejs или др. только из-за удобства создания web приложения не имеет смысла, так как приложение должно и дальше быть доступным на платформах Windows, Mac OS X и Linux.
Я допускаю, что fastcgi не лучший вариант для этого, однако считаю что в любом случае лучше использовать C++ для интеграции C++ приложения в web.
> однако считаю что в любом случае лучше использовать C++ для интеграции C++ приложения в web.

но как же так — если мы поверх накручиваем http сервер, JSP и xml — то это типа быстрее и проще и лучше
чем просто слать бинарный поток данных через сокеты?
Нам недостаточно просто слать данные через сокеты. Нужны как минимум роутинг для доступа к разным частям API и поддержка параллельных запросов с тред-пулом. А это уже и есть сервер «накрученный поверх». Мы не стали изобретать свой, а взяли готовый Fastcgi Daemon и немного доработали его под свои нужды. Поддержка XML конфигов взята из него полностью. Транслятор шаблонов страниц в C++ код взят из POCO с небольшими доработками. В результате мы получили 100% интеграцию с нашими приложениями, упростив сопровождение.

Тоже самое можно было бы сделать, взяв за основу какой-либо готовый легковесный HTTP сервер (опять же на C++ для лучшей интеграции). Поэтому я и сказал, что допускаю, что fastcgi не лучший вариант для этого.
На чем основано предположение, что ответ на C++ будет выдан быстрее? Сам по себе C++ позволяет конечно добиться многого, но чтобы это было действительно так, нужен довольно порядочный опыт. Да и не думается мне, что все возьмутся сами писать серваки с мультиплексированием запросов, с неблокируемым вводом-выводом, да при этом еще и асинхронные.
На boost.asio можно особо не напрягаясь написать асинхронный неблокирующий сервер.
Можно. А можно написать так, что он будет внезапно "дедлочится" (видел раз шикарный длинный while (true) со sleep(1) в обработчике). Всё делать с умом нужно. Асинхронность, даже с Asio, не особо простая штука.
Ну дык напишите. Если взять за основу их примеры, то очень долго потом будете искать фантомные баги, утечки и т.д. и это при условии, что они почти ничего не умеют. На деле пилить придется ну очень долго.
UFO landed and left these words here
Даже не верится, что этому поделию ровно 10 должно на днях исполниться :)
Ты ради этого расчехлил аккаунт на «Хабре»? :) Да ладно, всё циклично же. Кто вот поверит, что все эти NoSQL были ещё до реляционных баз? Или что на JS на сервере можно было программировать во времена Перла? А сейчас это всё — передовые технологии.
«Один пацан писал все на C++, и клиент, и сервер, говорил что нравится, удобно, читабельно. Потом его в дурку забрали, конечно.»
В оригинале, если не ошибаюсь, про JavaScript было? Или сейчас всё с ног на голову перевернулось, и теперь уже за C++ на сервере в дурку забирают? :-)
UFO landed and left these words here
Я уже ответил несколько раз лично Вам чем нас не устраивает JavaScript и почему мы используем C++.
«Holy war C++ vs. JS» устраивать не собираюсь, поэтому приводить иных аргументов не буду.
UFO landed and left these words here
Тогда в их случае придется делать взаимодействие их приложения с сервером на котором крутится JS. Что вы предлагаете использовать для взаимодействия?
шаблоны JSP, серлеты, xml зачем копировать java серверный стек если можно просто использовать java серверный стек. с java хоть глобально и надежно будет.
если б оно еще например из JSP и xml собирало С++ код. это веть идеология С++ вычислять все насколько возможно во время компиляции а не исполнения приложения.

выглядит как студенческая поделка, не осилевшего java и которому засрали голову что С++ это гарантированно быстро и высокопроизводительно.
а как пишутся настоящие высокопроизводительные сервера на с++ можно посмотреть
https://github.com/xaxaxa/workspace/
http://xa.us.to/cppsp/index.cppsp
https://github.com/stefanocasazza/ULib
http://www.techempower.com/benchmarks/

там такой адский C++ код в стиле C или вообще написано на С (nginx), а не новомодных стандартах С++ и ООП

UFO landed and left these words here
Для наших числодробильных задач C++ подходит лучше чем, например, JavaScript.
К тому же приложения давно уже есть (GUI и CLI).
UFO landed and left these words here
Я отвечал Вам, а Вы в том числе и о JS (node.js) упоминали (здесь).

К тому же, для наших числодробильных задач C++ подходит лучше чем Java.
С++ для числодробилки — это здравая мысль.
вопрос в том — нафига тут xml, JSP, http сервлеты — реализуем серверный стек java, когда можно было просто слать бинарные данные через сокет

> К тому же приложения давно уже есть (GUI и CLI).
ну вот надо дисклеймер класными буквами в начале статьи — что это типа подход исторически сложившийся не используйте это в новых проектах.
а то люди могут неправильно понять и подумать что это новая штука для высокопроизводительных серверов на C++
UFO landed and left these words here
UFO landed and left these words here
Мы его и не писали. Мы взяли готовый и доработали его под свои нужды. Подозреваю, что сложность доработки сравнима со сложностью написания модулей к ноде (которую мы никогда не использовали и совсем не знаем).
Из двух первых ссылок:
All the code i've ever written since grade 11; also includes some forward-ported code from grades 8 and 9
«выглядит как студенческая поделка» ;-)

«Адский код» нам тоже не нужен.
ну да, из ваших комментов я уже понял что статья не про производительность, а про переиспользование с++ кода

а «Адский код» — это жертва которую всегда придется отдавать ради производительности.
Sign up to leave a comment.

Articles