私は、既存のソフトウェアを利用してSaaS Webアプリに変換する良い機会がある、かなり興味深いプロジェクトを継承しました。プロジェクトが継承されると、コードベース/フレームワークは既にC++およびMySQLとして定義されています。アプリ自体はコンパイルされ、Windowsサーバー上でEXEとして実行されます。UIはWebベースであり、アプリは一種のサーバーとして機能します。私が最近のWebアプリについて知っていることから、これはおそらく珍しい選択です。最近、ほとんどの人はPHPフレームワークまたはRuby on Railsを選択します。確かに、私がブログを読んで得た印象ですそれで、MySQLに裏打ちされたC++ EXEがWebアプリの強固な基盤であるかどうか、または別の方法でビルドする必要があるかどうかを知りたいと思います。
C++を使用してWebアプリケーションを作成することは問題ありません[〜#〜] if [〜#〜]利点は明らかにコストを上回ります。 Google、Amazon、Facebookはすべて、速度、メモリ、エネルギーの効率を上げるためにC++で構築されています。
ただし、ご想像のとおり、これにC++を使用することには欠点があります。ただし、ツールによって異なります。
まず、これについて cppcmswebsite を引用します:
CppCMSを使用する必要がある場合
C++言語は、適切なツールの欠如、開発者のスキルなど、さまざまな理由でWeb開発で広く使用されているわけではありません。
ただし、CppCMSを使用したC++ Webプログラミングが非常に便利で効率的になる領域もあれば、時間の浪費になる領域もあります。
CppCMSをいつ使用するか、または使用できるか?
1.高いパフォーマンス、効率、スケーラビリティが要求される、毎秒数百、数千のヒットを持つ高負荷のWebサイトとアプリケーション。
2.スケーラブルなコメット/サーバープッシュテクノロジーを必要とするアプリケーション--- CppCMSは、最小限のリソース使用で数百および数千の同時HTTP接続を効率的に処理できます。
3.追加のライブラリをわずかなコストで既存のC++アプリケーション/サービスにWebインターフェイスを埋め込む。
4.組み込みのパワー不足のデバイス-CppCMSを使用すると、比較的低コストのハードウェアで、適度に高速に動作するリッチアプリケーションを作成できます。
いつ使用しないのですか?
高負荷を必要とせず、非常に短い市場投入期間を必要とする小さなWebアプリケーションを作成する場合、おそらくDjangoまたはRoRのようなツールがそのようなタスクに適しています。
C++固有の欠点は次のとおりです。
たぶんCPPCMSを見てみませんか?または、GUIスタイルのWebサイトを作成する場合は、wtを使用しますか?
次の質問も確認してください。
PHPで実行されているWordpressは、私のWindersサーバーをひざまずきます。そのため、C++でWebアプリケーションを実装するという考えにまったく問題はありません。速度は、ウェブ体験。
ほとんどのWebプロジェクトを推進するグラフィックデザインテント。 PHPは、HTML内で実行されるあいまいなスクリプト言語です。PHP作成者がHTMLに脱出できるようにします。HTMLを次のように操作すると、多くの利点があります結果。
それでも、C++で任意の数のHTMLテンプレートソリューションを実装できます。
PythonおよびPHPフレームワークの迅速な開発を可能にするフレームワークの長いリストを提供することもできますが、時間があれば、C++は間違いなく可能です。
私が理解していないのは、WindowsでC++を実行するというあなたの決断です。笑
他の人が言ったように、概念的には、C++はWebサーバー開発に適した環境です。ただし、その決定を行うときにいくつかの考慮事項があります。
Webサーバー設計用のスクリプト言語の人気は時代遅れです。簡単な変更は、結果を即座にデモンストレーションすることで簡単に行うことができます。優れたWebサーバー設計であれば、同様の機能が提供されることがわかります。実際、C++はその目標を達成するための優れた環境です。
優れたWebサーバーアプリケーションシステムを構築するための鍵は、UIをコードから分離することです。 Webアプリケーション環境の構築の目標は、「あなたのUIは私のコードにあり、あなたのコードは私のUIにある」ことを避けることです。
Cppcmsのようなシステムで注意深くお願いします。私はそれが似たようなものを提供すると期待しています。
柔軟性とパフォーマンスを提供するためにスクリプト言語は必要ありません。
それは確かに珍しい選択です。 C++はWebアプリケーションを考慮して設計されていません。たとえば、C++でFastCGIアプリケーションを作成するためのライブラリは存在しますが、基本的なアプリケーションを立ち上げるには、さらに多くの作業を行う必要があります。 「Web言語」は通常、HTTPプロトコルの実装、HTMLの生成など、C++の他の場所から取得しなければならない多くのことを行います。
また、Webアプリケーションのほとんどは文字列に関するものであり、これはC++の最も強力な側面ではありません。文字列型が言語自体に組み込まれているわけではないため、いくつかの癖が生じ、文字列処理がより高い場合よりも扱いにくくなります。レベル言語。黒魔術のC++ボーダーで文字エンコーディングを正しく処理する。そして、C++は、かなり無害に見えるコードで非常に激しくクラッシュする可能性があります。これは、高水準言語でははるかに可能性が低くなります(それらもクラッシュする可能性がありますが、ほとんどの場合、Webサーバーは、特にperを使用するプラットフォームで正常に回復できます。 -PHPのようなライフサイクルモデルをリクエストします)。
とは言っても、コードベースのほとんどがすでに記述されている場合でも、C++は実行可能な選択肢である可能性があります。あらゆる種類のWebをカバーするいくつかのライブラリを見つける必要があります(特に、スタンドアロンHTTP Webサーバーをプログラムに統合するか、FastCGIを介して、またはコンパイルすることにより、Apacheにフックできるようにする必要があります。モジュール。HTMLドキュメントのレンダリングを簡単にするためのテンプレートライブラリも必要です)。
最後に、開発者市場の問題があります。利用可能なC++開発者はたくさんいますが、Web開発者はさらに多くいますが、重複はそれほど大きくないので、この作業に従事するために人を雇う必要がある場合は、次のような場合よりも少し苦労します。 PHP。