Lesenswerte Bücher zur Softwareentwicklung

+ Homepage Torsten Horn
+ TechDocs
+


Inhalt

  1. Entwicklungsprozess
    1. Vigenschow, Schneider: Soft Skills
    2. Pichler: Scrum
    3. Gloger: Scrum
    4. Ludewig, Lichter: Software Engineering
    5. Mayr: Projekt Engineering
  2. Softwarearchitektur
    1. Starke: Effektive Software-Architekturen
    2. Wunderlich: Software-Architekturen in Java
    3. Bien: Enterprise Architekturen
    4. Siedersleben: Moderne Softwarearchitektur
  3. SOA
    1. Josuttis: SOA in der Praxis
    2. Krafzig, Banke, Slama: Enterprise SOA
    3. Liebhart: SOA goes real
    4. Starke, Tilkov: SOA-Expertenwissen
    5. Froeschle, Reinheimer: Serviceorientierte Architekturen
    6. Melzer: Service-orientierte Architekturen mit Web Services
  4. Frameworks, Tools
    1. Burke: RESTful Java with JAX-RS
    2. Wütherich, Hartmann, Kolb, Lübken: Die OSGI Service Platform
    3. Wolff: Spring
    4. Beeger, Haase, Roock, Sanitz: Hibernate
    5. Scholz, Niedermeier: Java und XML
    6. Backschat, Edlich: J2EE-Entwicklung mit Open-Source-Tools
    7. Spiller: Maven 2
    8. Bachmann: Maven 2
  5. Java EE
    1. Patrick, Nyberg, Aston: Professional Oracle WebLogic Server
    2. Heffelfinger: Java EE 5 Development using GlassFish Application Server
    3. Rupp: JBoss
    4. Bien: Java EE 5 Architekturen
    5. Bond, Law, Longshaw, Haywood, Roxburgh: Teach Yourself J2EE in 21 Days
    6. Stark: J2EE - Einstieg für Anspruchsvolle
  6. Java SE, Java ME, Grundlagen
    1. Bloch: Effective Java
    2. Breymann, Mosemann: Java ME
    3. Krüger: Handbuch der Java-Programmierung
    4. Hunt, Thomas: Der Pragmatische Programmierer



Entwicklungsprozess
 

Uwe Vigenschow, Björn Schneider:
Soft Skills
für Software-Entwickler




2007
ISBN 3898644332




Ein nicht unbedingt von allen Softwareentwicklern geliebtes Thema ist das "Drumherum" der Softwareentwicklung. Besonders gute Kommunikation ist ein wesentlicher Erfolgsfaktor für gelingende Projekte. Laut Uwe Vigenschow und Björn Schneider scheitern Projekte nur selten aufgrund technischer Probleme, sondern die Ursachen liegen viel öfter im Bereich der Soft Skills.

Vieles im Buch beschriebene kennt man eigentlich und hat es schon öfter erlebt. Trotzdem gerät man immer wieder in Kommunikationssackgassen. Deshalb ist die Lektüre dieses Buches sehr empfehlenswert, um die Vorgänge zu verstehen und die Chancen für bessere Kommunikationsabläufe deutlich zu vergrößern. Das Buch ist gut und flüssig geschrieben, so dass die Lektüre Spass macht.

Einige Stichworte zum Inhalt: Kommunikationsschnittstellen, Projektpolitik, Projektmarketing, Umfeldanalyse, Stakeholder, Kano, Präsentationen, 6-Stufen-Fragetechnik, NLP, Reviews, Feedback, Reframing, Wertschätzung, Gestik, Knigge, 4-Ebenen-Eisberg-Modell, Vier-Ohren-TALK, Vier-Quadranten-Modell, Z-Modell, Transaktionsanalyse, Drama-Dreieck, Typologien, Timebox-Verfahren, Konfliktmanagement, Neun-Stufen-Phasenmodell, Moderation, Mediation.



Roman Pichler:
Scrum
Agiles Projektmanagement erfolgreich einsetzen




2008
ISBN 3898644782




Scrum ist ein agiles Managementframework und Vorgehensmodell zur Entwicklung von Software, eingeführt von Ken Schwaber, Jeff Sutherland und Mike Beedle. Das Buch führt in Scrum ein und kann als Vorbereitung für die CSM- und CSPO-Zertifizierung dienen (Certified ScrumMaster und Certified Scrum Product Owner).

Roman Pichler beschreibt verständlich und überzeugend die Scrum-Philosophie und -Vorgehensweise. Der Leser profitiert von seiner reichhaltigen Scrum-Erfahrung.

Stichworte zum Inhalt: Product Owner, ScrumMaster, Team, Timeboxing, Sprint, Daily Scrum, Produktkonzept, Releaseplan, Product Backlog, Sprint Backlog, Sprint-Planung, Review, Retrospektive, Burndown-Bericht, Entwicklungsgeschwindigkeit, Hindernisliste, SMART-Maßnahmen, Lernprozesse, Moderation, Iterativ/Inkrementell, INVEST-Anforderungen, Akzeptanzkriterien, Risiken, Priorisierung, 3C User Story, Story Cards, Story Points, testgetrieben, kontinuierliche Integration, Refactoring, große verteilte Projekte.

Wer noch nicht sicher ist, ob Scrum für ihn optimal ist, könnte einen Vergleich mit anderen Softwareentwicklungsprozessen vermissen. Und Pragmatiker könnten sich einen genaueren Bezug zum Softwareentwicklungsgeschehen wünschen.



Boris Gloger:
Scrum
Produkte zuverlässig und schnell entwickeln




2008
ISBN 3446414959
demnächst 2. Auflage:
ISBN 3446419136




Auch zu diesem Buch zu Scrum gilt das Gleiche, wie das oben zum Buch von Roman Pichler Gesagte. Beide behandeln ähnliche Themen und setzen ähnliche Schwerpunkte. Die Differenzen sind gering.

Worin unterscheiden sich die beiden Scrum-Bücher? Roman Pichler schreibt eher sachlicher, neutraler und kürzer: Sein Buch ist 184 Seiten lang, während Boris Glogers Buch mit 381 Seiten mehr als den doppelten Umfang hat. Boris Gloger beschreibt ausführlicher und fügt zur Verdeutlichung viele kleine Geschichten hinzu. Man erfährt mehr über die Hintergründe, Motivationen und Visionen und wird mehr auf emotionale Aspekte gelenkt.

Beide Bücher sind sehr lesenswert. Wer es kürzer und nüchterner mag, sollte Pichlers Buch lesen. Wer es ausführlicher und plastischer wünscht, sollte Glogers Buch lesen.



Jochen Ludewig, Horst Lichter:
Software Engineering
Grundlagen, Menschen, Prozesse, Techniken




2007
ISBN 3898642682




Während sich Softwareentwickler gerne als kreative Künstler begreifen, fordern Jochen Ludewig und Horst Lichter "egoless programming" und geplante ingenieurmäßige Softwareentwicklung mit dem Ziel niedriger Gesamtkosten. Das Buch beschreibt sehr fundiert und genau die dafür notwendigen Grundlagen.

