2011-04-18 8 views
7

На этот раз я столкнулся с множеством вопросов о том, что использование C++ не рекомендуется для SSS и рекомендует использовать так называемые интерпретируемые языки, такие как PERL и PHP, для них. Но мне нужны расширенные возможности OO и гибкость C++ для обеспечения масштабируемого и управляемого кода.C++ Server-Side-Scripting

Я пробовал много интернет-статей и поисков и нигде не был полезен до такой степени, что я до сих пор не знаю, можно ли писать SS-скрипты на C++, и если да, то как.

Я подумал о идеях пары, в том числе о написании веб-сервера на C++ и отвечая соответственно после разбора HTTP-запроса. Но это было бы заново изобрести колесо, и я в конечном итоге отклонился от своего основного проекта и посвятил много работы, чтобы обеспечить функционал-защищенный HTTP-сервер.

Я также рассмотрел расширения PHP, но опять же этот подход также имеет собственный багаж и накладные расходы.

Мои вопросы:

  • Можно ли программировать SSS в C++?
  • Если да, то каковы подходы в моем распоряжении.

Спасибо!

+0

Почему питон не работает для вас? –

+0

Определить «скрипты на стороне сервера» –

+0

@Brian: SSS для работы с серверной системой и уровнем базы данных. – check123

ответ

6

Игнорирование, на данный момент, целесообразность использования C++ для SSS, ваш первый выбор, вероятно, будет Wt. Вопреки последствиям некоторых других ответов, время разработки не , а не, вероятно, увеличится на 10x (или где-нибудь рядом с ним). Нет, вы не пропустите все приятные функции инфраструктуры, которые вы ожидаете от таких вещей, как PHP, Perl или Python.

Фактически, мой собственный опыт скорее наоборот: в то время как PHP (например) делает довольно легким получение a веб-сайта довольно быстро, создавая веб-сайт, который является действительно стабильным, безопасным и отзывчивым это совершенно другая история.С Wt, скорее наоборот, это так (по крайней мере, в моем, по общему признанию, ограниченном опыте). Получение начального сайта и работа, вероятно, займет немного дольше - но как только он выглядит, действует и чувствует себя так, как вам хочется, скорее всего, потребуется лишь незначительные хитрости, чтобы быть готовыми к общественному использованию.

Возвращаясь к вопросу о целесообразности: разработка на C++ может быть немного сложнее, чем на некоторых языках, которые более распространены на рынке SSS, но это все еще кусок пирога по сравнению с безопасностью. Если кто-то даже с трудом записывает C++ (например, отслеживает и освобождает память, когда он больше не нужен), я не хочу, чтобы они приближались к коду для моего веб-сайта.

+0

Время разработки не может увеличиться на 10 раз (хотя я бы не удивился, если бы это было так), но он будет увеличиваться - цикл компиляции/связи/установки C++ будет значительно дольше для изменений кода C++, чем это будет для изменения в скрипт PHP. –

+0

@unapersson: Кажется, вы считаете само собой разумеющимся, что цикл компиляции будет * единственной * разницей (или даже значительной). По крайней мере, IME, это даже близко не подходит. –

+0

@Jerry IME время, затраченное на интерпретатор PHP, чтобы сделать его материал значительно короче, чем для компилятора и компоновщика C++ (давайте не будем забывать компоновщика), чтобы сделать его. Но YMMV. –

3

Я бы не рекомендовал его, но вы, безусловно, можете написать CGI scripts в C++ (или в C, или в FORTRAN). Но зачем беспокоиться? Языки, такие как PHP, делают гораздо лучшую работу легче, и, похоже, они хорошо масштабируются для некоторых довольно крупных сайтов.

2

CGI является «стандартным» способом обработки веб-запросов кода C или C++, но вы также можете изучить возможность создания модуля, который будет связан с веб-сервером во время выполнения. Google для «API модуля apache» (если используется Apache) или «Модуль IIS» (если используется IIS).

+0

Это звучит хорошо, я действительно думал о том, чтобы попытаться адаптировать Apache к моим потребностям. – check123

+0

@check Это не хорошо. Написание модулей Apache совсем не так просто, особенно на C++ - вы действительно не хотите туда идти. –

+0

@unapersson, Был бы рад, если бы вы, пожалуйста, бросьте больше света. – check123

0

Можете ли вы позволить себе 10-кратное время разработки? Все биты инфраструктуры-иш, которые вы считаете само собой разумеющимися в php, perl, python, не существуют или намного сложнее использовать в C++. Я вижу только две допустимые причины: 1. У вас есть только C++ на вашей платформе. 2. Сервер действительно обладает очень высокими требованиями к производительности, которые могут быть полезны при оптимизации конкретных задач.

+0

@ Поверните свои два момента: 1. У меня есть много технологий в моем распоряжении. 2. Если он не очень высок, он имеет более высокие, чем обычно, рабочие характеристики. – check123

+0

Если вы уверены в этом, вы можете также создать собственный сервер. В зависимости от вашей проблемы вам, вероятно, не нужно будет писать полный http-сервер, а только ограниченный поднабор. Просто назовите его «настраиваемый сервер», а не «скрипты на стороне сервера» :) – Torp

+0

Да, это звучит неплохо, просто я немного параноик по поводу безопасности, и мой недостаток опыта программирования на сервере может оставить меня открытым. – check123

0

Вы можете написать приложение CGI в C++ с использованием соответствующей структуры (например, this one). Но я бы порекомендовал просто переходить с perl или php. Это сэкономит вам много времени. Эти инструменты лучше подходят для такого рода работ.

EDIT: исправил ссылку

+0

Ну, ссылка указывает на эту страницу. – check123

+0

Мой плохой. Вклеивается с неправильного места :) Исправлено. –

+0

Спасибо! Посмотрите на него. – check123

Смежные вопросы