Комментарии 19
Шаблоны — это круто, и позволяют существенно меньше кода писать в некоторых случаях, экономя усилия по сравнению с другими языками. Но использование шаблонов только ради шаблонов работает наоборот — кода больше, размер генерируемого кода больше, читаемость хуже. Именно из-за этого столько холиваров, и всякие радикалы предлагают обходиться без шаблонов вообще.
В http клиенте все же лучше без шаблонов обходиться и не дискредитировать этот отличный инструмент языка. Вы это даже сами понимаете, судя по вашим осторожным оговоркам. Имхо.
В http клиенте все же лучше без шаблонов обходиться и не дискредитировать этот отличный инструмент языка. Вы это даже сами понимаете, судя по вашим осторожным оговоркам. Имхо.
+1
А какие кстати есть хорошие реализации http серверов на С++? Или даже не http серверов, а CGI/FastCGI фреймворков, которые работают через штатные apache или nginx, установленные на сервере?
0
а CGI/FastCGI фреймворковВот не подскажу. Да и непонятно, зачем для написания CGI, например, иметь целый фреймворк…
0
cppcms — одно время игрался — очень интересная штука — за вечер сайт с регистрацией и блогом ( с комментариями, модерацией, тегами и прочими мелочами ) сделал. также kore — не игрался, но по документации вполне мощный аппарат.
0
Я два года назад искал, всё могло поменяться. На тот момент был proxygen от facebook и сервер от микрософта, забыл название.
0
proxygen, AFAIK, это фреймворк с полноценной реализацией встраиваемого http-сервера.
Сервер от Микрософта — это, скорее всего, C++ REST SDK. Опять же, это полноценный встраиваемый http-сервер. Но с никакой (на данный момент) производительностью под Unix-ами (это вроде как даже сами разработчики в обсуждениях на reddit-е подтверждали).
Сервер от Микрософта — это, скорее всего, C++ REST SDK. Опять же, это полноценный встраиваемый http-сервер. Но с никакой (на данный момент) производительностью под Unix-ами (это вроде как даже сами разработчики в обсуждениях на reddit-е подтверждали).
0
Fastcgi Daemon — фреймворк с открытым исходным кодом, разработанный в Яндексе и предназначенный для создания высоконагруженных FastCGI-приложений на C++.
Статья Веб-приложение на C++, или укрощение демона FastCGI.
Статья Веб-приложение на C++, или укрощение демона FastCGI.
+1
append_header(restinio::http_field::content_type, "test/plain; charset=utf-8");
test/plain, а не text/plain это опечатка?
0
>>И нам время от времени приходилось создавать HTTP-точки входа в C++ компоненты.
А не дешевле было написать Node.JS плагин и потом обвязку на JavaScript?
Т.е. хочется знать, почему решили именно в плюсовом коде работать с сетью?
А не дешевле было написать Node.JS плагин и потом обвязку на JavaScript?
Т.е. хочется знать, почему решили именно в плюсовом коде работать с сетью?
0
А не дешевле было написать Node.JS плагин и потом обвязку на JavaScript?AFAIK, это выгодно делать в случае, когда на C++ пишется какой-то «тяжелый» вычислительный код, необходимый Web-приложению. Но даже и в таких ситуациях не всем нравится сопрягать Node.JS и C++.
Т.е. хочется знать, почему решили именно в плюсовом коде работать с сетью?Чаще всего это были задачи, когда уже есть работающий C++ компонент, к которому нужно присобачить HTTP-вход для того, чтобы этот компонент научился работать с внешним миром по какому-нибудь REST-у или XML-RPC. Тут (в наших условиях) было бы проще встроить http-вход прямо в C++ный компонент, нежели приделывать сбоку что-то вроде Node.JS.
0
Во-вторых, кое-кого из нас, видимо, сильно покусал Александреску. И это до сих пор сказывается, хотя времени с тех пор прошло уже немало.
Если посмотреть на эту фотографию, то неудивительно, что он мог покусать:
+1
В вашем репозитории не нашел cmake-finder-а для вашей библиотеки. Общепринятым подходом является поставлять либу с Finde.cmake скриптом. Рекомендую добавить его
0
А раз так, то какой смысл отказываться от C++ных шаблонов или ограничивать себя в их использовании? Мы такого смысла не видим, поэтому и задействуем шаблоны в реализации RESTinio настолько активно, насколько это нам позволяет здравый смысл
Не поспоришь, тем более, что описание библиотеки в небольшой статье выглядит вполне понятным и оставляет впечатление хорошего с т.з. использования шаблонов решения. Несмотря на предварительные угрозы о трехэтажных
+1
Если это трехэтажные шаблоны, то какова, интрересно, этажность tuple или call.
0
Этажность tuple и call не видна пользователю.
А вообще было бы хорошо, если бы вы развернули свою мысль, а то осталось непонятно, что вы сказать хотели.
А вообще было бы хорошо, если бы вы развернули свою мысль, а то осталось непонятно, что вы сказать хотели.
0
Посмотрел код на битбакете. Вы правы, шаблонов тоже много.
Но субъективно, tuple выглядит какой-то жуткой магией, а тут понятно, что происходит.
Возможно из-за того, что оформление лучше.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Трехэтажные C++ные шаблоны в реализации встраиваемого асинхронного HTTP-сервера с человеческим лицом