Im Fokus stehen: Begriffsbestimmungen, Risiken, Kostenschätzung (Function-Point-Verfahren, COCOMO II), Projektablauf, Vorgehensmodelle, Prozessmodelle, Bewertungen (CMMI, SPICE / ISO 15504), Dokumentation, Qualitätssicherung, Reviews, Metriken (LOC, zyklomatische Komplexität, LCOM, GQM, Sotograph), Lastenheft, Pflichtenheft, Spezifikation (SRS), Entwurf, Architektur, Modularisierung, Patterns, Codierung, DbC, OCL, Test (Black-box, Glass-box, Anweisungsüberdeckung, Zweigüberdeckung, Ein-/Ausgabeüberdeckung, Unit, Modul, Integration, System, Installation, Wiederinbetriebnahme, Last, Stress, Regression, Abnahme, Dokumentation), Konfiguration, Wartung, Reengineering und Refactoring.

Auf UML wird überraschend wenig eingegangen: Die Verwendung wird zwar empfohlen, aber UML wird vom Auftraggeber nicht immer akzeptiert, für Architekturbeschreibungen ist es zu ungenau ("Undefined Modeling Language"), es gibt kaum eine automatische Auswertung von OCL und MDA löst nur Teilprobleme.

Es werden nicht nur theoretische Grundlagen erörtert, sondern an einigen Stellen auch typischerweise erreichte Ergebnisse genannt (z.B. Aufwandsverteilung 40/20/40 vor/für/nach Codierung, 16 LOC pro Tag, 4 Seiten Doku pro Tag, 15 Fehler pro 1000 LOC, systematischer Test findet Hälfte aller Fehler).

Die genauen Definitionen und grundsätzlichen Betrachtungen bilden eine solide Basis. Trotzdem bleiben Fragen offen:
- RUP und V-Modell XT fordern in der klassischen Form die Erstellung von über 40 Dokumenten. Das ist für kleinere Projekte zu viel. Die Erstellung und Pflege welcher Dokumentationen hält der Autor für unbedingt erforderlich?
- Reviews werden als besonders qualitätsverbessernde Maßnahme hervorgehoben. Andererseits wird festgestellt, dass es keine robusten Metriken gibt, die Metriken leicht zu unterlaufen sind und defensive Programmierung oft schlecht beurteilen, sowie dass Metriken völlig ungeeignet zur Mitarbeiterbeurteilung sind.
- Direkte Entscheidungshilfen für konkrete aktuelle Technologien kann ein solches Grundlagenbuch nicht bieten.



Herwig Mayr:
Projekt Engineering
Ingenieurmäßige Softwareentwicklung in Projektgruppen




2005
ISBN 3446400702




Herwig Mayr zeigt Wege zur ingenieurmäßigen prozessorientierten Softwareentwicklung. Das fundierte Buch behandelt: Projektentwicklung, Organisation, Aufbau, Ablauf, Vorgehensmodelle, Prozessmodelle, Dokumentation, Qualitätssicherung, Lastenheft, Pflichtenheft, Risikobehandlung, Analyse, Design, Implementierung, Test u.a.

Anders als traditionelle Konstruktionsprojekte beinhaltet Softwareentwicklung mehr Komplexität, Kreativität und Unvorhergesehenes, weshalb ein genau geplanter (und wiederholbarer) Entwicklungsprozess kaum definierbar ist. Aber auch "empirische Prozesse" sind steuer- und regelbar: mit inhaltsbetonten Meilensteinen, Iterationen und Inspektionen.

Das brookssche Gesetz wird erläutert (bei ausreichend vielen Mitarbeitern keine Projektverkürzung durch weitere Mitarbeiter, optimale Mitarbeiteranzahl = Wurzel aus Personenmonaten). Die oft unterschätzten Wartungskosten werden pro Jahr mit 7 bis 15 % der Entwicklungskosten angesetzt, was nach wenigen Jahren mehr als 50 % der Gesamtkosten bedeuten kann.

Zu einigen Vorgehensmodellen kritisiert Herwig Mayr die zu vielen zu erstellenden Dokumenttypen, beschreibt aber nicht genauer die aus seiner Sicht minimal erforderlichen Dokumente. Die Darstellung von Varianten (z.B. CMMI versus SPICE oder die verschiedenen Aufwandsschätzverfahren) ist manchmal zu knapp, um sich für eine Variante entscheiden zu können.



Softwarearchitektur
 

Gernot Starke:
Effektive Software-Architekturen
Ein praktischer Leitfaden




2009
ISBN 3446420088




Sehr lesenswertes, solides, systematisches und gut strukturiertes Grundlagenbuch zur Softwarearchitektur.

In der sarkastischen Einleitung beschreibt Gernot Starke anschaulich, was er von der sturen Einhaltung von Vorgehensmodellen hält. Stattdessen rät er zu effektivem, agilem und pragmatischem Vorgehen mit vielen Iterationen, aber nicht ohne ausreichende Dokumentation.

Die Themen sind: Grundsätzliches zur Architektur und zu Architekten, Prozess des Architekturentwurfs, Qualitätsmerkmale, Strategien, Software-Architekturdokumentation (SWAD), Sichtweisen (Kontextsicht, Bausteinsicht, Laufzeitsicht, Verteilungs-/Infrastruktursicht), Schnittstellendokumentation, Datenmodell, typische Architekturdokumente (Übersichtspräsentation, Architekturüberblick, Architekturbeschreibung, Architekturtapete, technische Informationen u.a.), Heuristiken, Schichten und Tiers, Pipes & Filter, Separation of Concern, Kopplung/Kohäsion/OGP/Abhängigkeiten, Liskov Substitutionsprinzip, DI, Entwurfsmuster (Adapter, Observer, Decorator, Proxy, Fassade, State), Bewertung von Softwarearchitekturen, Architekturaspekte (Persistenz, CRUD, DAO, DTO, Integration, Verteilung, Kommunikation, Ergonomie, MVC, Sicherheit, Workflow, Internationalisierung), UML, MDA und SOA.

Zwei Beispiele zur Dokumentation von Softwarearchitekturen veranschaulichen gut die vorher erläuterten Prinzipien.

Durch die systematische Herangehensweise wird eine solide fundierte Grundlage gebildet. Viele Verweise ermöglichen die Vertiefung der angesprochenen Themen. Da die Beschreibungen technologieneutral und ohne direkten Bezug zu einer Programmiersprache sind, wirken sie allerdings manchmal etwas abstrakt, und man könnte den praktischen Bezug auf konkrete Frameworks vermissen.

Einige Themen finden ihre Fortsetzung unter www.arc42.de, wo Sie downloadbare Templates finden. Das Buch ist auch hilfreich bei der Vorbereitung zur Zertifizierung zum iSAQB Certified Professional for Software Architecture.



Lars Wunderlich:
Software-Architekturen in Java
Modelle, Techniken, Praxis




2005
ISBN 3826615379




