Ich habe vor kurzem angefangen, C ++ zu lernen, und es macht mir sehr viel Spaß.
Ich habe oft gelesen, dass es einfacher ist, schlechten Code in C ++ zu schreiben als in den meisten anderen Sprachen, und dass er viel tiefer geht, als es scheint.
Da ich vermeiden möchte, schlechten Code zu schreiben, habe ich mich gefragt, was genau ich nicht tun soll und was ich tun soll, um guten Code in C ++ zu schreiben.
Antworten:
Die Fallstricke
Es gibt so viele Fallstricke in C ++, dass Sie, wenn Sie sie nicht kennen, sehr instabilen Code mit Tonnen von Speicherlecks und Pufferüberläufen erstellen. Im Vergleich zu moderneren Sprachen mit Garbage Collection müssen Sie den gesamten Speicher selbst freigeben. Außerdem ist der Code sehr niedrig. Nichts hindert Sie daran, Ihren eigenen Programmcode zu überschreiben (der von vielen IE-Hacks ausgenutzt wurde).
Das nächste, was Sie lernen müssen, sind die Programmierpraktiken, die diese Risiken mindern, z. B. die Verwendung intelligenter Zeiger zum Behandeln von Freigabeobjekten, das Umschließen von Bytearrays in Klassen, die mit den Daten umgehen, usw.
Ich kann Scott Meyers 'Bücher "Effective C ++" und "More Effective C ++" empfehlen .
Diese Bücher haben mir im Wesentlichen die Schönheit von C ++ beigebracht. Beachten Sie, dass dies keine Anfängerbücher sind. Sie setzen voraus, dass Sie mit der Sprache bereits vertraut sind.
quelle
Redewendungen
C ++ unterstützt eine Vielzahl von Funktionen. Ebenso kann man leicht versucht sein, es auf viele verschiedene Arten oder Stile zu verwenden. Leider passt es vielen von ihnen nicht gut - und wird daher auf diese Weise langweilig, fehleranfällig oder langsam.
Oder anders formuliert, ohne wirklich zu wissen, was Sie tun, ist es unglaublich einfach, C ++ falsch zu verwenden (was in anderen Sprachen viel besser unterstützt würde). Einfaches Lernen durch Handeln kann daher in eine falsche Richtung führen. Daher ist das Lesen guter Bücher wahrscheinlich wichtiger als in anderen Sprachen (siehe diesen Beitrag zum gleichen Thema).
Java zum Beispiel ist eine von Natur aus objektorientierte Sprache. Viel anders kann man das nicht programmieren. In C ++ können Sie dies jedoch . Sie können es wie in C oder Java verwenden - und C ++ zeichnet sich auch nicht dadurch aus, dass Sie in diesen Fällen besser bei C oder Java bleiben sollten.
Daher müssen Sie wirklich den richtigen Stil und die richtigen Redewendungen kennen, um C ++ von Anfang an richtig zu machen. Leider können sie zunächst recht komplex sein, aber hier sind einige - von einfach bis fortgeschritten.
const
inline
eine Funktion haben,<<
oder*
etc.?)void*
) keine rohen Zeiger oder Arrays . Verwenden Sie Referenzen oder intelligente Zeigerquelle
Die Stärke von C ++ ist, dass es eine großartige Sprache ist. Der Nachteil von C ++ ist, dass es eine großartige Sprache ist. Es kann gleichzeitig schrecklich und schrecklich sein.
Wenn Sie es lernen möchten - und es gibt keinen Grund, warum Sie es nicht sollten - müssen Sie es gut lernen. Sie müssen viel lesen . Es gibt einige Bücher, die Ihnen auf Ihrem Weg helfen werden: Mit Accelerated C ++ können Sie loslegen, insbesondere wenn Sie die Übungen machen. Effective C ++, Effective STL, Exceptional C ++ und ihre fortlaufenden Serien gehören zu den besten im Spiel, um Tipps zur Verbesserung Ihrer Arbeitsweise zu erhalten.
quelle
Ich denke, eine Sache, die auf Ihrem Weg zu gutem Code helfen wird, ist Erfahrung . Lassen Sie sich vorerst nur auf die Sprache ein und machen Sie sich nicht zu viele Gedanken über "Best Coding Practices", bis Sie sich damit vertraut gemacht haben, um nach Möglichkeiten zu suchen, Ihre Nutzung zu verbessern. Sie werden lernen zu erkennen, was gut und was schlecht ist. Sobald Sie die Sprache nicht mehr beherrschen, können Sie zurückblicken und denken: "Okay, ich hätte das anders implementieren sollen" oder "Das sieht chaotisch aus. Wie kann ich es verbessern?"
Ich denke so darüber nach : Wenn Sie eine neue gesprochene Sprache lernen, tauchen Sie nicht direkt ein und lernen jede einzelne grammatikalische Regel, bevor Sie anfangen, einfache Wörter zu lernen oder wie man sagt "Wo ist die Bushaltestelle?". Programmierung (IMO) ist wie eine zweite Sprache (oder dritte, vierte usw.). Behandle es wie jede andere Sprache und lerne dabei. Der Rest wird mit der Zeit kommen.
quelle
Klarstellung: In C ++ ist es einfacher, ungewollt schlechten Code zu schreiben als in anderen Sprachen. Sie können schlechten Code in jeder Sprache schreiben, aber in C ++ machen Sie sich mit den besten Absichten auf den Weg, landen aber oft an einem unerwarteten Ort, weil C ++ - nachdem Sie von "Anfänger" zu "Fortgeschrittenen Anfänger" gewechselt sind, haben Sie den falschen Eindruck, dass C ++ einfacher ist als es tatsächlich ist. Aber C ++ entwickelt sich weiter und alle neuen Vorlagenbibliotheken machen Ihr Leben einfacher (und sicherer).
quelle
Zwei Dinge:
quelle