![Page 1: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/1.jpg)
…speaker‘s ego still ramping up…
Herzlich Willkommen!
Waiting for listener connection …Spannend, nich‘ ? …..…flipping default template layoutGleich geht‘s los !
![Page 2: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/2.jpg)
Auf dem Weg zu Unwartbarkeit
Benjamin SchmidSoftware Architect
Oliver PehnkeSoftware Engineer
und
Die besten Strategien für den sicheren Erfolg!
![Page 3: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/3.jpg)
Das große Stück
Anteil Wartungskosten in Softwareprojekten
• Projektlaufzeit überdauert oft Projekt-Mitarbeiter
• Wartbarkeit entscheidend für langfristigen Projekterfolg
Wart ung & VerbesserungEnt w icklung
~67% bis >90% der Gesamtkosten
Quellen:Zelkowitz et al. (1970)
”Principles of Software Engineering and Design”Moad, J. (1990)
“Maintaining the competitive edge”
![Page 4: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/4.jpg)
Die Spielregeln für Projekte
1. Das Spiel kann anhand der Prozess-Anleitung nicht gewonnen werden – Improvisation erforderlich
2. Die fixen Termine und Budgetssind zu Beginn der Spielanleitung zu entnehmen
3. Nicht die Fachlichkeit, sondern der Spielleiter entscheidet
4. Wenn‘s kein Spass macht, machs‘d was falsch!
![Page 5: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/5.jpg)
Strategie #1:Visionen einbringen
Analyse- und Entscheidung
![Page 6: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/6.jpg)
Analyse: Fundament der Wartbarkeit
Die Herausforderung:
• vollständig und präzise
• sind nicht einfach(auch graphisch)
Die Probleme:
• Kommunikation– Kunde, Analyst, Entwickler
haben eigene Vorstellungen
• Konkretisierungen nötig
Gute Spezifikationen
Analyseergebnis ist die Basis von Allem
Klarheit & Eindeutigkeit reduzieren die Risiken
![Page 7: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/7.jpg)
Graphische Spezfikationen
Graphische Spezifizikationen mal klar & eindeutig
![Page 8: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/8.jpg)
…und viel muß es sein
![Page 9: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/9.jpg)
Die Wahl der richtigen WaffenStrategie #2:
Technologien und Frameworks
![Page 10: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/10.jpg)
Tech.Lösungen für nicht-technische Probleme
Einbinden von Hoffnungen
SOA„Wieder verwendbarer Baustein“
JUnit„Applikation ist getestet“
Groovy„Wir sind agil & flexibel“
MochiKit„Es ist Web 2.0 und komfortabel“
CompanyFramework.jar„ManfestierterUnternehmensstyle & -qualität“
![Page 11: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/11.jpg)
XML ready!
![Page 12: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/12.jpg)
Gute Wahl:
• effizienter
• fehlerfreier
• wartbarer
Frameworks: Den Rahmen finden
Strategien für den steinigen Weg
Ungünstige Wahl:
• Einschränkungen
• Komplexität
• Technik-Selbstzweck
– StringUtils neu erfinden– Blind „den Standard“– Wahllos Hinzu
Agilitäts-Verlust > Effizienz-Gewinn ?
![Page 13: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/13.jpg)
Die RekrutierungStrategie #3:
Team und Zusammenarbeit
![Page 14: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/14.jpg)
Gegeneinander
WOMM Certification…in 4 easy steps
1. Compile(CVS/SVN update purely optional!)
2. Launch!
3. Test you code path(Unless code change is less than 5 linesor you are a real professional)
4. Check-in!
Welcome as WOMM solutionist!
![Page 15: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/15.jpg)
Die hohe Kunst der Verschleierung
Namen und Code-Formatierung
Strategie #4:
![Page 16: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/16.jpg)
Marry‘s Metamorphose
![Page 17: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/17.jpg)
Falsche Fährten legen
![Page 18: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/18.jpg)
Nun aber zur Preisfrage
Wenn a und b false sind, dann ist x:
a) 42! c) yb) z d) xd) x
![Page 19: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/19.jpg)
Name your babies
Compiler übersetzen – Entwickler lesen!
• Lesbare Methoden, Klassen und Attributnamen– die tun was sie sagen
– konstante Begrifflichkeiten
– griffige Namen
• Namen und Bedeutung synchron halten– Namen sind Orientierung im Code und Design
• Java Coding Conventions
![Page 20: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/20.jpg)
Marry‘s Metamorphose
![Page 21: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/21.jpg)
The swiss-army knife of Java: Vererbung Strategie #5:
OO-Konzepte
![Page 22: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/22.jpg)
Professionelle Polymorphie in Java
Was bewirkt setVisible() eigentlich?
![Page 23: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/23.jpg)
Kräftig umrühren
Extensive Nutzung von extends bewirkt
– Hohe Komplexität durch verteilte Logik innerhalb der Hierarchie
– Starke, nicht-lösbare Abhängigkeiten
– Vermischung von Zuständigkeiten
– Versteckte Verhaltens- & Semantikänderungen
![Page 24: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/24.jpg)
Niemals Verantwortung abgeben
Vererbung: Delegation bzw. Event/Listener:
A hat/nutzt/verwendet BEntkoppelt, einzeln wieder verwendbar
A ist ein spezielles BEnge, integrative Bindung
Verändern bzw. Hinzufügen von Verhalten in der OO
![Page 25: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/25.jpg)
Gordische SeilkünsteStrategie #6:
Module und Komponenten
![Page 26: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/26.jpg)
Rolle
Intelligent Design…
AdministratorRolle Benutzer
![Page 27: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/27.jpg)
Rolle
Intelligent Design…
Textfield
AdministratorRolle Benutzer
Session
Manager
![Page 28: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/28.jpg)
…und Grenzen anerkennen
Modul
Modul
ModulModul
Modul
RolleTextfield
AdministratorRolle Benutzer
Session
Manager
![Page 29: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/29.jpg)
“A good modular, componentized design means minimizing the knowledge and dependency one part of the system has to have about another.”
Unberührte Natur
Was ist eine gute Komponentaufteilung?
Wie sehen passenden Schnittstellen aus?
Modul
Modul
Modul
![Page 30: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/30.jpg)
Der Weg aus der Abhängigkeit
Wegweiser für gute Modul-Einteilungen / Dekomposition
• Fachliche Ordnung(„Fax-Service“, „Kontoverwaltung“)
• Technische Schichten (GUI-, Business-Layer)
• Wenige, unidirektionale Abhängigkeiten
• Klares Gedankenmodell bzgl. Frage:Was gehört rein, was nicht?
• Erfahrung
![Page 31: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/31.jpg)
Gordische Seilkünste II – Das SchwertStrategie #6½:
Schnittstellen
![Page 32: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/32.jpg)
Nach AOP: VOP
![Page 33: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/33.jpg)
Trennungsschmerzen
Schnittstellen einfach halten!
• Komplexität gehört in die Implementierung
• “If you’re in doubt – leave it out !”• Bei Klassen: private, etc. nutzen
• Neue Rollen erkennen und via Refactoring frühzeitig abbilden
Schnittstellen sind Rollen mit austauschbarer Besetzung!
Veröffentliche Schnittstellen sind Vertragsbestandteileiner Klasse und nachträglich schwer zu ändern
![Page 34: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/34.jpg)
Strategie #7:
Fehlerbehandlung
Mute the fire-alarm
![Page 35: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/35.jpg)
Nur nicht aufgeben
Nicht-deterministischer Rechenapparat
Lautlose Fehlerkorrektur
![Page 36: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/36.jpg)
Error-Handling: War was?
• Fehler immer individuell, vollständig und korrekt behandeln oder …
• … einpacken und weitergeben– In geeignete, deklarierte Exceptions
– oder komfortable RuntimeException
Dass bedeutet
– Keine Details/Fehler verschlucken
– auch wenn throws nervt (lieber: RuntimeException)
– Fehlerhandling Alternativen, z.B. try {…} finally {…}
![Page 37: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/37.jpg)
Forensische Medizin
Diagnostikmöglichkeiten einbauen
• Logs sind der Schlüssel zur Laufzeitdynamik
• Nicht nur Details - auch Eckpunkte dokumentieren„Versuche Fax ID:4711 an Empfänger Y zu senden“
• Kein Sonderzeichen-Krieg; Log-Levels/Kategorien
![Page 38: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/38.jpg)
Originell programmierenStrategie #8:
Java Basics
![Page 39: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/39.jpg)
Bloat your code
Indirektion: Schlüssel zur OO
Masse gewinnen
![Page 40: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/40.jpg)
Initialisierung mal anders
…und sei kreativ
„richtig“ Null
![Page 41: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/41.jpg)
Instanzen zählen…
![Page 42: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/42.jpg)
I‘m a 3l33t h@x0r
static Variablen/Mutables– Pitfall! public static HashSet aktuelleZahlen= Session.getSprache().berechne();
– Good style: private final static String FOO = „buh“;
(Immutable und Konstante)
synchronized
– In der der Regel: Vermeiden!Besser: java.util.concurrent verwenden
– Wenn doch, erst mal Gegenprobe: volatile bekannt?
![Page 43: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/43.jpg)
Qualität ‚fühlen‘ lernen – Testen vermeidenStrategie #9:
Testen und Messen
![Page 44: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/44.jpg)
Testen? Wir sind WOMM-zertifiziert!
“I don't need to test my programs. I use error-correcting RAM (ECC)”
![Page 45: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/45.jpg)
Entwickler und Tests
Gute Tests zu schreiben ist anspruchsvoll• Nicht nur Pfade ablaufen, Ergebnisse prüfen
• Nebenpfade und Randbereiche bedenken
• Automatisierbar und Regressionsfähig halten
• Unbedarft gegen den Vertrag der API testen
Fehlern vorbeugen• Konstruktive Mittel (‚Fehler durch Design verhindern‘)
• Code Robustheit (Fail gracefully)
• Diagnostik (‚schnelle Fehlerlokalisierung‘)
![Page 46: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/46.jpg)
Strategie #10:Die richtige Autobiographie
Dokumentation
![Page 47: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/47.jpg)
Was dokumentieren
• Code (API zu 100%)
• Design (nach Entwurf)
• Commits (Nachvollziehbarkeit)
Wie dokumentieren• Nicht was, sondern die
Hintergründe (Warum, Wie)
• Sagen was der Code nicht sagt
• JavaDoc ausnutzen– Zusammenhänge mit @link, @see
– Parameter (Nullable, Defaults) und Rückgabewerte (Typ)
…ist selbsterklärend – denk ich
![Page 48: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/48.jpg)
Oliver PehnkeSoftware Engineer
Benjamin SchmidSoftware Architect
… eine Frage hätte ich da aber jetzt noch …
![Page 49: Der 10-Punkte-Plan für den sicheren Weg zum nicht ...alt.java-forum-stuttgart.de/jfs/2008/folien/A1.pdf · Auf dem Weg zu Unwartbarkeit ... Die besten Strategien für den sicheren](https://reader034.vdokument.com/reader034/viewer/2022042309/5ed6f3a2ce42c87c95414da9/html5/thumbnails/49.jpg)
Besuchen Sie uns!… Zertifizierung bei uns am Stand!
Vielen Dank für Ihre Aufmerksamkeit!
http://www.exxcellent.de
Quellen und Links zum ThemaThe Daily WTF http://worsethanfailure.com/Tips for maintainable Java code http://www.squarebox.co.uk/download/javatips.htmlIt Works on My Machine http://jcooney.net/archive/2007/02/01/42999.aspx Unmaintainable code http://mindprod.com/jgloss/jgloss.html