Sehr lesenswertes Buch mit vielen pragmatischen und konkreten Hilfestellungen zu Standard-Java-SE und -Java-EE sowie zu Open-Source-Projekten. Durch die Fokussierung auf Java ist es für Softwarearchitekten, die sich für Java entschieden haben, konkreter, verständlicher und leichter lesbar, als technologieneutrale Bücher.

Die Themen sind zum Beispiel: Softwarearchitekt im Team, Projektmanagement, Vorgehensmodelle, RUP, XP, OO-Konzepte, Java-Best-Practices, AOP, MDA, CBD, EAI, SOA, konfigurierbare Systeme, Architektur-Best-Practices, Layer versus Tier, C/S, Rich Client, Thin Client, MVC, Sessionaffinität, Webanwendungen, verteilte Systeme, Lookup, Servicelocator, Business Delegate, Web Services, JMS, J2EE-Systeme, J2EE-Patterns, POJO-Container, Spring, GRASP, SOC, IoC, DI, Komponentenmodell, Domainmodell, Transformation, Entity Relationship, ClassLoader, Test, Logging, JTA, Cluster und viele weitere.

Diese lange Liste unterschiedlichster Themenbereiche kann nicht im Detail besprochen werden. Ein Softwarearchitekt muss nicht unbedingt die Details, aber er muss die wesentlichen Konzepte dieser Themen kennen, um geeignete Systeme entwerfen zu können. Und er muss die wichtigsten Fallstricke kennen. Lars Wunderlich erfüllt diese Aufgabe überzeugend, ideologiefrei und gut lesbar.

Sowohl für Java-Softwarearchitekten als auch für Java-Softwareentwickler lohnt es sich, dieses Buch komplett von vorn bis hinten zu lesen. Der Einsatz als Nachschlag-Referenz funktioniert nur bedingt: Da viele Themen miteinander verwoben sind, ist eine klare Strukturierung schwer. Zum Beispiel Sessionmanagement und Cluster kommen in verschiedenen Kapiteln immer wieder vor.

Lars Wunderlich hält ein Vorgehensmodell für ein erfolgreiches Projektmanagement für unabdingbar und erläutert auch die wesentlichen Eigenschaften von RUP und XP. Leider lässt er offen, wie er sich eine pragmatische Anwendung eines Vorgehensmodells vorstellt.



Adam Bien:
Enterprise Architekturen
Leitfaden für effiziente Software-Entwicklung




2006
ISBN 393504299X




Anders als der Titel vielleicht vermuten lassen könnte, ist dieses Buch keine systematisch strukturierte Einführung in Architekturkonzepte. Grundlegende Kenntnisse hierzu werden vorausgesetzt. Stattdessen bietet das Buch einen guten Überblick über die Rollen des Softwarearchitekten und -designers.

Gleich zu Beginn entlarvt Adam Bien überzeugend, warum die in vielen Büchern angestellten Vergleiche zwischen Softwarearchitekten und in der Baubranche tätigen Architekten beziehungsweise zwischem dem Softwareentwicklungsprozess und dem Prozess beim Hausbau oder bei Produktentwicklungen im Maschinenbau sinnlos sind und zu falschen Schlussfolgerungen verleiten.

Der Architekt wird als zentrale Integrationsperson zwischen Kunde, Projektmanager, Designer und Entwicklern gesehen. Während er von den Entwicklern oft als störend empfunden wird, so ist er doch wichtig, damit ein schlüssiges und wartbares Gesamtkonzept mit minimierten Gesamtkosten entsteht.

Als wichtigstes Architekturergebnis definiert Adam Bien zwei Dokumenttypen:
MAD (Meta-Architekturdokument): allgemeingültige Konzepte, Problemlösungen, Frameworks, Verteilung, Patterns, Best Practices, Coding Conventions;
PAD (Projektspezifisches Architekturdokument): Vorgaben für das konkrete Projekt, Abweichungen zum MAD, Vision, Stakeholder, Komponenten, Schnittstellen, Deployment, Test, Betrieb, Glossar.

Der Designer verifiziert und konkretisiert die Vorgaben und Entwürfe des Architekten und untersucht mögliche Problemfelder: O/R-M, ER versus OO, Value-Objekte versus transaktionale Objekte, Transaktionen, Isolation, Locking, Session-Daten und Singletons im Cluster, Fehlerbehandlung, Lasttests, Monitoring, IoC/DI, Deployment, Convention over Configuration.

Das Buch geht vorangig auf das Java-EE-Umfeld ein, deckt aber nicht umfassend alle Themenbereiche hierzu ab (z.B. fehlen Sicherheitsaspekte). Einen wichtigen Nutzen zieht der Leser aus den vielen Hinweisen auf immer wieder auftretende Fehlermöglichkeiten. Hilfreich sind auch die verschiedenen Checklisten. Etwas störend ist die manchmal sprachlich ungenaue und das Verständnis erschwerende Formulierung.



Johannes Siedersleben:
Moderne Softwarearchitektur
Umsichtig planen, robust bauen mit Quasar




2004
ISBN 3898642925




Das gut lesbare und empfehlenswerte Buch fokussiert auf Informationssysteme. Die Beispiele sind in Java, aber der Inhalt ist ebenso auf jede andere moderne Programmiersprache anwendbar.

Anders als in anderen Büchern zur Softwarearchitektur werden weniger Standard-Architekturkonzepte, Vorgehensmodelle und die Rolle des Architekten beschrieben, sondern einige besonders wichtige Themen aufgegriffen.

Johannes Siedersleben legt in seinem Buch weniger Wert auf Objektorientierung. Während Verhaltensvererbung (implements Interface) sehr sinnvoll ist, bezeichnet er Implementierungsvererbung (extends Klasse) als fragwürdig. Auch Patterns spielen nur Nebenrollen. Zu UML 2.0 kritisiert er, dass es zwar 27 Pfeiltypen gibt, aber die UML-Komponentendefinition ungenau ist, die Modellierung der Dynamik eines Systems umständlich und unausgereift ist, OCL ungleich schlechter lesbar als Java ist und MDA nur eingeschränkt nutzbar ist.

Stattdessen rückt er zwei andere Aspekte besonders in den Vordergrund: Schnittstellen und Komponenten. Zur Schnittstellen-Definition gehört weit mehr als nur eine Java-Interface-Datei und die Definition der Parameter-, Rückgabe- und Exception-Klassen, zum Beispiel: Syntax, Semantik, Invarianten, Vor- und Nachbedingungen, Konfigurationsannahmen und Transaktionssicherheit. Fehlermöglichkeiten und Seiteneffekte werden anhand der Kriterien ACID und [R]RR ([Restricted] Repeatable Read) untersucht. Es wird unterschieden zwischen objektorientierten Schnittstellen (enge Kopplung, Entitätsschnittstellen als Parameter) und dienstorientierten (lose Kopplung, TOs).

Bei Komponenten wird besonders auf folgende Aspekte eingegangen: Abhängigkeiten zu anderen Komponenten, Abhängigkeiten zur Umgebung und zu anderen gekoppelten Systemen, Vermeidung zyklischer Abhängigkeiten, Trennung von A-Software (Anwendung) und T-Software (Technik), Separation of Concern, einzeln versionierbare Komponenten und Auswirkungen beim Ausfall entfernter Komponenten.

