14. Februar 2012 | Leave a comment Guten Abend, heute möchte ich einen kurzen Beitrag über sauberes Coding verfassen. Zu aller erst: Was bedeutet „sauberes“ Coding und wie können wir sicherstellen, das wir (und ggf. unsere Kollegen) sauberen Code entwickeln? Coding Styleguides Nun, es gibt kein „richtig“ oder „falsch“ was den Stil angeht – Alles was ihr macht basiert entweder auf eigenen oder betrieblichen Vorgaben. Am einfachsten und schnellsten umzusetzen (und in vielen Firmen gerne genutzt) sind sogenannte „Coding Styleguides“ – Also eine Definition wie euer Code aussehen muss. In solchen Styleguides wird festgehalten wie und wo eingerückt wird, ob geschweifte Klammern in eigenen Zeilen stehen, welche Notation genutzt wird und noch vieles mehr. Wir sehen anschließend zwei Code-Beispiele… // Unsauberer Code: $array = array('Dies', "sind", "mehrere", 'Keys'); for ($i = 0; $i < count($array); $i++) { $satz .= $array[$i] . ' '; } echo $satz Der nachfolgende Code ist inhaltlich zwar identisch, jedoch etwas übersichtlicher da auf die unnötige Schleife verzichtet wird - Außerdem ist die Einrückung einheitlich. // Sauberer Code: $aSatzsteine = array( 'Dies', 'sind', 'mehrere', 'Keys' ); echo implode(' ', $aSatzsteine); Wir haben folgendes geändert: Der Variablen-Name wurde in etwas Sinnvolles geändert und befolgt eine eigene Implementation der ungarischen Notation Die Einrückung der Array-Elemente wurde geändert (die Einrückung besteht aus 4 Leerstellen, bzw. einem Tab) Die unnötige FOR-Schleife wurde entfernt, stattdessen wurde mit "implode" gearbeitet. Das Ergebnis wird "nahezu" identisch sein (beim ersten Beispiel wird eine Leerstelle an das Ende des Satzes gestellt) Die FOR-Schleife ist extrem langsam, da innerhalb der Bedingung die Inhalte wieder und wieder gezählt werden Dieses kleine Beispiel soll zeigen wie durch einfache PHP Funktionen und die entsprechende Kenntnis sowohl Quellcode und Ressourcen gespart, als auch die Übersichtlichkeit erhöht werden kann. Es gibt aber natürlich noch sehr viele andere Dinge, die beachtet werden können! Code via PHPDoc dokumentieren Ein weiteres wichtiges, wenn nicht gar DAS wichtigste, Thema ist die Dokumentation. Viele aufgeräumte Quellcodes benötigen zwar nicht zwangsweise eine ausführliche Dokumentation, doch es wird auch niemals von Nachteil sein - So viel ist sicher 😉 In meinen Beispielen versuche ich möglichst immer korrekt zu Dokumentieren: // Einzeilige Kommentare sehen so aus. /* * Kommentare die über mehrere Zeilen gehen * sollten so aussehen. */ /** * Sogenannte PHPDoc Kommentare werden mit zwei Sternchen begonnen. */ PHPDoc Kommentare werden üblicherweise für Dateien, Klassen und Methoden/Funktions-Dokumentationen benutzt. Innerhalb von PHPDoc Kommentaren sind sogenannte Tags möglich - Diese werden von beinahe allen IDEs verstanden und es gibt Bibliotheken/Skripte die aus einer (oder mehreren) dokumentierten Klassen eine dynamische Dokumentation erstellen. Ein hervorragendes Beispiel ist der sogenannte Userguide des Kohana Frameworks (Ja, ich erwähne dieses Framework sehr häufig... Aber es ist auch mein klarer Favorit). Die meist genutzten Tags in PHPDoc Kommentaren sind "@var" für Variablen, "@author", "@param", "@return" und "@uses" für Funktionen und Methoden und "@category", "@package", "@copyright" und "@license" für Klassen und Dateien. Doch es geht noch mehr! Wenn ihr privat oder beruflich mit Versionierungs-Software, wie z.B. SVN, arbeitet, gibt es Tools die vor jedem commit diverse Regeln durchlaufen (sogenannte "Code Sniffer"). Dadurch wird euer Code nach definierten Regeln durchsucht bevor er versioniert wird - Ergebnis ist ein sauberes Repository. Im Grunde gibt es jedoch keine "Regeln" wie sauberer Code aussehen muss - Das hängt schlichtweg vom Entwickler und seinem Stil ab. Doch Dokumentation, einheitliche Einrückung und sinnvolle Variablenbenennung sind Ziele, die für jeden Entwickler erreichbar sind 🙂 Mit diesen Worten möchte ich den Eintrag für Heute abschließen. Ich hoffe ihr könnt mit den Tipps etwas anfangen und vielleicht einen eigenen kleinen Styleguide für eure privaten Projekte aufsetzen! Als Beispiel könnt ihr euch verschiedene Quelltext Ausschnitte von Open-Source Projekten ansehen (ganz egal welche Programmiersprache). Frohes Schaffen!