Задать вопрос

Интересна ли платформа для разработки сайтов на C++?

Добрый день!
В целях получения первоначальной обратной связи, интересует Ваше мнение по поводу проекта который мы хотим начать. Для удобной критики, основные моменты разбил на пункты.

Цель проекта: сделать разработку быстрых и высоконагруженных веб-сервисов быстрой и удобной

1.) Проект про которой идет речь, является веб-платформой, написанной на C++11 (+ Boost), подключаемая к веб-серверу через FastCGI.
2.) Для роутинга предполагается иметь возможность изменять его в runtime (без изменения кода платформы и т.д.) через изменение конфига роутинга.
3.) Контроллеры привязанные предлагается писать на скриптовом языке (не трогая C++, компилируя там и т.д.), например на LUA
4.) Основной функционал предполагается распространять в пакетах, которые содержат: миграции, shared library с логикой, основные шаблоны для пакета, assets и т.д.
5.) Шаблоны на DTL (Django Template Language)

Заранее, спасибо!

UPD1:
Отказались от Boost в пользу микро библиотек (под определенную задачу). Отказались от Lua в пользу более гибкой настройки правил роутинга.
  • Вопрос задан
  • 3785 просмотров
Подписаться 5 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 9
@dyadyaSerezha
Я бы начал с перечня недостатков текущих решений и объяснения, как эти недостатки исправит предлагаемое решение. Иначе все бессмысленно.
Ответ написан
gbg
@gbg Куратор тега Компьютерные сети
Любые ответы на любые вопросы
Из хорошего: возможно, это будет работать быстро. Еще быстрее это будет, если вы выбросите долой boost и FastCGI, написав собственный веб-сервер. Гулять так гулять, как говорится.

Если же это все ради забивания гвоздей мелкоскопом, используйте Hiphop PHP или kPHP. Они транслируют всеми любимый PHP в C++, а затем и в so.
Ответ написан
Лично мне был бы интересен подобный проект, если open source то мог бы поучаствовать даже.
Однако, некоторые моменты вызывают сомнения.
1. Зачем FastCGI? Это лично мое IMHO, но он уродлив и отжил свое. Может лучше писать свой сервер(на базе libuv или boost asio, например). Если от FastCGI избавляться не хотите, то советую посмотреть на решение програмистов из yandex'а Fastcgi-Daemon. Чем ваше будет лучше?
2. DTL как формат или вы python будете встраивать? Просто это странно, зачем проседать в производительности здесь, когда существуют плюсовые шаблонизаторы, Mustashe как пример
3. В скриптовых контроллерах как-то не особо смысл вижу.
У меня была идея реализовать что-то подобное nodejs express на плюсах со слоеной архитектурой и асинхронными обвязками для сокетов, БД и т.д.
Для сопутствующих файлов использовать qrc из Qt, тогда деплоиться это будет как одна монолитная so'шка.
Правда пока это так и осталось на уровне идеи...
Ответ написан
Tiendil
@Tiendil
Разработчик ПО.
Не актуально.

1. Основная задержка при обработке запросов к страницам сайтов идёт на обращение к сторонним сервисам (базам, кэшам и так далее), а не на роутинг, поэтому выигрыш в производительности будет не таким большим, как кажется (и хочется).
2. Действительно тяжёлые вычислительные вещи и так пишутся на C++, легко встраиваясь в инфраструктуры традиционных веб-ЯП.
3. Затраты на содержание команды C++/Lua программистов выше, чем на PHP/Perl/Python/Ruby + пару лишних серверов, если понадобится. Плюс, за этими языками ещё и инфраструктура гигантская стоит. Сроки разработки тоже не в пользу С++ программистов.
4. Уже есть Go — он занимает как раз ту нишу, в которую вы целите.

Резюме — не стоит. Это не ниша C++ — этот старый благородный ЯП имел достаточно времени, чтобы её занять и не занял.
Ответ написан
@sitev_ru
sitev.ru - мой блог ...
Представил, что было бы, если бы я занялся этой задачей...

1.) Проект про которой идет речь, является веб-платформой, написанной на C++11 (+ Boost), подключаемая к веб-серверу через FastCGI.

Интересно... Веб-программисту дал бы простенькие классы, для работы с этой платформой

3.) Контроллеры привязанные предлагается писать на скриптовом языке (не трогая C++, компилируя там и т.д.), например на LUA

Я против LUA. Только С++!!! )))

5.) Шаблоны на DTL (Django Template Language)

Наверное, слишком сложно... я бы взял HTML + внутри переменные вида: {var}

Чтобы вашей команде было интереснее, я уже тоже взялся за подобный проект... Можно объединить усилия! )
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Если бизнес-логика будет все равно написана на Lua, то откуда скорость?
Ответ написан
AxisPod
@AxisPod
1. Уже есть готовые решения, которые дают доступ через CGI, FastCGI, Socket и т.д., в чем отличия от существующих?
3. Какой тогда смысл вообще в C++? Сетевая работа в скриптовых языках и так уже написана на C++.
2. Если делать всё же на контроллеры C++, то в рантайме роутинг не имеет смысла.
4. Ну обычно все заводят подобное под свою инфраструктуру или не заводят, это последнее о чём стоит думать на данном этапе
5. Будете реализовывать свой полноценный шаблонизатор? Почему бы не взять готовое решение и допилить? Либо подразумевается использование python?

Слишком странное решение, либо уж всё делать на C++11, при этом действительно появилось множество механизмов, которые позволят упростить реализацию и использование. Либо вообще этого не делать. Сколько уже начинали проектов и все к сожалению ныне мертвы.
Ответ написан
Комментировать
tzlom
@tzlom
Такие вещи уже существуют, даже статьи на хабре были, однако не взлетело.
Ответ написан
@Levhav
Возьмусь за разработку проектов любой сложности.
А вы по cppsp слышали?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы