Book description
- Basiert auf jahrelanger Tätigkeit als Softwareentwickler- Vermeiden von Fallstricken und Vermittlung von Best-Practices bei der Programmierung- Fundierter Überblick über Profithemen, die man sonst nicht in Java-Büchern findet.
Table of contents
- Cover
- Titel
- Impressum
- Inhaltsverzeichnis
- Vorwort
- 1 Einleitung zum Gesamtbuch
-
Teil I Fallstricke und Lösungen im Praxisalltag
-
2 Bad Smells
- Bad Smells am Beispiel
-
2.1 Programmdesign
- 2.1.1 Bad Smell: Verwenden von Magic Numbers
- 2.1.2 Bad Smell: Konstanten in Interfaces definieren
- 2.1.3 Bad Smell: System.exit() mitten im Programm
- 2.1.4 Bad Smell: Zusammengehörende Konstanten nicht als Typ definiert
- 2.1.5 Bad Smell: Programmcode im Logging-Code
- 2.1.6 Bad Smell: Unvollständige Betrachtung aller Alternativen
- 2.1.7 Bad Smell: Unvollständige Änderungen nach Copy-Paste
- 2.1.8 Bad Smell: Casts auf unbekannte Subtypen
- 2.1.9 Bad Smell: Pre-/Post-Increment in komplexeren Statements
- 2.1.10 Bad Smell: Keine Klammern um Blöcke
- 2.1.11 Bad Smell: Variablendeklaration nicht im kleinstmöglichen Sichtbarkeitsbereich
- 2.1.12 Bad Smell: Mehrere aufeinanderfolgende Parameter gleichen Typs
- 2.1.13 Bad Smell: Grundloser Einsatz von Reflection
-
2.2 Klassendesign
- 2.2.1 Bad Smell: Unnötigerweise veränderliche Attribute
- 2.2.2 Bad Smell: Aufruf abstrakter Methoden im Konstruktor
- 2.2.3 Bad Smell: Herausgabe von this im Konstruktor
- 2.2.4 Bad Smell: Referenzierung von Subklassen in Basisklassen
- 2.2.5 Bad Smell: Mix abstrakter und konkreter Basisklassen
- 2.2.6 Bad Smell: Öffentlicher Defaultkonstruktor lediglich zum Zugriff auf Hilfsmethoden
-
2.3 Fehlerbehandlung und Exception Handling
- 2.3.1 Bad Smell: Unbehandelte Exception
- 2.3.2 Bad Smell: Unpassender Exception-Typ
- 2.3.3 Bad Smell: Exceptions zur Steuerung des Kontrollflusses
- 2.3.4 Bad Smell: Fangen der allgemeinsten Exception
- 2.3.5 Bad Smell: Rückgabe von null statt Exception im Fehlerfall
- 2.3.6 Bad Smell: Unbedachte Rückgabe von null
- 2.3.7 Bad Smell: Sonderbehandlung von Randfällen
- 2.3.8 Bad Smell: Keine Gültigkeitsprüfung von Eingabeparametern
- 2.3.9 Bad Smell: Fehlerhafte Fehlerbehandlung
- 2.3.10 Bad Smell: I/O ohne finally bzw. finalize()
- 2.3.11 Bad Smell: Resource Leaks durch Exceptions im Konstruktor
-
2.4 Häufige Fallstricke
- Fallstrick: Nutzung statischer Attribute statt Membervariablen
- Fallstrick: Änderung statischer Attribute im Konstruktor/in Methoden
- Fallstrick: Missachtung der Initialisierungsreihenfolge statischer Attribute
- Fallstrick: Utility-Klasse mit öffentlichem Konstruktor
- Fallstrick: Chaotische Konstruktor-/Methoden-Aufruffolgen
- Fallstrick: Einsatz von Vererbung und statischen Methoden
- Fallstrick: Missverständliches API durch Überladen
- Fallstrick: Mehrfachverkettung der ».«-Notation
- Fallstrick: Unnötige Komplexität
- Fallstrick: Objektvergleich durch Einsatz von toString() und equals()
- Fallstrick: Rückgabe von null in toString()-Methoden
- Fallstrick: Zugriff ohne Bereichsprüfung
- Fallstrick: Intensive Nutzung von Sprungmarken, break und continue
- Fallstrick: default mitten in den case-Anweisungen versteckt
- Fallstrick: Berechnungen in case-Anweisungen
- Fallstrick: Einsatz komplizierter boolescher Bedingungen
- Fallstrick: Einsatz doppelter Verneinung
- Fallstrick: Kommentierte Klammern
- 2.5 Weiterführende Literatur
-
3 Refactorings
- Refactorings am Beispiel
- Schritt 1: Erstellen von Testfällen
- Schritt 2: Vereinfachungen durch Zusammenfassen der Bedingungen
- Schritt 3: Einsatz der Java-Bibliotheken zum Parsen von Zahlen
- Schritt 4: Behandlung ungültiger null-Eingabewerte
- 3.1 Das Standardvorgehen
-
3.2 Der Refactoring-Katalog
- 3.2.1 Reduziere die Sichtbarkeit von Attributen
- 3.2.2 Minimiere veränderliche Attribute
- 3.2.3 Reduziere die Sichtbarkeit von Methoden
- 3.2.4 Ersetze Mutator- durch Business-Methode
- 3.2.5 Minimiere Zustandsänderungen (Refactoring-Kombination)
- 3.2.6 Führe ein Interface ein
- 3.2.7 Aufspalten eines Interface
- 3.2.8 Einführen eines Read-only-Interface
- 3.2.9 Einführen eines Read-Write-Interface
- 3.2.10 Einführen von Convenience-Methoden
- 3.2.11 Einführen einer Zustandsprüfung
- 3.2.12 Überprüfung von Eingabeparametern
- 3.2.13 Trenne Informationsbeschaffung und -verarbeitung
- 3.2.14 Konstantensammlung in enum umwandeln
- 3.2.15 Entferne Exceptions zur Steuerung des Kontrollflusses
- 3.2.16 Umwandlung in Utility-Klasse mit statischen Hilfsmethoden
- 3.3 Weiterführende Literatur
-
4 Entwurfsmuster
- Design mit Entwurfsmustern
- Beispielapplikation: Image-Editor
- 4.1 Erzeugungsmuster
- 4.2 Strukturmuster
- 4.3 Verhaltensmuster
- 4.4 Weiterführende Literatur
-
2 Bad Smells
- Teil II Anhang
- Fußnoten
Product information
- Title: Der Weg zum Java-Profi – Teil III
- Author(s):
- Release date: January 2013
- Publisher(s): dpunkt
- ISBN: 97833864912443
You might also like
book
Praxiswissen Softwaretest – Testmanagement, 3rd Edition
spiegelt das Modul "Testmanagement" des ISTQB-Certified-Tester-Lehrplans Full Advanced Level wider (ISTQB = International Software Testing Qualifications …
book
Basiswissen Testautomatisierung
Testautomatisierung ist ein mächtiges Werkzeug, um Tests wiederholbar zu machen und effizienter zu gestalten. Dieses Buch …
book
Software by Numbers: Low-Risk, High-Return Development
Software by Numbers is a significant new contribution to value-based, financially responsible software engineering...—Barry Boehm, Ph.D., …
book
Brave NUI World
Brave NUI World is the first practical guide for designing touch- and gesture-based user interfaces. Written …