[PHP] High Quality PHP-Code – Teil 1 Code-Style

[PHP] High Quality PHP-Code – Teil 1 Code-Style

Kyôya

Mitglied
Kyôya hat eine neue Ressource erstellt:

[PHP] High Quality PHP-Code – Teil 1 Code-Style - [PHP] High Quality PHP-Code – Teil 1 Code-Style

Hi, ich habe schon einiges an PHP-Code gesehen (und auch selber geschrieben) und vieles davon ist alles andere als schön. Ich möchte euch in diesem Tutorial zeigen, wie man die Code-Qualität steigern und damit anderen den Support, das Debugging, die Weiterentwicklung, etc. erleichtern kann. Und so ganz nebenbei, die PHP-Profis kochen auch nur mit Wasser ;).

Das Wichtigste am Code ist ein einheitlicher Stil.
Dazu zählen folgende Aspekte:
  • Maximale Zeilenlänge
  • Art der...

Weitere Informationen zu dieser Ressource...
 
Zuletzt bearbeitet von einem Moderator:
Hi,

Danke für diese Einführung, die dürfte vorallem für Neulinge recht interessant sein.

Ein Thema, das du anschneidest, wurde bei uns im Team schonmal größer diskutiert:
Werden für die Einrückungen Tabs benutzt, so kann sich der Code optischen von IDE zu IDE unterscheiden. Je nachdem wie die Schrittweite für Tabs eingestellt ist. Aus diesem Grunde sollte man hier Spaces verwenden, Dabei sollte eine Einrückungsstufe vier Leerzeichen entsprechen.

Einheitlicher wird es sicherlich, wenn man anstatt der Tabs mit Leerzeichen arbeitet. MEiner Meinung nach ist es aber gerade ein Vorteil von Tabs, dass sich jeder selbst die Schrittweite einstellen kann, ohne dass man den Source verändern muss. Ich arbeite zu Hause auf einen relativ kleinen Monitor, hier habe ich eine Schrittweite von 2. In der Arbeit habe ich nen größeren Widescreen-Monitor, hier hab ich die Schrittweite 6.

Grundsätzlich finde ich, dass dieser Punkt größtenteils Ansichtssache ist. Wichtig ist nur, wenn man sich für eine Art entschieden hat, dann sollte man diese auch im kompletten Projekt durchziehen. Ansonsten wird das ganze ziemlich unübersichtlich, wenn die Zeilen teils mit 2 Leerzeichen eingerückt und teils mit einem Tab und Schrittweite 6 angezeigt werden...

Habe übrigens auch noch einen Link zu verschiedenen Konventionen gefunden, die man beim Programmieren befolgen kann. Ich persönlich bevorzuge den K&R Stil, arbeite auch viel mit C.


Grüße,
BK
 
Hier auch noch ein Tip (vor allem in der kommerziellen Programmierung):
Variablen IMMER klein schreiben
Konstanten IMMER groß schreiben

Eine ganz einfach Regel, die den Lesefluss um einiges steigert ;)
 
Variablen IMMER klein schreiben
Konstanten IMMER groß schreiben

Variablen immer klein? Du meinst mit Sicherheit nur den ersten Buchstaben, danach gehst in CamelCase weiter. Zumindest, wenn man Code für kommerzielle bzw. OSS Projekte erstellt.
Bei Konstanten gebe ich dir recht. Man globale Konstanten meiden (PHP-Funktion define), da sie die Testbarkeit des Codes negativ beeinflussen. Aber dazu gibts im nächsten Teil mehr ;)
 
Vieles kann einem Netbeans mit der Tastenkombo Alt+Shift+F abnehmen :) ich benutze das schon seit Jahren. Als Klassenvariablen kann man auch $mVarname nehmen und als Übergabevariablen $aVarname, so wird immer klar wo man was und welche Variable her hat :)

Aber sonst netter Text, vielen Dank :)