Als Schwachpunkt in den meisten Systemen wird der Umgang mit Fehlern und Ausnahmen identifiziert.

An einigen Stellen könnte man den konkreten Bezug zu oder den Vergleich mit aktuellen Themen wie Hibernate, Spring, ESB, SOA etc. vermissen.



SOA
 

Nicolai Josuttis:
SOA in der Praxis
System-Design für verteilte Geschäftsprozesse




2008
ISBN 3898644766




Sehr lesenswertes, fundiertes und kompetentes SOA-Buch aus der Praxis.

Nicolai Josuttis redet SOA nicht schön, sondern beschreibt neutral Vor- und Nachteile, mögliche Problemfelder und betrachtet auch "Randthemen".

Behandelt werden: SOA als Paradigma, Motivation, Verantwortlichkeiten, "Fürstentum-Denken", "Nicht-meine-Baustelle-Syndrom" ("not-invented-here"), iterative inkrementelle SOA-Einführung statt Top-down oder Bottom-up, verteilte heterogene Systeme, Komplexität loser Kopplung, 2PC-Transaktionen versus Kompensation, Basis-Services (fachlich zustandslos, aber technisch event. zustandsbehaftet, z.B. wegen Security), Prozess-Services (oft zustandsbehaftet), BPM, BPEL, Orchestrierung versus Choreografie, Event-driven Architecture (EDA), Protokoll- versus API-getriebener ESB, MDSD, Message-Exchange-Patterns (MEP), Idempotenz, Correlation-IDs, Webservices, WSDL, WS-I Basic [Security] Profile ("standardisierte Standards"), Performance, Vermeidung von Remote-Stored-Procedures, Sicherheit auf Nachrichtenebene, Mandantenfähigkeit, Versionierung, Governance.

SOA soll nur eingesetzt werden, wenn Geschäftsprozesse über mehrere Systeme, Abteilungen und/oder Geschäftsbereiche realisiert werden. Aber dann gibt es keine bessere Alternative. Einerseits wird durch die lose Kopplung der Services die technische Komplexität erhöht. Aber andererseits gibt es eine Reduzierung der Gesamtkomplexität durch die einfachere Einbindung verschiedener "Eigentümer".

Als großer Fortschritt wird dargestellt, dass SOA die Heterogenität großer Systeme akzeptiert und damit umgehen kann, im Gegensatz zu früheren Bemühungen, Harmonisierung und ein gemeinsames fachliches Objektmodell (BOM) bzw. Master-Data-Management (MDM) zu etablieren, was oft scheiterte und zur "Analyse-Paralyse" oder wegen der vielen Abhängigkeiten zu komplizierten und nicht mehr änderbaren Datenmodellen führte.

Das Buch bietet nicht nur einen guten und fundierten Überblick, sondern auch viel konkrete Praxiserfahrung. Konkrete SOA-Produkte werden allerdings kaum erwähnt. Ebenso werden zur Technik nur die Grundlagen und selten Details erläutert.



Dirk Krafzig, Karl Banke, Dirk Slama:
Enterprise SOA
Best Practices für Serviceorientierte Architekturen - Einführung, Umsetzung, Praxis




2007
ISBN 3826617290




Sehr lesenswertes, fundiertes und kompetentes Grundlagenbuch zu SOA.

Behandelt werden Begriffsdefinitionen, Betrachtungen früherer IT-Architekturen und Software-Busse, verteilte Programmierkonzepte, Prozessintegrität, Services, BPM, ESB, organisatorische Aspekte, SOA-Projektmanagement und mehrere Fallstudien.

Der Fokus liegt etwas mehr auf technischen Grundlagen, aber auch auf organisatorische und strategische Aspekte und Vorgehensweisen wird eingegangen.

Behandelt werden auch schwierigere Themen wie verteilte Transaktionen und mögliche Daten- und Prozessinkonsistenzen durch Transaktionsaufteilungen.

Da das englischsprachige Original bereits 2004 geschrieben wurde, kann leider nicht auf die neuesten Entwicklungen (z.B. WS-*-Standards) eingegangen werden.



Daniel Liebhart:
SOA goes real
Service-orientierte Architekturen erfolgreich planen und einführen




2007
ISBN 3446410880




Kompetentes und pragmatisches Grundlagenbuch zu SOA. Der Fokus liegt auf allgemeinen technischen Grundlagen und weniger auf organisatorischen Aspekten.

Behandelt werden Webservices, BPEL, ESB, SOA-Referenzmodelle, konkrete SOA-Implementierungen (IBM, SAP, Oracle, Microsoft, OSS) und schrittweise Einführung statt Top-down oder Bottom-up. Gelungen ist der Bezug von SOA zu vielen anderen etablierten Konzepten, wie Portale, WFMS, EAI, EII, MDM etc. Als wesentlicher Vorteil von SOA wird die Möglichkeit der Weiterverwendung und Einbindung bestehender Legacy-Systeme genannt und vielleicht etwas zu ausführlich werden hierzu verschiedene Modernisierungs- und Migrationsoptionen beschrieben.

Daniel Liebhart setzt den Fokus auf SOA-Systeme, die auf SOAP/WSDL-Webservices und einer BPEL-Engine basieren und empfiehlt zusätzlich den Einsatz einer Rule Engine. ESB-Systeme hält er bei kleineren SOA-Installationen (mit "logischer Integration") nicht für unbedingt erforderlich. Er bevorzugt synchrone Kommunkation statt asynchronem Messaging.

Die Einschränkung auf SOAP/WSDL und BPEL ist pragmatisch, aber umfasst nicht alle Varianten (z.B. fehlen REST, XPDL). Auch auf einige andere SOA-Themen wird nicht genauer eingegangen, wie: WS-*-Standards, Security, zuverlässige Nachrichtenübermittlung, Fehlerbehandlung, Kompensationen, Transaktionen und QS-Tests.



Gernot Starke, Stefan Tilkov (Hrsg.):
SOA-Expertenwissen
Methoden, Konzepte und Praxis serviceorientierter Architekturen




2007
ISBN 3898644375




Dieses Buch wurde von 52 Autoren geschrieben. Das hat Vor- und Nachteile. Der wichtigste Vorteil: SOA wird nicht nur aus einem einzelnen Blickwinkel betrachtet, sondern viele verschiedene Aspekte und Standpunkte fließen ein. Nachteilig sind die dabei unvermeidlichen Wiederholungen und dass nicht ein durchgängiges klares Konzept vorgestellt werden kann. Auch die Qualität der Kapitel schwankt von sehr gut bis nicht unbedingt notwendig.

Schwerpunkte des Buches sind: SOA als strategische Geschäftsinitiative und nicht als taktisches Technologieprojekt, wertschöpfungsorientierter Serviceentwurf, Schnittstellendesign, Governance, BAM, ITIL, Qualitätssicherung, Risiken, Probleme und Praxis.

