Codekonventionen beschreiben in der Programmierung die Regeln beim Erstellen von Quellcode. Er gilt als Teilaspekt von Softwarequalität, der insbesondere die Verständlichkeit und Wartbarkeit von Software, dies sind Kriterien für Softwarequalität gem. ISO/IEC 9126, unterstützen soll.
Vorwort
Sinn und Zweck eines Coding Standard
Regel 0: Immer wenn eine Regel gebrochen wird, muss das deutlich und erkennbar dokumentiert werden
Regel 1: Das Prinzip der Einfachheit: Don’t make me think!
Regel 4: Die Sprache für Kommentare und Bezeichner sollte Englisch sein
Regel 5: Jede Datei wird mit Änderungskommentaren und einem Zeitstempel versehen
Regel 6: Jede Funktion muss mit Kommentaren versehen werden
Regel 7: Lange Kommentare sollten mit /* und kurze mit // gemacht werden
Regel 8: Alle Bezeichner werden aussagekräftig und eindeutig definiert
Regel 9: Benennung von Variablen und Funktionen erfolgen mit Unterstrich und in Kleinbuchstaben
Regel 10: Konstanten werden in Großbuchstaben defniert
Regel 11: Auf keinen Fall Abkürzungen verwenden, die zweideutig sein können
Regel 12: Funktionen, Parameter und Rückgabewerte gut dokumentieren
Regel 13: Die Klammern für eine Funktion () stehen direkt am Funktionsnamen
Regel 14: Funktionen mit langen oder vielen Parametern müssen übersichtlich strukturiert werden
Regel 15: Der Code muss vom Design getrennt werden (Template Engine)
Regel 16: Alle Templates müssen validiert werden
Regel 17: Bezeichner einer Klasse werden mit Großbuchstaben voneinander getrennt
Regel 18: Keine magischen Zahlen
Regel 19: SQL-Befehle werden groß geschrieben
Regel 20: Variablen in Zählschleifen werden mit einem Buchstaben definiert
Regel 21: Trinitäts-Operatoren dürfen nicht verschachtelt werden
Regel 22: Trinitäts-Operatoren müssen Klammern enthalten
Regel 23: INSERT-Anweisungen müssen die einzelnen Spalten für die VALUES-Klausel enthalten
Regel 24: Code, der nicht benutzt wird, muss gelöscht werden
Regel 25: PHP-Skripte müssen auch mit SHORT_OPEN_TAG=off funktionieren
Empfehlung 1: Geschweifte Klammern werden im Allman-Stil eingerückt
Empfehlung 2: Jede Kontrollstruktur hat einen Block mit Klammern
Empfehlung 3: Zum Einrücken von Quellcode werden Tabulatoren verwendet
Empfehlung 4: Die Benutzung von Zahlen in Bezeichnern ist zu vermeiden
Empfehlung 5: Es sollte Subversion und ein Bugtracker-System benutzt werden
Empfehlung 6: Keine Anführungsstriche bei String-Deklarationen
Empfehlung 7: Debug-Informationen von Anfang an einbinden
Empfehlung 8: Werte für FOR-Schleifen richtig setzen
Richtig und Falsch 1: Klammern setzen und Abkürzungen
Richtig und Falsch 2: Übersichtlich programmieren
12. Regel 9: Benennung von Variablen und Funktionen erfolgen mit Unterstrich und in Kleinbuchstaben
Wie schon erwähnt ist der Einsatz von Abkürzungen mit Vorsicht zu genießen. Es kann begründete Fälle geben, wo es sinnvoll ist, eine Abkürzung zu verwenden, aber die Regel „Benennung von Variablen und Funktionen erfolgen Variablentypabkürzung und Kleinbuchstaben mit führendem Großbuchstaben“ soll den Einsatz von Abkürzungen zusätzlich erschweren. Das ist Absicht, denn Abkürzungen können einem Programmier-Team das Leben schwer machen – dazu später mehr.
Wenn jeder im Team die Abkürzung RDBMS kennt, dann kann man sie auch verwenden. Um den Einsatz von Abkürzungen zu ermöglichen und Variablen eindeutig und mit mehreren Worten benennen zu können, benutzt man den Unterstrich zur Trennung der Wörter:
$sName = 'Daniel Kussin'; $rDatabase = mysql_connect(); /* Klassenvariablen */ $_sClassName = 'Wmdk_Oop_Exemplae_Class';
Einige Editoren und die meisten Linux-Systeme unterscheiden zwischen Groß- und Kleinschreibung. Sie arbeiten case-sensitive. Ein
grep "*skriptname*" wmdk_skript.php
führt dann auf jeder Plattform zum Erfolg (wenn es eine entsprechende Variable gibt). Heißt die Variable „$SkriptName“, wird der oben genannte Befehl fehlschlagen.
Variablentypen (Prefix)
Boolean | $bBoolean = TRUE; |
Integer | $iInteger = 1; |
Float | $fFloat = 1.23456; |
String | $sString = 'Daniel Kussin'; |
Array | $aArray = array('Daniel', 'Ole', 'Mike'); |
Object | $oObject = new Wmdk_Oop_Exemplae_Class; |
Ressource | $rRessource = mysql_connect(); |
Vergleich: http://www.php-coding-standard.de/mhtml/regel09.html von Claus van Beek