Was ist »guter« Code

KristophS

Erfahrenes Mitglied
Vor einigen Tagen habe ich das Interview auf »Golem.de « gelesen.
In diesem sagt einer der Gründer von Zend(Zeev Suraski) ,dass PHP nicht schlecht ist ,sondern die Entwickler.
Nun ,wenn ich mich hier umsehe ,dann gebe ich ihm Recht.

Aber das war nicht meine Motivation diesen Beitrag zu schreiben ,vielmehr wollte ich herausfinden ,wie man ,vor allem in PHP, guten Code definiert.

Ich halte mich z.B. weitesgehend an die »pear« Richtlinien ,und achte auf ansonten darauf möglichst sauber und strukturiert PHP zu schreiben.Außerdem entwickle ich immer mit dem Error Leve »E_ALL« .
Allerdings habe ich keine Informatik Kenntnisse.
Reicht das ,um behauten zu können : »Mein Code ist gut«?
Wie finde ich heraus ob ich gut Code und welche Richtlinien gibt es?
Ich sehe soviele die sich über schlechten Code beschweren -gibt es ein Tutorial :
»Wir lernen guten PHP Code« ,oder ist es so einfach guten Code zu schreiben?
 
Zuletzt bearbeitet:
....

Ganz einfach. Ein Code ist dann gut, wenn er so schnell wie nur möglich auszuführen geht. Ich rede schon seit einiger Zeit mit Entwicklern von Browsergames und bei denen ist es das A und O einen schnellst möglichen Code zu entwickeln/schreiben um die Serverauslastung zu mindern.

Also schätze ich mal ein guter Code ist ein schneller Code.
 
Ganz einfach. Ein Code ist dann gut, wenn er so schnell wie nur möglich auszuführen geht. Ich rede schon seit einiger Zeit mit Entwicklern von Browsergames und bei denen ist es das A und O einen schnellst möglichen Code zu entwickeln/schreiben um die Serverauslastung zu mindern.

Also schätze ich mal ein guter Code ist ein schneller Code.

Soweit ich ,weiss ist das ein weitverbreiter Irrglaube.
Bei Gutem Code kommt es auf andere Aspekte an ,aber sicher nicht (nur) auf die Geschwindigkeit (Browsergames sind keine »normale« PHP Applikation ,außderdem verwendet man in Browsergames auch Klassen obwohl diese den Code verlangsamen..).

Bemängelt wird ja bei PHP ,dass man keine explizite Typenzuweisung hat ,und man noch nicht einmal eine Variable deklariern muss ,um damit zuarbeiten ,Ich denke das man eher auf sowas achten sollte.
Aber sicher wird es noch andere Punkte geben ,hoffe Ich.
 
Natürlich ist das schwer zu erklären. Jeder hat einen eigenen "Standard". Du hältst vielleicht ein Code für gut und ich wiederrum meine, dass ich ihne sch... finde. Ich denke einfach mal, dass er mit gutem code meint, dass er erstens fehlerfrei gesciptet wird und dann auch keine Angriffsmöglichkeiten bilden. Man sagt ja auch immer, dass man einen Code so schreiben sollte, dass jeder dieses Stück lesen kann.
Aber lesen können wir alle und wer sich ein Codestückchen anschaut und verstehen will, muss sich ja auch zwangsläufig mit der Sprache auskennen. Ich kann ja nicht alle kommentieren, am Besten noch die Definition am Ende rankommentiert.

Ist glaub ich fast so, wie wenn du fragen würdest, was der Unterschied von "das Gleiche" und "das Selbe" ist ;)
 
Natürlich ist das schwer zu erklären. Jeder hat einen eigenen "Standard". Du hältst vielleicht ein Code für gut und ich wiederrum meine, dass ich ihne sch... finde. Ich denke einfach mal,

Dass kann nicht sein ,sonst könnte der Her Suraski nicht behaupten ,dass es schlechten Code gibt..

Programmiersprachen ,sind ja auch nichts anders als Werkezeuge mit denen man sich ausdrücken will ,also Sprachen.
Es gibt gutes Deutsch und es gibt »Kanackensprache« ,um da mal 2 gegensätzliche Dinge zu nennen.

einfach mal, dass er mit gutem code meint, dass er erstens fehlerfrei gesciptet wird und dann auch keine Angriffsmöglichkeiten bilden. Man sagt ja auch immer, dass man einen
Es gibt viele Möglichkeiten »fehlerfrei« zu scripten.
Du kannst z.B. einfach das Error Level runter setzen -schon ist dein Code fehlerfrei.
Dass er keine Angriffsmöglichkeiten bieten darf ,halte ich allerdings für einen guten Punkt :).
 
Zuletzt bearbeitet:
Wir hatten mal den Thread (Hier), wo über die Klammersetzung beim Code diskutiert wurde. Das ist genau das Problem. Jeder hat eine andere Technik, aber im Endeffekt macht der Code das Gleiche. Ich finde es zum Beispiel für mich leserlicher, wenn die Klammern so gesetzt werden.

PHP:
if(...)
{
 ...
}
else
{
 ...
};