Der Fokus liegt eher auf organisatorischen und strategischen Aspekten und Vorgehensweisen und weniger auf technischen Details.

Trotz des 874 Seiten großen Umfangs wird der technisch orientierte Praktiker genauere Informationen vermissen, zum Beispiel zu den Themen: konkrete ESB-Produkte, konkrete Orchestrierungstools, BPMN, BPEL, XPDL, Versionierung, Reliable Messaging, verteilte Transaktionen, Kompensationen sowie Unterschiede zwischen kommerzieller SOA-Middleware zu Open-Source-SOA-Stacks.



Hans-Peter Fröschle, Stefan Reinheimer (Hrsg.):
Serviceorientierte Architekturen




2007
ISBN 3898644340




Gemessen am geringen Umfang von 115 Seiten haben die 22 Autoren erstaunlich viel konzentrierte Informationen zu SOA zusammenstellen können. Natürlich fehlen viele Themen und einiges kann nicht detailliert genug ausgeführt werden, aber für den, der nicht mehr lesen will, wird ein guter kompetenter Einstieg geboten.

Die Schwerpunkte sind: SOA im Unternehmen und als umfassendes Managementkonzept, Erfolgsfaktoren, Entscheidungsprozess, ROI, Prozessmodellierung, Serviceidentifikation, Open-Source-Software, Governance, IT-Management, Wirtschaftlichkeit, Controlling und Risikomanagement.

Der Fokus liegt eher auf organisatorischen und strategischen Aspekten und Vorgehensweisen und weniger auf technischen Details.



Ingo Melzer et al.:
Service-orientierte Architekturen mit Web Services
Konzepte - Standards - Praxis




2007
ISBN 3827418852




Das kompetente Buch konzentriert sich auf die am häufigsten für eine SOA verwendeten Techniken, wie BPEL und Webservices, und auch bei letzteren auf die aussichtsreichsten.

Die anfänglichen grundsätzlichen Überlegungen zu SOA wirken etwas abstrakt und langatmig. ESB wird fast gar nicht erwähnt.

Am ausführlichsten sind die Beschreibungen zu SOAP, WSDL und den Webservices. Die Stärken des Buches liegen in den Kapiteln zur Sicherheit, zu BPEL und den verschiedenen Webservice-Standards, zum Beispiel: WS-Adressing, WS-Security und Web Services Transactions Framework.

Wie in vielen Büchern zu SOA wird auch hier die besondere Wichtigkeit der Behandlung verteilter Transaktionen betont. Trotzdem wird das Thema oft stiefmütterlich behandelt. Auch Ingo Melzer spendiert hierfür nur 20 Seiten, bietet aber immerhin eine Einführung in WSTF (WS-Coordination, WS-AtomicTransaction, WS-BusinessActivity).



Frameworks, Tools
 

Bill Burke:
RESTful Java with JAX-RS




2010
ISBN 0596158041




Der ressourcenorientierte REST-Architekturstil und die darauf aufbauenden RESTful Web Services mit JAX-RS gewinnen zunehmend an Bedeutung und verdrängen in Teilbereichen SOAP Web Services.

Obwohl das Buch nur 280 Seiten hat, gelingt es Bill Burke hervorragend, sowohl die Ideen und Prinzipien als auch die pragmatische Umsetzung zu veranschaulichen.

Behandelt werden: RESTful Architectural Principles, HTTP Methods, Binding, Content Negotiation, JAX-RS Annotations, Injection, XML mit JAXB, JSON, Content Handler, Exception Handling, Caching, Concurrency, Conditional Updates, Authentication, Cookies, HATEOAS, Atom, Deployment, EJB Integration, Spring Integration, RESTful Java Clients, JAX-RS Implementations, JBoss RESTEasy.

Die Beispiele sind kurz und prägnant und enthalten viele Details. Erfreulicherweise gibt es auch bereits Hinweise zu Java EE 6, welches erstmalig JAX-RS enthält (mit Jersey). Vermissen könnte man genauere Informationen zu "Contract-First" (ausgehend von Schema-XSD), gzip-Kompression, extended WADL und Jersey-Clients.



Gerd Wütherich, Nils Hartmann, Bernd Kolb, Matthias Lübken:
Die OSGI Service Platform
Eine Einführung mit Eclipse Equinox




2008
ISBN 389864457X




OSGi etabliert sich zunehmend zu einem der wichtigsten dynamischen Komponentensysteme für Java.

Dieses Buch ist das erste deutschsprachige zu OSGi. Es behandelt gründlich, genau und kompetent die wichtigsten OSGi-Themen. Es ist hervorragend strukturiert: Obwohl die Kapitel aufeinander aufbauen, was das durchgängige Lesen erleichtert, sind sie doch in sich geschlossen, was die Verwendung als Kurz-Referenz ermöglicht (leichter verständlich als die ebenfalls gute Original-OSGi-Referenz).

Behandelt werden: Grundlagen des OSGi Frameworks, Declarative Services, Config Admin Service, Metatype Service, Event Admin Service, Log Service, User Admin Service, Preferences Service, Http Service Application Admin Service und einige Equinox-spezifische Erweiterungen, wie zum Beispiel Extensions und Webanwendungen. Sehr hilfreich sind die vielen Einsteiger-Tutorials.

Vermissen könnte man: Einbindung in JUnit-Tests, Hinweise auf mögliche Concurrency-Probleme und notwendige Synchronisationen, Diskussion von auf Grund der OSGi-Dynamic problematischen Konstellationen und eine Übersicht zu typischen Varianten von OSGi-unterstützten Gesamtarchitekturen und Anwendungsszenarien.



Eberhard Wolff:
Spring
Framework für die Java-Entwicklung




2006
ISBN 3898643654




Spring ist ein erfolgreiches und flexibles Java-Framework, welches zum Ziel hat, die Entwicklung komplexer Java-Anwendungen zu vereinfachen. Hilfsmittel zur Vereinfachung sind zum Beispiel DI, AOP und Templates. Besondere Bekanntheit erlangte Spring dadurch, dass auch für anspruchsvolle Enterprise-Anwendungen die aufwändig zu programmierenden EJBs durch einfache POJOs ersetzt werden können.

Dieses erste deutschsprachige und sehr lesenswerte Buch zu Spring richtet sich an fortgeschrittene Java-Entwickler. Besonders profitieren im Java-EE-Umfeld tätige Entwickler, aber auch Java-SE-Anwendungen können Spring nutzen.

Eberhard Wolff erläutert kompetent und verständlich die Philosophie, die Grundlagen und auch viele Feinheiten mit Hilfe guter Diagramme und meistens kurzen klaren Code-Schnipseln. Auch anspruchsvolle Fragestellungen werden diskutiert.

Behandelt werden die Themen: DI, AOP, Transaktionen, Persistenz mit JdbcTemplate, iBATIS und Hibernate, Kommunikation mit RMI, HTTP und SOAP und zu EJB, MVC-Webanwendungen mit dem Spring Web Framework, Sicherheit mit Acegi, sowie weitere Themen wie JCA, JMS, JMX, Timer und Rich Clients.

