Samstag, 31. Januar 2009

Schöner Coden mit C, C++, Java, etc

Guter Stil im Quellcode ist sehr wichig, damit Software möglichst bugfrei und wartbar ist. Es gibt einige Regeln, mit denen man den doppelten und/oder unleserlichen Code vermeiden kann und zugleich automatisch den Quellcode kommentiert. Die Basics, die jeder kennt
  • Quellcode immer richtig Einrücken (momentan egal wie weit). Wer das noch nicht kann, soll das erst mal lernen. Ohne der Regel geht gar nichts.
  • Richtige Kommentare. Wenn man int i deklariert, braucht man nicht schreiben, dass man int i gerade deklariert, sondern warum. Triviale Sachen brauchen keine Kommentare.
Kurze Funktionen/Methoden (!!!) Eine Funktion ist ein Subprogramm, das eine bestimmte Aufgabe erfüllt, eine Methode ist ein Codeteil einer Klasse, der ebenfalls nur eine bestimmte Aufgabe erfüllt. Wie diese eine Aufgabe zu erfüllen ist wird nur einmal im Programm definiert und kann dann von allen anderen verwendet werden statt sie jedes Mal wieder zu copy und pasten. Ist nämlich in dieser einen Aufgabe ein Fehler, muss er nur einmal korrigiert werden. Wenn es eine schnellere Variante zur Lösung der Aufgabe gibt, muss diese auch nur einmal ersetzt werden. Jedoch kommt man immer wieder in Versuchung in die Methode alles Mögliche zu programmieren, weil man glaubt, dass man dann schneller ist. Das schlägt allerdings schnell ins Gegenteil um, wenn man langsam den Überblick verliert und immer wieder fünf Stellen im Code was ausbessern muss. Deshalb gibt es hier ein paar Regeln, die man beim Funktionen schreiben beachten sollte:
  • Eine Funktion ist max 20 Zeilen lang. Das ist etwa eine VGA Seite
  • In Ausnahmefällen auch mehr (initialisierung für etwas)
  • Nur maximal drei Mal einrücken - wer öfter einrückt hat was falsch gemacht
  • Max 75 Spalten
  • Wenn es die Programmiersprache zulässt für jede Aufgabe eine eigene Funktion
  • Max 7 lokale Variablen
Klammersetzung Wenn du dich oft fragst, ob du vor Klammern ein Leerzeichen lassen sollst (foobar ()) oder nicht (foobar()), dann bist du hier richtig. Die Frage ist auch nicht unwichtig, da das das Syntax Highlighting ohne Farben ist :). Was ich jetzt schreibe ist wie ich die Klammern setze und warum. Kontrollstrukturen und Funktonen unterscheiden Jeder wird mir zustimmen, dass Kontrollstrukturen wie if und while, die den Programmablauf verändern etwas ganz anderes sind als Funktionen, die einfach bestimmten code aufrufen. Hier kann man zur schnelleren Erkennung die Klammern verschieden setzen. Ich mach es so:
  • Bei Kontrollstrukturen lasse ich ein Leerzeichen (if (...))
  • Bei Funktionen kommen sofort Klamern (foobar())
Der Grund dafür ist, dass maximal eine Kontrollstruktur, jedoch mehrere Funktionen in einer Zeile stehen können. Somit spart man platz. Wie weit einrücken? Ich machs kurz. Wenn man einrückt, dann so, dass man es sieht. Einrücken ist eine der wichtigsten Teile für die Strukturierung. Wem 8 Zeichen zu viel sind, der soll sich nochmal den Punkt mit den Funktionen richtig schreiben anschauen -->max 3x einrücken. Damit wird man auch gleich gezwungen Funktionen nicht komplex zu schreiben. Wohin das{? Komischerweise finden Einsteiger (auch ich damals) die Klammer in einer extra Zeile schön. Jedoch trennt diese Klammer bei Kontrollstrukturen die Bedingung von dem Codeblock, was eigentich zusammen gehört. Eine einzeilige Kontrollstruktur klebt jedoch wieder zusammen, wodurch der Code nicht mehr einheitlich ist. Deshalb kommt das { bei Kontrollstrukturen nie in eine seperate Zeile. So mach ich das auch in Strukturen, Unions und Klassen. Nur bei Funktionen kommt die Klammer bei mir seperat, aber keine Ahnung warum. Ich hoffe die Hinweise helfen, um besseren Code zu schreiben, Fröhliches Coden!