Der Programmierstil besteht aus einer Reihe von Regeln oder Richtlinien, die beim Schreiben des Quellcodes eines Computerprogramms verwendet werden . Es wird oft behauptet , dass ein bestimmten Programmierstil folgenden hilft Programmierer lesen und verstehen , den Quellcode , dass entsprechen die Art und Vermeidung von Fehlern helfen.
Ein klassisches Buch zu diesem Thema, The Elements of Programming Style (in) , wurde in den 1970er Jahren geschrieben und anhand von Beispielen in den Programmiersprachen Fortran und PL / I illustriert .
Die Qualität eines Programmierstils ist eine heikle Einschätzung, deren Charakterisierung schwierig ist. Es gibt jedoch Elemente, die vielen Programmierstilen gemeinsam sind. Aspekte, die allgemein als wichtig angesehen werden, sind das Layout des Quellcodes, einschließlich der Einrückung; die Verwendung von Leerzeichen um Operatoren und Schlüsselwörter; die Großschreibung von Schlüsselwörtern und Variablennamen; den Stil und die Schreibweise von benutzerdefinierten Bezeichnern; und die Verwendung und den Stil von Kommentaren .
Programmierstile befassen sich im Allgemeinen mit dem visuellen Aspekt des Quellcodes mit dem Ziel der Lesbarkeit. Es gibt seit langem Software, die den Quellcode automatisch formatiert, sodass sich die Codierer sowohl auf die logische Benennung als auch auf allgemeine Prozesse konzentrieren können. In der Praxis spart die Verwendung eines Computers zum Formatieren des Quellcodes Zeit.
Die Einrückungsstile helfen bei der Identifizierung der Flusssteuerungs- und Logikblöcke. In einigen Sprachen wird der Einzug verwendet, um logische Codeblöcke abzugrenzen. Die richtige Einrückung ist in diesen Fällen nur eine Frage des Stils. In anderen Fällen wirken sich Einrückung und Leerzeichen nicht auf die Funktion aus, obwohl die logische und konsistente Einrückung den Code besser lesbar macht. Vergleichen Sie:
if (hours < 24 && minutes < 60 && seconds < 60) { return true; } else { return false; }oder
if (hours < 24 && minutes < 60 && seconds < 60) { return true; } else { return false; }Mit so etwas wie
if ( hours < 24 && minutes < 60 && seconds < 60 ) {return true ;} else {return false ;}Die ersten beiden Beispiele sollten viel einfacher zu lesen sein, da sie auf gemeinsame Weise eingerückt sind. Diese Art der Einrückung ist besonders nützlich, wenn es sich um verschachtelte Konstrukte handelt. Beachten Sie jedoch, dass dieses Beispiel wie folgt zusammengefasst werden kann:
return hours < 24 && minutes < 60 && seconds < 60; LuaLua verwendet keine herkömmlichen Klammern oder Klammern . Auf die if-Anweisungen / else, für die nur der Ausdruck erforderlich ist, folgt eine thenAnweisung end.
if hours < 24 and minutes < 60 and seconds < 60 then return true else return false endEinrückung ist optional. and (et),, or (ou)und not (non) werden zwischen wahr / falsch-Aussagen verwendet.
PythonPython verwendet Einrückungen, um Kontrollstrukturen anzuzeigen . Auf diese Weise müssen die Klammern nicht mehr verwendet werden .
if hours < 24 and minutes < 60 and seconds < 60: return True else: return FalseViele Python-Programmierer tendieren dazu, einem Style-Guide zu folgen, der allgemein als PEP8 bekannt ist. Es gibt Tools zur Automatisierung der PEP8-Konformität.
Es ist oft nützlich, ähnliche Elemente vertikal auszurichten, um typografiebezogene Fehler offensichtlicher zu machen.
Entweder der folgende Code:
$search = array('a', 'b', 'c', 'd', 'e'); $replacement = array('foo', 'bar', 'baz', 'quux'); // Another example: $value = 0; $anothervalue = 1; $yetanothervalue = 2;und das hier:
$search = array('a', 'b', 'c', 'd', 'e'); $replacement = array('foo', 'bar', 'baz', 'quux'); // Another example: $value = 0; $anothervalue = 1; $yetanothervalue = 2;Dieses letzte Beispiel macht zwei Dinge intuitiv klarer, mehr als im ersten:
Der Leerraumstil wird häufig verwendet, um die Lesbarkeit zu verbessern .
Was beispielsweise in den folgenden syntaktisch äquivalenten Snippets in C vorkommt :
int i; for(i=0;i<10;++i){ printf("%d",i*i+i); }gegen
int i; for (i=0; i<10; ++i) { printf("%d", i*i+i); }gegen
int i; for (i = 0; i < 10; ++i) { printf("%d", i * i + i); }