Jump to content
Unity Insider Forum
Hämmer

Schöner oder kurzer Code?

Recommended Posts

Hallo,

Ich hab da mal eine grundsätzliche Frage. Was ist besser? schöner Code oder Kurzer Code? also z.B.

if(X==Y)
{
	print("wahr");
}
else
{
	print("falsch");
}

oder lieber:

X == Y ? print("wahr") : print("falsch");

 

Share this post


Link to post
Share on other sites

Ich finde den schönen Code besser. Dort kann ich besser verfolgen, was der Code machen soll. Den kurzen Code kann vielleicht nicht jeder hier lesen, um zu helfen. Konkret: ohne den langen Code hätte ich nun den kurzen Code nicht als if / else erkannt (auch wenn ich in einm Tutorial mal gesehen habe, dass man Code so kürzen kann).

Share this post


Link to post
Share on other sites

Das kommt ein wenig auf den Kontext an, beim oberen Beispiel würde ich den langen code bevorzugen.

Ich benutze die kurze Schreibweise des öfteren beim zuweisen von Variablen mit default-Werten.

Share this post


Link to post
Share on other sites

Richtig, es gibt da kein absolutes Maß. Ist von Fall zu Fall unterschiedlich. Gerade, wenn man in diesem Fall bedenkt, dass auch

print(X == Y ? "wahr" : "falsch");

geht.

Share this post


Link to post
Share on other sites

Wenn in den Klammern nur eine Zeile Code nötig ist mache ich es meistens so:

if (X == Y)
  print("wahr")
else
  print("falsch")

Wichtig ist zu wissen das ohne Klammern nur eine Zeile von der if Bedingung abhängt. Wenn man den Code also später erweitert und noch eine Zeile einfügt muss man die Klammern wieder hinzufügen.

Folgendes geht also nicht:

if (X == Y)
  print("wahr")
  print("wirklich wahr")
else
  print("falsch")

 

Share this post


Link to post
Share on other sites

Ich mach das nie so. Ich mag Konsistenz. Möglichst wenige Regeln, möglichst wenige Ausnahmen. Je mehr verschiedene Herangehensweisen es für quasi dieselbe Situaion gibt, desto weniger einfach ist der Code zu lesen. Deswegen halte ich 90% aller C#-Sprachupdates auf für großen Käse...

Share this post


Link to post
Share on other sites

Ich lasse bei if Anweisungen fast nie die Klammern weg, ich finde das tatsächlich oft weniger lesbar.

Einzig bei reinen Einzeiler mach ich das manchmal

methode() 
{
	if (istWahr) return;
}

 

Share this post


Link to post
Share on other sites

Early Outs sind bei mir auch die einzige Ausnahme, bei der if-Abfragen keine geschweiften Klammern kriegen.

Share this post


Link to post
Share on other sites

Ich mag es nicht wenn verhältnismäßig viele Leerräume entstehen und ich viel scrollen muss um den Code zu lesen. 

Etwa in Situationen wo man dann mehrere If Abfragen hintereinander ausführt um jedes mal dabei nur eine Zeile Code auszuführen.

Share this post


Link to post
Share on other sites
vor 6 Minuten schrieb Lightstorm:

Ich mag es nicht wenn verhältnismäßig viele Leerräume entstehen und ich viel scrollen muss um den Code zu lesen. 

Einfach nicht ellenlangen Code schreiben, dann hat man das Problem nicht ;)

Share this post


Link to post
Share on other sites
Am 5.3.2019 um 00:42 schrieb Lightstorm:

 

Folgendes geht also nicht:


if (X == Y)
  print("wahr")
  print("wirklich wahr")
else
  print("falsch")

 

Folgendes geht aber:

if (X == Y) 
{
  print("wahr")
  print("wirklich wahr")
} 
else
  print("falsch")

Zum Thread:
Wenn es tatsächlich nur im print geht, dann würde ich Saschas Methode benutzen. Allerdings beim Debuggen erweitert man sein Code und daher ist die erste Methode mit den geschweiften Klammern am Besten dafür geeignet (sonst muss ich immer umschreiben, daher mache ich eigentlich gleich mit geschweiften Klammern).

Share this post


Link to post
Share on other sites
Am 7.3.2019 um 14:15 schrieb MaZy:

Allerdings beim Debuggen erweitert man sein Code und daher ist die erste Methode mit den geschweiften Klammern am Besten dafür geeignet (sonst muss ich immer umschreiben, daher mache ich eigentlich gleich mit geschweiften Klammern).

Das ist der einzige Grund wieso ich manchmal überlege die Vorgehensweise ohne geschweifte Klammern zu unterlassen. Es ist dann nervig wenn man zum testen die Klammern wieder hinzufügen muss. Es ist schnell gemacht, aber es nervt wirklich :D

Share this post


Link to post
Share on other sites

Also, meine Standardvorgehensweise sind die Klammern. Da ich jetzt eure Meinung gehört hab werd ich daran auch nichts ändern.

Share this post


Link to post
Share on other sites
vor 12 Stunden schrieb Lightstorm:

Es ist dann nervig wenn man zum testen die Klammern wieder hinzufügen muss.

Das ist die Sache mit der Robustheit. Du hast zwei Möglichkeiten, etwas in einer Situation zu tun. Die eine Möglichkeit funktioniert immer und die andere erfordert, dass du bei bestimmten Folgesituationen (Debugging, Änderung im Code) erstmal deinen bestehenden Code abändern musst.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×