Gruppe: http://groups.google.com/group/clean-code-developer/topics
- Variablen innerhalb oder ausserhalb einer Schleife? [3 Aktualisierungen]
Jan Schumacher <jan.schu...@gmail.com> Dec 11 06:43AM -0800
Hallo!
Wollte mich mal kurz vorstellen: Ich bin Jan Schumacher, arbeite für ein
Unternehmen in dem wir seit kurzem die Regeln des CCD anwenden und
damit experimentieren. Ich programmiere seit ca. 2 Jahren mit Groovy und
Grails, davor, so gut wie ausschließlig, mit Java.
Es gab heute während einer Code Review eine Diskussion mit einem
Mitentwickler bei
der es darum ging ob es schönerer oder schlechterer Code ist Variablen
mit Objekten innerhalb einer Schleife oder ausserhalb einer Schleife zu
deklarieren.
In unserem Beispiel werden die Objekte allerdings nur für einen
Schleifendurchgang
und beim nächsten wieder überschrieben.
String test1
String test2
(0..20).each{
test1 = "Hallo Welt " + it
test1 = "Hallo Welt " + (it * 2)
}
Die Argumente waren, wie vorher zu erwarten, die Performance sei
dadurch besser, der Speicher sei nicht unnötig in Verwendung und es sei
besser zu
lesen. Ich habe gegen die Punkte Leserligkeit und Performance widersprochen
und bin
nach kurzem suchen auf "Google" auf folgendes dazu gestoßen:
http://weblogs.java.net/blog/ddevore/archive/2006/08/declare_variabl_1.html
Jetzt ist für mich ganz klar die Frage: Was sagt Clean Code dazu? Gibt es
dafür
überhaupt Regeln und wenn wie sind sie am besten anzuwenden?
Mit freundlichen Grüßen
Jan Schumacher
Stefan Lieser <ste...@lieser-online.de> Dec 11 03:59PM +0100
Hallo Jan,
für mich persönlich ist der Code lesbarer, wenn die Deklaration in der Schleife erfolgt. Die zusätzlichen Zeilen vor der Schliefe empfinde ich als unnötiges Rauschen.
Performance ist für mich absolut kein Argument. Bis es eines ist :-) Das heißt dann aber, dass mittels Profiler o.ä. nachgewiesen ist, dass eine Verlagerung der Deklaration (aus Kundensicht) einen gewichtigen Vorteil hat.
Clean Code Developer Bausteine zu dem Thema:
- Vorsicht vor Optimierung
- Don't Repeat Yourself
- Sourcecode Konventionen
Herzliche Grüße
Stefan Lieser
--
"Mario Noack" <no...@gmx.de> Dec 11 04:01PM +0100
Am 11.12.2012, 15:43 Uhr, schrieb Jan Schumacher
> besser zu
> lesen. Ich habe gegen die Punkte Leserligkeit und Performance
> widersprochen
Hallo Jan,
hier geht es um wenige Taktzyklen haben oder nicht haben. Meine
Interpretation von CCD ist, dass Geschwindigkeit kein Argument gegen
sauberen Code sein darf. Schließlich verführt die äußere Deklaration zur
späteren nicht vorgesehenen Nutzung der Variablen.
Unter C# gibt der ReSharper in so einem Fall darum den berechtigten
Hinweis, dass die Variable weiter innen deklariert werden kann.
Grüße,
Mario Noack
Sie erhalten diese Nachricht, weil Sie in Google Groups die Gruppe clean-code-developer abonniert haben.
--
Sie können Posts per E-Mail erstellen.
Um Ihr Abonnement für diese Gruppe zu beenden, senden Sie eine leere Nachricht.
Für weitere Optionen besuchen Sie bitte diese Gruppe.
Sie haben diese Nachricht erhalten, weil Sie der Google Groups-Gruppe Clean Code Developer beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an clean-code...@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an clean-code-devel...@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/clean-code-developer?hl=de, um weitere Optionen zu erhalten.