Code wird viel öfter gelesen als geschrieben. Deshalb ist es wichtig, dass die Implementierungen leicht verständlich sind. Ansonsten kommt es zu immer längeren Entwicklungszeiten und vielen Fehlern. Das Einhalten wichtiger Design-Prinzipien sorgt für die Wartbarkeit der Software. Refactoring hilft bei der Wartung oder Erweiterung von weniger sauberem Code.
In meinem Vortrag werde ich kurz einige Clean-Code-Prinzipien vorstellen und ein paar wichtige Refactoring-Methoden aufzeigen. Den größten Teil wird jedoch ein Live-Refactoring einnehmen, in dem ein bestehendes Stück Java-Code nach und nach verbessert wird. Unit-Tests dienen dabei als unabdingbare Hilfe, um jederzeit die korrekte Funktionalität überprüfen zu können. Der nächste Entwickler, der diesen Code lesen muss, wird uns dankbar sein.
10. • Berechnet 1000 Primzahlen und gibt diese formatiert aus
• 1983 generiert mit dem WEB Tool von Donald E. Knuth
„I chose the name WEB partly because it was one of the few three-letter
words of English that hadn’t already been applied to computers.”
http://www.literateprogramming.com/knuthweb.pdf
Quelle: Robert C. Martin – Clean Code
Print Primes
11. @* Printing primes: An example of WEB.
The following program is essentially the same as Edsger Dijkstra's @^Dijkstra,
Edsger@> ''first example of step-wise program composition,'' found on pages
26—39 of his {sl Notes on Structured Programming},$^Dijk$ but it has been
translated into the WEB language. @.WEB@>
[Double brackets will be used in what follows to enclose comments relating to
WEB
...
an informal top-level description.]
@p @<Program to print the first thousand prime numbers@>
PRIMES.WEB
12. @<Program to print the first thousand prime numbers@>=
program print_primes(output);
const @!m=1000;
@<Other constants of the program@>@;
var @<Variables of the program@>@;
begin @<Print the first |m| prime numbers@>;
end.
PRIMES.WEB
16. Als Mathe-Lehrer möchte ich Primzahlen tabellarisch in
verschiedenen Ansichten erstellen, um sie den Schülern im
Unterricht als Handout verteilen zu können.
Verifiziere, dass
• die Anzahl von Spalten und Zeilen einstellbar ist
• die Seitenüberschrift einstellbar ist
• die Parameter in main() als Konstanten angegeben werden
können (Argumentübergabe an die main-Methode ist nicht
Bestandteil dieser Übung und soll weggelassen werden)
• der vorhandene Primzahlen-Algorithmus weiter verwendet wird
• die fixe Anzahl von 1000 Primzahlen generiert wird
Neue Anforderung
18. • Keinen Clean Code ohne Refactoring
• IDE-Unterstützung für Java sehr gut, aber nicht perfekt
• Kompliziertere Refactorings in Einzelschritte zerlegen
• Training notwendig (Coding Katas)
• Unit Tests sind ein Muss und geben notwendige Sicherheit
Fazit