2010-08-27 8 views
16

Ich möchte in C++ Team bei der Arbeit. Ihre Aufgabe ist es, CGIs in C++ zu schreiben (hauptsächlich, aber nicht beschränkt auf). Ich kenne grundlegendes C++. Ich lese die Liste unter C++ book guide Frage zu SO, ich habe drei Bücher von einem Freund (ich hatte eigentlich den ersten).Projektideen, um gut zu werden in C++

  1. Die C++ Programmiersprache - Bjarne Stroustrup - Referenz
  2. C++ Vorlagen The Complete Guide - David Vandevoorde/Nicolai M. Josuttis
  3. Moderne C++ Entwurf - Andrei Alexandrescu

  1. Ich würde gerne wissen, ob es irgendwelche Projekte oder Ideen gibt, die Sie mir sagen können, dass ich implementieren kann, damit ich besser werde ähm es.

  2. Das Setup, das ich brauche. Ich habe ein Macbook und einen persönlichen Ubuntu Dev-Server. Ich kann Bootcamp installieren, um ein beliebiges Betriebssystem zu installieren.

  3. Kannst du mir bitte auch ein paar Vorschläge geben, wie man CGI (oder irgendein Tutorial) schreibt?


Vielen Dank.

AJ

+6

Haben Sie viel C++ programmiert? Wenn nicht, dann könnten _C++ Templates_ und _Modern C++ Design_ etwas fortgeschritten sein. Sie sind beide ausgezeichnete Bücher, aber sie sind nicht wirklich für Anfänger. –

+6

@James + @AJ: Ich würde argumentieren, dass das Bjarne Stroustrup Buch auch nicht für Anfänger geeignet ist ... –

+0

Ein Macbook sollte in Ordnung sein, einfach Xcode installieren und alles ist programmiert in C++. –

Antwort

6

Lassen Sie mich zu Ihrer Leseliste hinzufügen; Die C++ FAQ Lite ist absolut die beste Ressource für das Lernen der C++. Es eignet sich sowohl als Referenz für Oldtimer als auch als Einführung für Anfänger. Ich empfehle dringend, so viel wie möglich davon zu lesen, und versuche kleine Beispiele, die jedes Feature vor dem Beitritt zu einem konkreten Projekt demonstrieren.

Sobald Sie sich in der Sprache etwas wohl fühlen, dann würde ich empfehlen, einen Blick auf Github und sehen, ob es irgendwelche C++ projects gibt, die Hilfe benötigen. Bei den computergenerierten Bildern oder der gemeinsamen Gateway-Schnittstelle sind beide sprachunabhängig. Diese können in einer beliebigen Programmiersprache geschrieben werden, obwohl verschiedene Programmiersprachen unterschiedliche existierende Bibliotheken zur Handhabung haben. Ich schlage vor, Sie lesen das Thema, um den Standard/die Algorithmen besser zu verstehen (abhängig davon, welche der beiden Sie gemeint hatten). Sobald Sie mit dem Thema besser vertraut sind, sollten Sie in der Lage sein, die Dokumentation relevanter Bibliotheken besser zu verstehen.

Wie für die Entwicklungsumgebung, finde ich, dass Ubuntu das einfachste zu konfigurieren ist, weil fast alle Setup auf eine Reihe von apt-get install Befehle reduziert werden können. Zum Beispiel:

sudo apt-get install build-essential 

Unabhängig davon, welches Betriebssystem Sie verwenden, werden Sie wahrscheinlich wollen Sie den Code in einer vorhersagbaren, reproduzierbaren Umgebung bauen und zu betreiben. Ich sollte auch darauf hinweisen, dass die Umgebung, auf der Sie entwickeln, nicht mit der identisch sein muss, auf der Sie Ihren Code tatsächlich erstellen und ausführen. Sie könnten beispielsweise Ihren gesamten Code auf Mac OS X schreiben, aber Ihren Code in einem Docker Container erstellen und ausführen, der eine Ubuntu-Instanz mit Ihrer voreingestellten, reproduzierbaren Build/Run-Konfiguration ausführt.

In Bezug auf die Ressourcen zur Implementierung von CGI in C++ (und für anderen Code), besuchen Sie bitte die C++ resources Seite auf meiner Website. Es listet mehrere Werkzeuge für Netzwerk-, Computergrafik- und andere C++ - Aufgaben sowie allgemeine Bibliotheken wie Boost und Qt auf.

+0

Ich bin ziemlich sicher, er meinte Computer-Grafik CGI – Anycorn

+0

@aaa, oh. Warum ist Computergrafik "CGI" und nicht "CG"? –

+0

@Michael: Computergenerierte Bilder. Ich denke aber auch, dass das OP Common Gateway Interface bedeutet. Es ist sicherlich schwer zu sagen. –

2

meiner Meinung nach, wenn Sie etwas kleines Projekt mit

machen

können Sie in die erweiterten C++ - Themen wie Ausdruck Vorlagen gelangen. Das Projekt muss sogar nichts Nützliches machen, solange Sie in der Lage sind, Teile zusammenzufügen, um etwas Output zu erzeugen.

Wenn Sie etwas C++ kennen, können Sie mit phoenix alleine viel Spaß dabei haben, die Sprache in Grenzen zu treiben.

Soweit Ideen, CGI ist wahrscheinlich schwer in der Mathematik, versuchen Sie zum Beispiel schreiben parallele Integration Algorithmus mit Ausdruck Vorlagen.

zum Beispiel, können Sie Syntax wie folgt zu erstellen:

integrate(x*x + sin(x), 0, 100, threads(4)); 
+1

Aber er will ein paar Ideen ... –

4

Der beste Weg, um C++ besser zu werden ist ... C++ Code zu schreiben. Beginnen Sie mit einem einfachen Raytracer ohne externe Abhängigkeiten (schreiben Sie einfach die Ausgabe in eine PPM-Datei).

  1. Ich denke, dass dies ein interessantes genug Problem ist, und lassen Sie mit dem Sprachkern beginnen,
  2. Das Fehlen von Abhängigkeiten Ablenkungen reduziert mit potenziell komplexen Fremd Bibliothek Idiomen, die Sie noch nicht zu schätzen wissen und nervige Dinge wie Bibliotheken und Verlinkungen. Plus, Sie werden weniger C++ Macken in Ihrem Gesicht explodieren.

Darauf aufbauen, nachdem Sie mehr Erfahrung haben. Gehen Sie zurück, refaktorieren Sie Ihren Code, fügen Sie komplexere Funktionen, Bibliotheken von Drittanbietern hinzu (z. B. schreiben Sie eine JPEG-Ausgabe, verwenden Sie Boost-Bits wie Smart Pointer).

Spülen, wiederholen.

2

Lesen Sie das Buch 'Effective C++' von Scott Meyers. Es ist exzellent und gibt Ihnen gute Ratschläge zu Best Practices und Sachen, die Sie vermeiden sollten.

Verwandte Themen