P.S. Ich finde { in der gleichen Zeile besser :D weniger Code, weniger scrollen, in der Datei insgesamt.
 
Zuletzt bearbeitet:
Schlecht lesbar sind im Übrigen auch "Buckelwüsten" ala
PHP:
$vorname = "Max";
$nachname = "Mustermann";
$strasse = "Musterstraße";
$hausnr = "10";
$plz = "01234";
$ort = "Musterstadt";
$sprache = "deutsch";

besser lesbar:
PHP:
$vorname  = "Max";
$nachname = "Mustermann";
$strasse  = "Musterstraße";
$hausnr   = "10";
$plz	  = "01234";
$ort	  = "Musterstadt";
$sprache  = "deutsch";

Ob Variablen nun englisch benannt sein müssen, darüber lässt sich streiten. Letztlich sind wir hier in Deutschland und sofern es sich nicht gerade um eine Open Source Software handelt, ist Deutsch für die meisten die einfachere Sprache (weil Muttersprache). Wichtig ist auf jeden Fall Konsistenz. Englische und deutsche Variablennamen vermischt sind zu vermeiden.

Grüße BN
 
Variablen immer klein? Du meinst mit Sicherheit nur den ersten Buchstaben, danach gehst in CamelCase weiter. Zumindest, wenn man Code für kommerzielle bzw. OSS Projekte erstellt.
Bei Konstanten gebe ich dir recht. Man globale Konstanten meiden (PHP-Funktion define), da sie die Testbarkeit des Codes negativ beeinflussen. Aber dazu gibts im nächsten Teil mehr ;)

Jap genau ;) Richtig gedacht falsch ausgedrückt :rolleyes:
 
Hey,

durchaus nützlich, so eine kurze Einführung, allerdings hätte ich 2 Dinge beim einheitlichen Code-Beispiel zu bemeckern ;)
  1. wenn du von einheitlichen geschreiften Klammer sprichst, dann sollten die öffnenden Klammern eine Zeile hoch rutschen (class, function) oder eins runter (if).
  2. bei Operatoren/Operanden hast du noch gesagt, dass es mit Leerzeichen gleich besser wird, aber das hast du in dem Beispiel wieder außer Acht gelassen (=, !==). Ich bin der Meinung, dass die Leerzeichen her sollten. Manche sind auch der Meinung, dass bei einem Cast nach der schließenden Klammer ein Leerzeichen sollte. In Java ist das Konvention, in PHP keine Ahnung.

Aber ansonsten schöne Übersicht.
 
Gute Arbeit und sicherlich nuetzlich fuer wahre blutige Anfaenger, aaaber:
Ich weiss ehrlich gesagt nicht, was das ganze mit 'High Quality PHP-Code' zu tun haben soll.
Du gibst ja schliesslich nur Tipps, um von einem Code voller Anfaengerfehler (Deine Beispiele: Keine Einrueckungen usw.) einen Code zu machen, der *ueberhaupt* lesbar ist. Auch ist das nur eine Konvention von vielen, die in PHP genutzt werden kann. Du solltest daher gleich zu Begin dazuschreiben, dass deine Tipps Regeln aus einer Konvention ist, die entweder so unter einem Titel standardisiert oder aus Deinen persoenlichen Vorlieben entstanden sind; nicht, dass der Leser noch denkt, dass dies ungeschriebene goldene Regeln sind.
 
Hi,

ich hätte auch ein oder zwei Anmerkungen.
Ist es Absicht, dass im ersten Code-Beispiel im dritten Abschnitt eine Variable benutzt wird die es in der Funktion gar nicht gibt?

Achja im Abschnitt 2.. da steh ich jetzt wohl grad aufm Schlauch... Wie rechne ich den
Code:
$z2 / 6 * 13
  1. z2 druch das Produkt von 6 mal 13 oder
  2. z2 druch 6 mal 13?

Ich meine mich daran zu erinnern, dass die Multiplikation zuerst ausgeführt wird... aber sicher bin ich mir gerade nicht...

@_Grubi
Ich finde es gar nicht so schlimm Klassen und Funktionen/Methoden von Kontrollstrukturen abzuheben, dadurch dass man die öffnende geschweifte Klammer nicht in die selbe Zeile schreibt.
 

Neue Beiträge

Zurück