Der Einsteiger wird vielleicht eine einfache Schritt-für-Schritt-Erläuterung vermissen, um die Beispiele ans Laufen zu kriegen. Der Sourcecode ist zwar über die Website zum Buch erhältlich, aber insbesondere Windows-Benutzer werden sich nicht immer auf Anhieb zurecht finden, zum Beispiel wenn Sie XFire-SOAP testen wollen oder Beispiele im Java EE Application Server installieren wollen.

Wer mit größeren Java-EE-Anwendungen zu tun hat, könnte sich möglicherweise genauere und ausführlichere Erörterungen zu den Themenbereichen Multithreading, Singletons, Instance Pooling, Clustering und Ausfallsicherheit wünschen, oder ein JTA-Transaktionsbeispiel mit einer anderen Propagation als 'Required'.



Robert F. Beeger, Arno Haase, Stefan Roock, Sebastian Sanitz:
Hibernate
Persistenz in Java-Systemen mit Hibernate 3




2006
ISBN 3898643719




Hibernate ist eines der verbreitetsten Java-ORM-Frameworks (objektrelationales Mapping).

Das kompetente und gut lesbare Buch setzt Kenntnisse zu SQL, JDBC etc. voraus, in einigen Kapiteln auch zu Webanwendungen, JSF, EJB, CMT etc.

Die erste Hälfte des Buches beschreibt Hibernate-Grundlagen, zum Beispiel: Fachlicher versus synthetischer Primary Key, Collections, Beziehungen, Abbildung von Vererbung, polymorpher Zugriff, SessionFactory per JNDI, Caching, Lazy Loading, Transaction Isolation, lange Transaktionen, pessimistische und optimistische Sperren, LockMode, HQL, Tupel, Joins, ScrollableResults, Criteria.

Der nächste Buchteil geht wohltuend über die reinen Hibernate-Details hinaus und erläutert die unterschiedliche Einbettung von Hibernate in drei verschiedenene Architekturkonzepte: Rich-Client-Desktop-Anwendung (mit Datenbankanbindung), JSF-Webanwendung und Client/Server-EJB-Anwendung. Dabei wird auf übliche Patterns eingegangen und begründet, warum zum Beispiel DAO und DTO zusammen mit Hibernate keinen Sinn machen.

Der letzte Buchteil behandelt Spezialthemen: Performance, Batch, Queries statt Collections, Mapping, hbm2ddl, Constraints, PK-Generatoren, Stored Procedures, Cascade, XDoclet, Interceptoren, Events, EJB 3, JPA, JDO.

Einige Themen hätten vielleicht genauer behandelt werden können, zum Beispiel: ThreadLocal, HibernateUtil, Second-Level-Cache, Cluster, Thread-Wechsel bei Session Beans, EJB 3, Einbettung in Spring.



Michael Scholz, Stephan Niedermeier:
Java und XML
Grundlagen, Einsatz, Referenz




2009
ISBN 3836213087




XML bietet als Datenaustauschformat wichtige Vorteile: Es ist programmiersprachen- und plattformunabhängig und erleichtert Fehlerverfolgungen, da es menschenlesbar ist.

Obwohl schon seit vielen Jahren im Einsatz, ist der korrekte Umgang mit XML nach wie vor schwierig. Dies fängt schon damit an, dass es nicht immer einfach ist, alle mit XML zusammenhängenden Begriffe auseinanderzuhalten, wie: XML Schema, XSD, XPath, XSL, XSLT, XSL-FO, TrAX, Namespaces, DTD, DOM, SAX, StAX und SOAP. Für den Java-Programmierer kommen weitere Begriffe hinzu: JWSDP, JAXP, JAXB, JDOM und JAX-WS.

Die Autoren erläutern diese Standards, Technologien und APIs sehr kompetent und gut strukturiert und mit verständlichen Beispielen erläutert. Wichtig für Java-Programmierer ist, dass das Buch die Neuerungen von Java 6 enthält (z.B. zu StAX und JAXB). Gut ist auch das Kapitel zu SOAP Webservices, WSDL 2 und JAX-WS. Leider fehlt ein Kapitel zum XML-Einsatz bei RESTful Web Services mit JAX-RS. Hilfreich wäre auch ein Anwendungsbeispiel gewesen, wie JAXB mit StAX kombiniert werden kann, um große Dateien verarbeiten zu können.

Das Buch richtet sich vor allem an Java-Programmierer und bietet das notwendige Grundwissen zu XML. Reine XML-Spezialisten kommen zu kurz und benötigen speziellere Literatur, zum Beispiel zur Struktur und zum Umgang mit Namespaces in Schema-XSD-Dateien ("Venetian Blind Design" etc.).



Martin Backschat, Stefan Edlich:
J2EE-Entwicklung mit Open-Source-Tools
Coding - Automatisierung - Projektverwaltung - Testen




2003
ISBN 3827414466




Zur professionellen Softwareentwicklung gehört mehr als nur eine gute IDE. Viele weitere Werkzeuge sind notwendig.

Nach einer Einführung in grundsätzliche J2EE-Technologien folgt eine Sammlung vieler unterschiedlicher Themen: Eclipse, UML-Werkzeuge, Styleguide, Code-Analyse, DbC (Design by Contract), Refactoring, Ant, XDoclet, AndroMDA, AOP, CVS, Subversion, Bugzilla, Maven, Wiki, Testen, JUnit, Mock, Cactus, JUnitEE, DbUnit, HttpUnit, WebTest, CruiseControl, Lasttests, Grinder, JMeter, OpenSTA, JUnitPerf, Profiler, Tomcat, JBoss, Struts, JDO, Hibernate, Castor und TopLink.

Bei dieser Fülle an Themen ist klar, dass die Besprechungen nicht in die Tiefe gehen können. Aber bevor man in die Tiefe geht, muss man wissen, was es überhaupt für Möglichkeiten gibt, welche Tools sich eignen und man muss sich konkret für bestimmte Tools entscheiden.

Genau hierbei leistet das Buch sehr gute Dienste. Wenn man noch nie vorher von Maven oder CruiseCrontoll gehört hat, würde man nicht nach entsprechenden Tools suchen. Das Buch erweitert den Horizont vieler Entwickler, vergleicht Eigenschaften wichtiger Tools, zeigt Alternativen auf und bietet zu einigen Tools eine Einführung in die Funktionsweise.



Martin Spiller:
Maven 2
Konfigurationsmanagement mit Java


Kai Uwe Bachmann:
Maven 2
Eine Einführung



2009
ISBN 3826659376



2009
ISBN 3827328357




Beide Bücher zu Maven 2 sind lesenswert und haben sowohl dem Einsteiger als auch dem Profi viel zu bieten. Beide decken die üblichen Themen ab: Die Vorgehensweise und Philosophie von Maven, Installation/Konfiguration, Build-Zyklen, POM, Plugins, Profile, Abhängigkeiten, Assembly, Multiprojekte, Repositories, Reports, Archetypen und eigene Plugins (Mojo).