Ok Fehlerlevel runtersetzen. Dann füge ich noch den Punkt hinzu, dass dieses Script auf jeder Umgebung laufen sollte, wo php installiert ist. Egal was du für Konfigurationen eingestellt hast. Also das ist eigentlich das, was ich meinte :)
 
Zuletzt bearbeitet:
Wir hatten mal den Thread, wo über die Klammersetzung beim Code diskutiert wurde. Das ist genau das Problem. Jeder hat eine andere Technik, aber im Endeffekt macht der Code das Gleiche.
Tut mir leid ,aber das passt jetzt garnicht ,oder ich verstehe etwas Falsch :).


Es gibt nur 2 grundsätzliche Möglichkeiten bei der Klammernsetzung , einmal die Klammern in eine neue Zeile zu setzen oder die Klammern an das Ende der Funktion zusutzen.

Ich spreche z.B. Deuscht gut ,wenn ich mich an die Grammatik halte und perfekt pasende Wörter auswähle .

Bei PHP könnten wir die Grammatik mit der »Fehlerfreiheit« und der guten Schreibweise des Codes gleichsetzen ,die »Vokabeln« mit Funktionen.
Auch die Portabilität von Code ist sicher eine wichtige Eigenschaft(die Fehlerfreiheit ja mit sich bringt ,wie wir erabrbeite haben [wenn man von einem hohen Level ausgeht]) ,doch was ist wirklich von Bedeutung ,mein Verstand sagt mir das dort noch etwas fehlt.
Ist das guter Code ,Fehlerfrei und genau die Funktionen zu wählen die am geeignesten sind?


Natürlich kann man keine absoulete Antwort geben ,doch gibt es ja Bücher wie : »Verbesserung des PHP Code Stils « auf welche Dinge wird dort geachtet?
 
Zuletzt bearbeitet:
Original geschrieben von KoMtuR
Ist glaub ich fast so, wie wenn du fragen würdest, was der Unterschied von "das Gleiche" und "das Selbe" ist ;)

Beispiel: Wir kaufen und beide eine CD (Artist: X, Titel: Y), dann haben wir die gleiche CD, kaufen wir uns allerdings zusammen die eine CD dann haben wir die selbe. Korrigiert mich, wenn's falsch ist :rolleyes:

Zum Thema "Guter Code" habe ich bis jetzt nur dies hier gelesen: http://www.dclp-faq.de/ch/ch-code.html
Ich finde, dass es auch nicht wirklich Aufschluss gibt, aber ein oder zwei Aspekte sind ganz interessant.

Nächtlicher Gruß
Marvin
 
OT:

Beispiel: Wir kaufen und beide eine CD (Artist: X, Titel: Y), dann haben wir die gleiche CD, kaufen wir uns allerdings zusammen die eine CD dann haben wir die selbe. Korrigiert mich, wenn's falsch ist
Die gleiche CD ist es ,wenn du genau die selbe wie jemand anders hast ,also alles genau gleich.
Die selbe ,wenn sie ähnlich ist ,also deine Blau ist seine Gelb ,aber trotzdem vom gleichen Künstler.
Allerdings gibt es hierfür keine genaue Definition ,es hängt stark vo persöhnlichen Sprach Empfinden ab.

Zurük zum Thema
Danke für den Link ,doch werden dort Sachen als »gut« aufgeführt ,die laut Pear zu unterlassen sind.
Im Pear Manual heisst es z.B: Verwende immer Klammern .
Wohingegen die dlcp-faq mich darauf hinweist ,das ich bei einfachen Anwendungen auf Klammern verzichten sollte.


Naja das ist auch eher etwas triviales..

--
Entschuldigt mein schlechtes Deutsch ,doch ich bin seit ~18 Std. auf den Beinen ,das schlaucht und ausdiesem Grund bin ich nun auch weg ;)
 
Zuletzt bearbeitet:
Hallo,

natürlich ist es selbstverständlich das man so coden sollte dass alles fehlerfrei funktioniert.

Wie man den Code letztendlich formatiert ist meiner Meinung nach auch eine Frage des Projekts.
Wenn jemand an der eigenen Privatseite bei einem Script nicht einrückt usw. stört dass eher nicht, jedenfalls ist es im Endeffekt eher ihm selbst ein Hinderniss.
Bei einer Auftragsarbeit sollte dass aber nicht der Fall sein da möglicherweise auch einmal andere mit dem Geleisteten zurechtkommen müssen. Deshalb sollte hier ordentlich gearbeitet werden, also auch Kommentare an wichtige Stellen gesetzt werden.

Jedoch ist es so (kenne ich auch von mir selbst) dass man zum Teil unter Zeitdruck steht, alles etwas "hinklatscht" und nicht wirklich konsequent einrückt.
Es ist einfach so das die Scripte trotzdem richtig laufen und nach dem Argument "who cares" einfach alles gelassen wird. Interessant wäre hier wenn man vergleichen könnte wieviel Zeitersparniss das nichtformatieren bringt und wieviel Zeit dieser dann letztendlich beim Suchen oder verstehen des solchen wieder kostet.


Viele Grüße,

Stefan
 
Zurück