Ich such mal nur ein paar interessante raus:
- Benutzt ihr Präfixe (ungarische Notation)?
Prinzipiell nicht, ich schreib ein m_ vor Klassenmember und Benutze ansonsten namespaces.
- Setzt ihr Leerzeichen vor die Parameter-Klammer oder komt sie gleich nach dem Funktionsnamen?
Keine Leerzeichen, auch nicht zwischen Operatoren, es sei denn, der Ausdruck wird zu komplex, dann mann man mit Whitespaces mehr Übersicht schaffen.
- Setzt ihr geschweifte Klammern auch bei einzeiligen if(oder anderen)-Schleifen?
Meist nicht.
- Wann setzt ihr Tabulatoren? Auch bei case von switch (VC macht ja keinen Tabulator)?
Ich nehm immer Tabulatoren zur einrücken, es nervt wenn man den Cursor durch 4mal so viele Leerzeichen bewegen muss.
- Wann und Wo setzt ihr Kommentare? Wie oft? Wie ausführlich? Was beschreibt ihr?
Ich benutze Doxygen für wichtige Klassen/Funktionen, in den Funktionen dann auch oft, um irgendwas zu erklären, also prinzipiell schon viele Kommentare (immer noch nicht genug
)
- NULLt ihr alle eure Zeiger erst? Soll man das überhaupt?
Sehr selten. Normalerweise werden die im CTor direkt initialisiert, oder ich benutze gleich einen Container, statt Arrays. Aber wenn nicht, wird immer genullt.
- Benutzt ihr ein Logfile oder eine andere Ausgabe? Wann? Warum? Nur für Fehlersuche oder auch einfach zur Info? Nach jeder Funktions-/Variablendeklaration? Nur bei Fehlern oder erfolgreichen Funktionen?
Ich mag Boost::Exception. Die sind echt klasse
- Welche Rückgabetypen verwendet ihr bei Funktionen (immer bool für Fehler-Abfang oder einfach void (bei der Tribase-Engine gibt es ja den Datentyp tbResult)?) Prüft ihr bei jeder Funktion, ob sie erfolgreich oder nicht war?
Auch hier lohnen sich Exceptions, gegebenenfalls Try und Catch Bläcke, oder halt auch mal Returnwerte, was eben gerade Sinn ergibt.
- Wie fangt ihr Fehler ab?
Exceptions
- Wann packt ihr einen Code-Teil in eine eigene Funktion? Schreibt ihr lieber alles in eine Riesen-Funktion oder habt ihr viele kleine mit ein paar Zeilen Code?
Alles was mehrfach benutzt wird, kommt in Funktionen, ansonsten hab ich aber auch shconmal größere Funktionen, die jeweils durch mehrere leere Zeilen und Kommentarlinien gegliedert sind.
- Setzt ihr Integer (oder andere Zahlen-Datentypen), die sowieso immer positiv sind, standardmäßig unsigned oder nicht?
Ja, eigentlich schon. Macht in vielen Situationen einfach Sinn und verringert die Anzahl an Warnungen. Signed benutze ich allerdings nie explizit.
- Benutzt ihr lieber strings oder (const) char*s?
Nur noch std::strings, seit mir vor Jahren ein Programm abgestürzt war, weil der char* zu klein war, seit dem weiß ich, das Strings einfach nur besser sind.
- Wann schreibt ihr Makros? Nur bei Sachen wie SAFE_DELETE oder auch für anderes?
Überall da, wo man mit Templatefunktionen nicht weiterkommt (aber garantiert nicht für sowas wie SAFE_DELETE!!)
- Inkludiert ihr libs über die Projekteinstellungen oder im Code?
Über Projekteinstellungen natürlich
- Schreibt ihr am Anfang einer Quellcode-Datei, wofür diese zuständig ist, welche Änderungen ihr gemacht habt usw.?
Nein, nur manchmal über Klasse, aber da auch keine Änderungen, dafür hat man ja SVN (bzw. bald git).
- Verwendet ihr globale Variablen oder Get/Set-Funktionen mit Membervariablen?
Das sind doch keine Alternativen oO. Globale Variablen, wo es Sinn macht, Get/Set Methoden ungern und eigentlich nie zusammen, dann kann man das auch gleich public machen. Statt SetVariablen nehm ich meist sowas wie DoDamage statt SetHealth.
- Welche Funktionen oder Variablen definiert ihr gleich bei der Deklaration bzw. im Header?
Einzeiler, z.B. Getmethoden.