Das Buch von Martin Spiller erläutert Maven-Grundlagen und Feinheiten genauer, verständlicher und besser strukturiert und behandelt SCM-Themen vollständiger, wie zum Beispiel Maven-Optionen, den Release-Prozess und Repository Manager (z.B. Archiva). SCM-, Konfiguratios- und Releasemanager sind mit dem Buch von Spiller besser bedient.

Das Buch von Kai Uwe Bachmann wendet sich eher an Anwendungsentwickler, die sich mehr für konkrete Programmierbeispiele und praktische Anwendungen interessieren, wie Integrationstests und die Verwendung von Plugins zum Beispiel zu EAR, Cargo und JBoss. Praktisch bei der Suche nach Begriffen kann sein, dass auf der beigelegten CD das Buch als PDF enthalten ist.



Java EE
 

Robert Patrick, Gregory Nyberg, Philip Aston:
Professional Oracle WebLogic Server
(englisch)




2009
ISBN 0470484306




Oracle WebLogic ist einer der bekanntesten kommerziellen Java EE Application Server.

Das Buch ist weder eine Java-EE-Referenz noch eine WebLogic-Referenz. Es deckt weder in dem einen noch in dem anderen Bereich vollständig alles ab.

Aber das Buch ist besser als lediglich eine Referenz: Es bietet zu allen wichtigen Themenbereichen gute Einführungen und geht bei wichtigen Themen teilweise auch detaillierter in die Tiefe. Dabei verstehen es die Autoren sehr gut, mit kurzer, prägnanter und genauer Sprache gut fokussierte Beispiele zu präsentieren.

Besonders gelungen sind die vielen "Best Practice"-Empfehlungen. Sehr angenehm ist, dass klar gekennzeichnet ist, was für Java EE allgemein gilt und was WebLogic-spezifisch ist.

Behandelt werden: Architecture, Web Applications, Java EE Applications, EJB, MDB, JMS, JPA, Web Services, Security, Packaging und Deployment, Development, Administration, Monitoring, Cluster, WLST, Performance und Production Environment.



David R. Heffelfinger:
Java EE 5 Development using GlassFish Application Server
(englisch)




2007
ISBN 1847192602




Das Buch bezieht sich auf die seit September 2007 verfügbare GlassFish-2.0-Version. Anders als der Titel vielleicht nahelegen könnte, werden kaum GlassFish-spezifische Details erläutert. Das Buch ist nicht für Administratoren gedacht und für den Produktionsbetrieb wichtige Konfigurationen zu Cluster, Load Balancing und Failover-Ausfallsicherheit werden nicht behandelt.

Stattdessen wird kompetent und auf sehr angenehm lesbare Weise ein Grundkurs zu den wichtigsten Java-EE-5-Anwendungen geboten, der im Prinzip für alle Java EE Application Server anwendbar ist, aber an den wenigen Stellen, die Applikationsserver-spezifisch sind, nur auf GlassFish eingeht (z.B. Installation, Datasource einrichten, JMS einrichten, Remote-Client-Anbindung etc.).

Behandelt werden: Servlets, JSP, JSTL, JSF, JPA, JMS, JAAS, EJB3, MDB, JAX-WS, Facelets, Ajax4jsf, Seam und Email.

Das Buch ist ideal für Leser, die etwas Vorwissen zu Java und J2EE haben und die wichtigsten Java-EE-5-Neuerungen anwenderfreundlich präsentiert bekommen möchten.



Heiko W. Rupp:
JBoss
Server-Handbuch für J2EE-Entwickler und Administratoren




2005
ISBN 3898643182




JBoss ist einer der bekanntesten Open Source Java EE Application Server.

Dieses Buch zählt zu den ersten deutschsprachigen Büchern zu JBoss. Es erläutert nicht die Grundlagen von Java EE und EJB, sondern konzentriert sich auf JBoss. Obwohl es Vorkenntnisse voraussetzt, beginnt es mit einsteigertauglichen Installationsbeschreibungen und der schrittweisen Entwicklung einer einfachen mit XDoclet realisierten EJB-Beispielapplikation.

Im Folgenden werden gut lesbar und gut strukturiert sehr viele JBoss-Details erläutert: JMX, MBeans, UCL (Unified Classloader), Classloader Isolation, Call-by-value, sar/rar/jar/war/ear/aop/xml/bsh, Interceptoren, JNDI, Transaktionen, Security, JAAS, SSL, Ports, CMP2, CMR (Container managed Relations), Locking, Caching, JBossMQ, JMS, MDB, AOP, J2EE-1.4-Webservices, Hibernate, Administration, Monitoring.

Entwicklern, die gerne JBoss einsetzen, aber trotzdem möglichst Application-Server-neutral vorgehen wollen, wird an einigen Stellen die genauere Trennung zwischen JBoss-Spezifischem und für alle Java EE Application Server Geltendem fehlen.
Etwas zu kurz kommen Hochverfügbarkeit und Cluster.
Java-5-Annotations und EJB 3 konnten noch nicht berücksichtigt werden.



Adam Bien:
Java EE 5 Architekturen
Patterns und Idiome




2007
ISBN 3939084247




Wer eine grundsätzliche Einführung in Java EE 5 oder in Java EE 5 Architekturen erwartet, wird enttäuscht werden. Der Untertitel "Patterns und Idiome" trifft den Buchinhalt besser.

Das Buch ist nicht für Java-EE-Einsteiger geeignet. Es gibt keine Installationshinweise zu Java EE Application Servern oder JPA-Umgebungen, es gibt keine Übersichtsdarstellungen zu JPA oder zu Java-EE-5-spezifischen Annotationen und viele Java-EE-Aspekte fehlen völlig.

Die optimale Zielgruppe sind Entwickler, die sich mit J2EE und EJB 2 auskennen und wissen wollen, was sich in Java EE 5 und EJB 3 geändert hat. Für diese Zielgruppe ist das Buch sehr lesenswert. Die Änderungen zu Java EE 5 sowohl in der Technik als auch in der Herangehensweise und Intention werden gut dargestellt, aber der Schwerpunkt liegt auf der pragmatischen und praxisbezogenen Vorstellung vieler sinnvoller Java-EE-Patterns und -Utilities und der Erläuterung von deren Vor- und Nachteilen. Beispiele: PDO, PAO, DTO, GDTO, Service, SF, PDOF, TOA, SD, IS, ASI, SIS, PAG, SR, SL, MA, DCO, SCO, CCO.

Zu einigen Patterns wäre wünschenswert, wenn die Herkunft bzw. der Verbreitungsgrad genannt würden. Einige Patterns entstammen "allgemein bekannten Quellen" (z.B. GoF, Fowler, Sun BluePrints), andere Patterns werden in diesem Buch neu vorgestellt, ohne dass differenziert wird.



Martin Bond, Debbie Law, Andy Longshaw, Dan Haywood, Peter Roxburgh:
Teach Yourself J2EE in 21 Days
(englisch)




2004
ISBN 0672325586




