PSR-2-Refactoring

Hier geht es um die Programmierung von Opencaching.de - User mit Erfahrungen im Bereich PHP, MySQL, HTML, JavaScript, CSS werden hier ständig gesucht
Bananeweizen
Nano
Nano
Beiträge: 97
Registriert: 18.02.2013, 13:18

Ich bin schon lange kein PHP-Entwickler mehr, von daher habe ich auch keinerlei favorisierte Formatierung für diese Sprache. Die schlechte Lesbarkeit im anfänglich gezeigten Beispiel liegt nicht an der Formatierung, sondern an der Code-Struktur. Ich schlage zwei Maßnahmen vor, die diesen und vielen anderen Code sehr viel lesbarer machen:

1. Mehr Methoden extrahieren. Aus meiner Sicht sollte _jede_ der if/ifelse Zeilen eine boolsche Methode aufrufen, statt mehrere Variablen zu prüfen. Also etwas wie

Code: Alles auswählen

if (isPageX()) {
...
} elseif (isPageY() {
...
}
wobei isPageX() die vorherigen Expressions zusammenfasst. Solche Einzeiler-Methoden sind auf lange Sicht Gold wert, weil man damit immer einem ganz kurzen Code-Schnipsel einen sprechenden Namen gibt, statt beim Code lesen jedes Mal das eigene Gehirn mit dem Dekodieren zu beschäftigen ("ach klar, die zwei Variablen, wir sind auf Page X")

Und vermutlich gehen die PSR2-Leute davon aus, dass die durschschnittliche if/ifelse-Zeile grade mal 30 Zeichen lang ist und nicht 80 bis 100 wie im Beispiel.

2. Guards verwenden: http://refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html. Damit entfallen an viele Stellen geschachtelte oder kaskadierte Konstrollstrukturen.

Ciao, Michael
following

Einen ähnlichen Vorschlag wie 1. hat ja auch teiling88 oben schon gemacht; denke das ist für viele Fälle eine gute Lösung. In einem anderen PHP-Projekt sind mir inzwischen auch die von Slini vorgeschlagenen Leerzeilen am Anfang von PSR-2-Blöcken aufgefallen - die starre Klammerregel verursacht Workarounds, mit denen man dann halt leben muss.

(Lieber erster und zweiter Vereinsvorsitzender: Lasst doch bitte bei "technischen" Fragen diejenigen Leute miteinander reden, die sich damit auskennen. Solche inhaltlichen Probleme löst man nicht mit Machtdemonstrationen und Beschimpfungen.)
Zuletzt geändert von following am 09.04.2016, 14:37, insgesamt 1-mal geändert.
Benutzeravatar
4_Vs
Vereinsmitglied
Vereinsmitglied
Beiträge: 3150
Registriert: 18.03.2012, 07:25

[quote="following"]
(Lieber erster und zweiter Vereinsvorsitzender: Lasst doch bitte bei "technischen" Fragen diejenigen Leute miteinander reden, die sich damit auskennen. Es gibt genügend Gelegenheiten, wo ihr euren Drang zur Machtausübung sinnvoll einsetzen könnt; hier richtet es zu viel Schaden an. Nicht umsonst hatten wir uns vor einigen Monaten - nach dem fünften Abgang eines vom Verein eingesetzten Entwicklungsvorstands - darauf geeinigt, das technische und organisatorische Fragen in der OC-Entwicklung nun alleine von den aktiven Entwicklern entschieden weden.)
[/quote]
Du kannst es nicht lassen oder? Warte - ich hol mir was Popcorn und schaue dann zu, wie Du Dein Fähnchen wieder in den Wind hältst :)

Edit: Tja Peter, da hast Du wohl zu spät editiert ...
Whenever I try to plan something, it doesn't seems to work out. So why plan, it only leads to disappointment! (Eddie van Halen)
dl6hbo

[quote="4_Vs"]
Du kannst es nicht lassen oder? Warte - ich hol mir was Popcorn und schaue dann zu, wie Du Dein Fähnchen wieder in den Wind hältst :)
[/quote]

Enjoy !

Mal im Ernst: Müsst Ihr immer wieder Salz in die Wunden kippen ?  Ja, ich meine wirklich alle, den großen Vorsitzenden, den Großen Entwickler und auch den Usability Spezialisten !
Benutzeravatar
ClanFamily (Mirco)
Administrator
Administrator
Beiträge: 1409
Registriert: 03.09.2012, 21:55

@Rainer: Wie würdest Du denn reagieren, wenn man Dir fortlaufend mangelnde Kompetenz unterstellt?
Das Sticheln startet nicht bei 4Vs oder mir. Wir haben andere Dinge zu tun.
Ich habe auch keine Lust mehr auf Diskussionen, da diese vorhersehbar immer den selben Verlauf nehmen.
Mit feudalen Grüßen,
Mirco aka Clanfamily
- Vorstand -

MeetMe | OC YouTube | OC Talk
following

Wie die Diskussion verlaufen ist, ist oben nachzulesen. Ein paar Entwickler haben Argumente ausgetauscht und konnten die offenen Fragen klären. Für mich eine Selbstverständlichkeit, dass man in solchen Fragen nach dem Konsensprinzip vorgeht - man überzeugt sich mit Argumenten, nicht mit Gewalt oder Macht.
Benutzeravatar
mic@
Vereinsmitglied
Vereinsmitglied
Beiträge: 6623
Registriert: 04.12.2009, 00:31

[quote="following"]Wie die Diskussion verlaufen ist, ist oben nachzulesen.[/quote]

OK, jetzt fehlt nur noch Micha...
Was ist das hier für ein Kindergarten  :mecker:

Warum hört keiner der Hauptakteure auf [url=http://forum.opencaching.de/http://localhost//viewtopic.php?p=57785#p57785]den Dompteur[/url] oder [url=http://forum.opencaching.de/http://localhost//viewtopic.php?p=57809#p57809]auf Rainer[/url] oder [url=http://forum.opencaching.de/http://localhost//viewtopic.php?p=57791#p57791]auf mich[/url]?
Warum kennt keiner das Sprichwort "Der Klügere gibt nach". Oder auch "Reden ist Silber, Schweigen ist Gold"?
Ich möchte ungern zusehen, wie das Enwicklerteam wegen anders positionierten Klammern auseinandergesprengt wird.
following

[quote="mic@"]
Ich möchte ungern zusehen, wie das Enwicklerteam wegen anders positionierten Klammern auseinandergesprengt wird.
[/quote]

Das Entwicklerteam ist sich längst einig. :) Trotz all der Zwischenrufe aus den anderen Abteilungen.
dl6hbo

[quote="ClanFamily (Mirco)"]
@Rainer: Wie würdest Du denn reagieren, wenn man Dir fortlaufend mangelnde Kompetenz unterstellt?
Das Sticheln startet nicht bei 4Vs oder mir. Wir haben andere Dinge zu tun.
Ich habe auch keine Lust mehr auf Diskussionen, da diese vorhersehbar immer den selben Verlauf nehmen.
[/quote]

@Mirco: Ich habe ebenfalls genügend Anderes zu tun.  Allerdings nehme ich mir "als Senior" (mit Jahrzehnten Erfahrung in der Jugend- & Sozialarbeit) das Recht, Menschen mit denen ich ein Medium / eine Plattform teile, darum zu bitten sich etwas würdiger zu verhalten. 

No offence ment, no harm done.
Antworten