Ich habe ein ziemlich interessantes Projekt geerbt, bei dem es eine gute Gelegenheit gibt, eine vorhandene Software in eine SaaS-Web-App umzuwandeln. Da das Projekt vererbt wird, ist die Codebasis / das Code-Framework bereits als C ++ und MySQL definiert. Die App selbst wird kompiliert und unter Windows Server als EXE-Datei ausgeführt. Die Benutzeroberfläche ist webbasiert und die App funktioniert als eine Art Server. Nach dem, was ich über moderne Web-Apps weiß, ist dies vielleicht eine ungewöhnliche Wahl. Heutzutage scheinen sich die meisten Menschen für ein PHP-Framework oder Ruby on Rails zu entscheiden. Das ist sicherlich der Eindruck, den ich beim Lesen von Blogs zu diesem Thema bekomme. Ich bin also sehr interessiert zu wissen, ob eine von MySQL unterstützte C ++ EXE eine solide Grundlage für eine Web-App darstellt oder ob wir versuchen sollten, auf andere Weise zu erstellen.
quelle
Antworten:
Es ist OK , um eine Web - Anwendung mit C ++ zu machen IF die Vorteile die Kosten überwiegen, offensichtlich. Google, Amazon und Facebook sind alle mit C ++ ausgestattet, um Geschwindigkeit, Speicher und Energie zu optimieren - auch bekannt als Serverkosten.
Wie Sie jedoch vermutet haben, hat die Verwendung von C ++ hierfür Nachteile. Es hängt jedoch von Ihren Werkzeugen ab.
Lassen Sie mich zunächst die cppcms- Website dazu zitieren :
Die für C ++ spezifischen Nachteile sind:
Vielleicht einen Blick auf CPPCMS werfen? Oder vielleicht wt, wenn Sie eine Website im GUI-Stil erstellen möchten?
Überprüfen Sie auch diese Fragen:
quelle
Wordpress, das in PHP mit einigen installierten Plugins ausgeführt wird, bringt meinen Winders-Server in die Knie. Ich habe also überhaupt keine Probleme mit der Idee, eine Webanwendung in C ++ zu implementieren. Geschwindigkeit ist ein wichtiger Bestandteil des Web-Erlebnisses.
Grafikdesign-Zelte für die meisten Webprojekte. PHP ist eine obskure Skriptsprache, die in HTML ausgeführt wird. Ermöglichen, dass die PHP-Autoren in HTML ein- und aussteigen. Die Arbeit mit HTML bietet daher viele Vorteile.
Sie können jedoch eine beliebige Anzahl von HTML-Vorlagenlösungen in C ++ implementieren.
Man könnte Ihnen eine lange Liste von Python- und PHP-Frameworks zur Verfügung stellen, die für eine schnelle Entwicklung sorgen, aber wenn Sie viel Zeit haben, ist C ++ definitiv möglich.
Was ich nicht verstehe, ist Ihre Entscheidung, C ++ unter Windows auszuführen. lol
quelle
Es ist sicherlich eine ungewöhnliche Wahl. C ++ wurde nicht für Webanwendungen entwickelt, und während Bibliotheken vorhanden sind, um beispielsweise FastCGI-Anwendungen mit C ++ zu schreiben, müssen Sie viel mehr Arbeit leisten, um Ihre Basisanwendung zu erstellen. "Web-Sprachen" erledigen normalerweise viele Dinge für Sie, die Sie von anderen Stellen in C ++ erhalten müssen, z. B. das Implementieren des HTTP-Protokolls, das Generieren von HTML usw.
Außerdem geht es bei Webanwendungen hauptsächlich um Zeichenfolgen, was nicht gerade die stärkste Seite von C ++ ist. In der Sprache selbst ist kein Zeichenfolgentyp integriert. Dies führt zu einigen Macken und macht die Verarbeitung von Zeichenfolgen umständlicher als bei einer höheren Zeichenfolge. Level-Sprachen. Der korrekte Umgang mit Zeichencodierungen in C ++ grenzt an schwarze Magie. Und C ++ kann auf ziemlich unschuldig aussehendem Code sehr hart abstürzen, was bei einer höheren Sprache weitaus weniger wahrscheinlich ist (auch sie können abstürzen, aber in den meisten Fällen kann der Webserver ordnungsgemäß wiederhergestellt werden, insbesondere auf Plattformen, die ein Per verwenden -anforderungslebenszyklusmodell, wie PHP).
Das heißt, wenn Sie den größten Teil der Codebasis bereits geschrieben haben, ist C ++ möglicherweise immer noch eine gute Wahl. Sie müssen einige Bibliotheken finden, die alle Arten von Web-Dingen abdecken (insbesondere möchten Sie entweder einen eigenständigen HTTP-Webserver in Ihr Programm integrieren oder sich beispielsweise über FastCGI oder durch Kompilieren in Apache einbinden können ein Modul (Sie möchten auch eine Art Vorlagenbibliothek, um das Rendern von HTML-Dokumenten zu vereinfachen).
Schließlich gibt es das Problem des Entwicklermarktes. Es gibt viele C ++ - Entwickler und noch mehr Webentwickler, aber die Überlappung ist wahrscheinlich nicht so groß. Wenn Sie also jemals Leute einstellen müssen, um an dieser Sache zu arbeiten, fällt es Ihnen etwas schwerer als beispielsweise mit. PHP.
quelle
Wie andere bereits gesagt haben, ist C ++ konzeptionell eine gute Umgebung für eine Webserverentwicklung. Es gibt jedoch mehrere Überlegungen, wenn Sie diese Entscheidung treffen.
Die Popularität von Skriptsprachen für das Design von Webservern wird sich ändern. Einfache Änderungen können leicht vorgenommen werden, indem die Ergebnisse nahezu sofort demonstriert werden. Sie werden feststellen, dass jedes gute Webserver-Design ähnliche Funktionen bietet. In der Tat ist C ++ eine hervorragende Umgebung, um dieses Ziel zu erreichen.
Der Schlüssel zum Aufbau eines guten Webserver-Anwendungssystems ist die Trennung der Benutzeroberfläche vom Code. Ein Ziel beim Erstellen einer Webanwendungsumgebung besteht darin, zu vermeiden, dass "Ihre Benutzeroberfläche in meinem Code und Ihr Code in meiner Benutzeroberfläche enthalten ist".
Ich würde gerne bei Systemen wie cppcms vorsichtig sein. Ich würde erwarten, dass es etwas Ähnliches bietet.
Sie benötigen keine Skriptsprache, um Flexibilität und Leistung zu bieten.
quelle