Mailinglisten-Archive |
Christian Knorr wrote: > Am Mittwoch 09 Juli 2008 20:03:55 schrieb Christian Knorr: >> [CODE] >> if ( isset($_POST['language'])) { >> $language = $_POST['language']; >> } else { >> $language = false; >> } >> [/CODE] > (natürlich ohne Semikolon im if(isset()) ;-) ) > > [CODE] > // (Es folgt ein Einzeiler) > if ( isset($_POST['language'])) $language = $_POST['language']; else \ > $language = false; > [/CODE] > > Letzteres ist wohl Ressourcen schonender und "besser" bei 15 Variablen und > mehr. Aber auch unübersichtlicher. Ersteres lässt sich hingegen fast auf > einen Blick "lesen". > Aber wie macht’s der Profi? Wie gesagt ist es mir nicht egal ob es > funktioniert, egal wie. Wenn schon, dann richtig. Wieso meinst du, dass Letzteres wohl Ressourcen schonender ist? Wegen den fehlenden geschweiften Klammern? Also gut, es ist sicherlich schonender, weil der Quelltext einfach kürzer ist und der parser damit weniger Bytes durchsaugen muss, aber wir sprechen hier von nicht messbaren Unterschieden. Also wenn du da ein 0,0001%igen Performancegwinn rausholst, dann .... dann hast du was gewonne :-D. Und der Profi... Da kann man sich stundenlang drüber streiten. Ich kann dir nur sagen, wie ich es machen würde und wieso ich es so machen würde und dann können dir ganz viele andere Leute noch sagen, wie sie es machen und wieso... Im Endeffekt ist das ganze nicht so wahnsinnig wichtig, weil es code-formater gibt, die du konfiguarieren kannst und wenn irgendwer mit code daher kommt, den du fürchterlich findest, dann lässt du mal einen formater mit deinen Einstellungen drüberrasseln und schon ist alles wie gewohnt. Ich würde es jedenfalls so schreiben: if (bedingung) anweisung; else andereAnweisung Denn in dem Fall kann ich das Konstrukt direkt voll überschauen. Ich sehe direkt, wenn die Bedingung wahr ist, dann die erste Zeile, sonst die zweite. Und wenn es mehrere Anweisungen sind, dann so: if (bedingung) { anweisung1; anweisung2; } else { anweisung1; anweisung2; } Das ganze wäre natürlich Papierverschwendung, wenn man dies ausdrucken würde, aber das will ich ja nicht ;-). Das gute daran ist: Die Geschweiften Klammen fallen sofort ins Auge, die Kontrollstruktur hebt sich von den Befehlen ab und ich sehe sofort, von wo bis wo der Block geht. Bei der Formatierung: if (bedingung) { bla; blubb; } else { bla; blubb; } fällt mir das schon viel schwerer. Denn die sich öffnenden schweifenden Klammern sehe ich nicht sofort. Da muss ich dann genauer hinsehen. Auch das else würde mir eventuell entgehen, weil es gleichweit wie die Anweisungen eingerückt ist und die geschweiften Klammern vor und hinter anderen Ausdrücken nicht so ins Auge fallen (das könnte man natürlich verbessern in dem man die Anweisungen noch weiter einrückt, aber so gut, wie meine Lösung finde ich das dann immernoch nicht). Das ganze kann man noch mit ein paar Gedanken über die Funktionsweise des Auges ergänzen: Das Auge sieht nur in einem sehr begrenzten Bereich wirklich 100%ig scharf. Aussenherum ist es alles unscharf. Das nehmen wir nicht wahr, aber irgendwelche Forscher haben mit solchen Sachen mal viel Zeit verbracht :-). Ich finde, dass sich meine Struktur auch unscharf sehr gut lesen lässt. Ich kann mich ein paar Meter hinter meinen Bildschirm stellen. Soweit, dass ich die Buchstaben gerade nichtmehr lesen kann. Und ich kann meine if-else Struktur immernoch erkennen und genau sehen, von wo bis wo der Block geht. Bei der anderen Struktur kann ich das else nichtmehr lesen und es sieht so aus, als würde alles zum if gehöhren und es würde garkein else geben. Auch ganz interessant ist, dass dein Auge blind ist, während du es bewegst. Ein paar Forscher haben das herausgefunden indem sie Leute vor einen Bildschirm mit Text gesetzt haben, deren Pupillenbewegungen gemessen haben und immer, wenn sie die Pupillen bewegt haben, haben die einzelne Wörter auf dem Bildschirm , wo der Probant gerade nicht am lesen ist ausgetauscht. Und haben festgestellt, dass diese Änderungen nicht wahrgenommen werden. Auch dies merken wir nicht, weil das Gehirn uns solange ein Bild vorhält, wie wir die Pupillen bewegen. Dieses Bild ist allerdings natürlich wieder unscharf. Wenn man dann seine Augen sehr schnell über Quelltext hinweg bewegt (weil man einen Fehler sucht oder gerade dabei ist sich generell ein schnelles Bild davon zu machen, was in dem code so passiert), dann nimmt man eine ganze Menge unscharfe Bilder wahr. Und die Formatierung kann dazu beitragen, dass man mit diesen unscharfen Bildern eine Menge anfangen kann. Ich habe mich in der Vergangenheit in meinen Codestil bestätigt gesehen, da ich oft den code von Freunden gedebuggt habe, die ihren Fehler in deren Formatierung (so in Richtung meines zweiten Beispiels) einfach nicht wahrgenommen haben, ob wohl die häufig simple Dinge waren (zum Beispiel falsch gesetzte geschweifte Klammer) ich diesen Fehler aber nach ein wenig Umformatierung sofort erkennen konnte. So... Jetzt habe ich viel mehr geschrieben, als ich eigentlich wollte. Ist ja fast eine komplette Abhandlung über die Philosophie des Codeformatierens geworden. Aber gut. Du kennst jetzt meine Meinung und du weisst wieso ich diese vertrete und vielleicht trägt ja noch jemand, der den anderen Stil vertritt seine Meinung bei (fänd ich echt gut, denn bisher war das einzige, was ich mal gehört habe "ich finde, dass die { da sonst so verloren aussieht" ;-)). > > Danke schonmal, Chris...... Yannik
php::bar PHP Wiki - Listenarchive