Trotz des Titels ein sehr gutes und umfassendes Buch zu Standard-J2EE. Aber vergessen Sie die Illusion, J2EE in 21 Tagen lernen zu wollen: Das Buch hat 1000 Seiten.

Die Themen sind: Überblick über J2EE-Technologien, JNDI, Session EJB, Entity EJB, CMP, EJB QL, Transactions, CMT, BMT, JTA, Two-Phase Commit, SQLj, JMS, MDB, JavaMail, Servlets, JSP, JSP Tag Libraries, Security, XML, XSLT, J2EE Patterns, JCA und Web Services mit JAX-RPC und mit SAAJ.

Auch schwierige Themen werden fundiert angegangen und gut erklärt.

Eines der wenigen J2EE-Grundlagenbücher, welches auch ungeliebte, aber wichtige Themen, wie zum Beispiel JTA-Transaktionsmanagement und XA-Two-Phase-Commit, detailliert behandelt.

Das Buch konzentriert sich auf die von Sun vorgegebenen Standard-J2EE-Komponenten. Open-Source-Produkte werden fast nirgends erwähnt.



Thomas Stark:
J2EE
Einstieg für Anspruchsvolle




2004
ISBN 3827321840




Solides J2EE-Grundlagenbuch. Im Fokus stehen die von Sun vorgegebenen Standard-J2EE-Komponenten. Aber auch einige Open-Source-Produkte werden gewürdigt.

Die Themen sind: JSP, Servlets, JSP Tag Libraries, Struts, JNDI, EJB, BMP, CMP, Relationen, JDO, JMS, XML, XPath, XSL, XSL FO, XML-RPC, JAX-RPC und SOAP Web Services.

Allerdings werden nicht alle Standard-J2EE-Komponenten umfassend abgedeckt. Zum Beispiel JavaMail, JCA, JTA und Transaktionsmanagement werden nur am Rande gestreift.



Java SE, Java ME, Grundlagen
 

Joshua Bloch:
Effective Java
Second Edition




2008
ISBN 0321356683




Dieses Buch ist nicht für Anfänger geeignet, aber jeder Java-Experte sollte es gelesen haben.

Joshua Bloch kennt genauestens die Internas von Java SE und hat zusätzlich die Gabe, in kurzen prägnanten Beispielen viele kritische Probleme zu verdeutlichen und Lösungen verständlich darzustellen.

Er geht äußerst kompetent viele wichtige Details und grundsätzliche Themen an, die im Alltag gerne vernachlässigt werden, was zu bösen Fehlern führen kann, beispielsweise wie man korrekt equals(), hashCode() und clone() überschreibt.

Weitere Themen: Singletons, Komposition versus Vererbung, Interfaces versus abstrakte Klassen, Änderungen mit Java 5, Generics, Enums, Annotationen, Double versus BigDecimal, Exceptions, Concurrency, Multithreading-Probleme und Serialisierung.

Falls Sie glauben, Sie könnten Java programmieren: Sehen Sie sich die von Joshua Bloch zusammen mit Neal Gafter verfassten Java Puzzlers: Traps, Pitfalls, and Corner Cases an.



Ulrich Breymann, Heiko Mosemann:
Java ME
Anwendungsentwicklung für Handys, PDA und Co.




2008
ISBN 3446413766




Solides Java-ME-Grundlagenbuch. Bezieht sich überwiegend auf das in Handys verwendete CLDC 1.1 und MIDP 2.0. Auf CDC wird kaum eingegangen.

Grundlagenwissen zu Java (also Java SE) wird vorausgesetzt. Vorwissen zu Java ME wird nicht benötigt. Es wird genau erklärt, wie die Beispiele mit dem WTK (Java ME Wireless Toolkit) von Sun betrieben werden. Die Ausführung in NetBeans, Eclipse und in richtigen Handys wird nur kurz erläutert, was aber kein Problem sein sollte.

Behandelt werden: Java ME, CLDC, MIDP, MIDlet, AMS, WTK, OTA, PlatformRequest, Ressourcenzugriff, Ereignisverarbeitung, Thread-Steuerung, Synchronisation, Formular mit dem Screen-High-Level-API, Grafik mit dem Canvas-Low-Level-API, Spieleanimation mit GameCanvas/TiledLayer/Sprite, SVG (Scalable Vector Graphics), 3D-Grafik, Multimedia, RMS (Record Management System), Dateisystem, PIM (Personal Information Management), Internetanbindung, Socket, SOAP Webservice, SMS, Bluetooth, Location API, Sicherheit.

Für Entwickler, die nicht nur Spiele entwickeln wollen, ist das Buch sehr gut geeignet. Für reine Spieleentwickler gibt es fokussiertere Bücher.



Guido Krüger:
Handbuch der Java-Programmierung




2006
ISBN 3827324475




Alle Java-SE-Themen werden umfassend, genau und verständlich dargestellt.

Für jeden Java-Einsteiger ein Muss. Und auch für den Profi eine immer wieder gerne genutzte Referenz.

Das gesamte Buch gibt es als HTML-Ausgabe zum freien Download über: www.javabuch.de. Zum ernsthaften Studium ist allerdings die Papierausgabe geeigneter.



Andrew Hunt, David Thomas:
Der Pragmatische Programmierer
(Übersetzt von Andreas Braig und Steffen Gemkow)




2003
ISBN 3446223096




Dieses Buch erweitert den Horizont des Programmierers. Es dient nicht dem Erlernen einer Programmiersprache. Auch stehen nicht Entwurfsmuster oder Softwarearchitekturen im Vordergrund.

Stattdessen werden Verhaltensweisen untersucht. Es enthält viele gute Ratschläge zur "richtigen Einstellung" und Vorgehensweise, fördert kritisches Hinterfragen und lenkt den Blick auf wichtige den Projekterfolg bestimmende Faktoren.

Sowohl von statisch definierten Vorgehensmodellen als auch von der Einhaltung bestimmter unflexibler "Ideologien" wird abgeraten und mehr an das allgemeine Verantwortungsbewustsein appelliert. Zur Veranschaulichung werden viele Analogien herangezogen (z.B. "zerbrochene Fensterscheibe", "Leuchtspurmunition", "Schnürsenkel binden").

Themenbereiche sind z.B.: "DRY" (Don't Repeat Yourself), "DbC" (Design by Contract), Orthogonalität/Kohäsion/Demeter-Gesetz, Flexibilität/Metadaten, Blackboards, "echte" Anforderungen, frühes und automatisiertes Testen, Refaktorisieren, Verantwortlichkeiten im Team, DocBook.

Hin und wieder mag sich der Leser eventuell etwas überfordert fühlen durch die häufigen Wechsel der den kurzen Beispielen zu Grunde liegenden Programmiersprachen (Java, C, C++, Eiffel, Perl, Make).

Da das Original bereits 1999 erschien, fehlen Hinweise auf einige mittlerweile wichtige Entwicklungen (z.B. Eclipse, Maven). Aber viele Tipps haben heute genauso wie damals weiterhin ihre Gültigkeit.






Weitere Themen: TechDocs | Homepage Torsten Horn
© 1998-2009 Torsten Horn, Aachen