Clean Code oder

OnDemand

Top Contributor
Hallo zusammen,
vermutlich ne saublöde Diskussion aber ich erwisch mich immer wieder, wie ich häßlichen Code produziere, mir aber denke - egal geht doch.

Folgendes super einfaches Beispiel:

So oder besser beide Icons in einer separaten Methode erstellen und zurückgeben lassen? Oder sagt ihr euch auch immer mal "egal" der Aufwand ist es jetzt nicht wert.

Macht Ihr Leerzeilen rein wo sinnvoll oder ohne? Leerzeilen machen es find ich unübersichtlicher.

1620470311392.png

1620470694982.png
 
Zuletzt bearbeitet:
versuch mal den MVC bzw ein anderes Model umzusetzen dann wirds automatisch schicker ; und Styling gehört in die CSS datei soweit wie möglich
 
Also generell: So wie ich den Code am leserlichsten finde, so schreibe ich diesen. Das betrifft auch Leerzeilen.

Aber wenn Du eine Methode mit Leerzeilen in mehrere Blöcke teilst, dann scheint es so zu sein, dass da verschiedene Dinge gemacht werden, die sich unterscheiden. Da wäre dann die Frage, ob sich da nicht einfach eine Aufteilung in mehrere Methoden lohnen könnte.
 
So oder besser beide Icons in einer separaten Methode erstellen und zurückgeben lassen?

In den meisten Fällen: eine extra Methode; und in diesem Fall ganz besonders: in der Variante ohne Methode gibts einen Unterschied zwischen beiden Buttons, vermutlich bedingt durch Copy-Paste 😉

Macht Ihr Leerzeilen rein wo sinnvoll oder ohne? Leerzeilen machen es find ich unübersichtlicher.
Ich nutze ziemlich exzessiv Leerzeichen, deinen Code fänd ich in beiden deinen Codes "zu dicht". In der buttonWithIcon hätte ich eher noch so 2, 3 Leerzeichen untergebracht – und in Folge davon wird's dann oft auf mehrere Methoden aufgeteilt. Die meisten Leerzeilen gibts daher auch auf Klassen-Ebene, da ist generell zwischen allen Elementen ein Leerzeichen und zwischen "Gruppen" zwei Leerzeichen.




versuch mal den MVC bzw ein anderes Model umzusetzen dann wirds automatisch schicker ; und Styling gehört in die CSS datei soweit wie möglich
Hast du grad MVC kennen gelernt, dass du das in jedem Post unterbringen musst, egal ob's passt? 😉

In dem Code sieht man nur den "V"-Part aus MVC, da gibts nichts, was man noch ins Model umsetzen könnte, und CSS bietet sich auch nur in den wenigsten Fällen an.
 
Ich würde auch den Code in eine Methode auslagern, weil mich springt da direkt doppelter Code (gleiche Style, gleiche Größen etc.). Der Aufwand das in eine Methode zu extrahieren ist minimal, dafür hab ich es einheitlich und lesbar. Insbesondere, wenn man mal in Zukunft sagt "Oh ich brauche noch einen weiteren Style oder oh, die Größe muss doch 24x24px sein" - dann muss man genau eine Stelle ändern und nicht zwei oder noch mehr.

Bzgl. Leerzeieln. Ich bin ein Freund davon, ich finde sie machen den Code übersichtlicher, weil sie in zusammenhängende Blöcke gruppieren. Wo ich sie in der Regel immer verwende:

Unit-Tests.
Die sehe bei mir meist so aus:
Java:
@Test
public void testMethod_Beschreibung() {
baueDatenZusammen;

fuehreZuTestendenCodeAus();

diverseAsserts();
}
Das heißt, ich hab die Teilung: Testdatenaufbau - Leerzeile - zu testender Code - Leerzeile - Asserts.

Analog finde ich es gut, wenn man längere Stream-Verkettungen hat, die mit einer Leerzeile vom Rest abzusetzen, damit man sieht, wo die endet. Für mich sind Leerzeilen jeweils Trenner zwischen Schritten eines Algorithmus.
 

Zurück
Oben