Gepostet von Alexander Gräsel in JAX
am 14 Mai, 2012 | 2 Kommentare
Der meiner Meinung nach beste Speaker auf diesjährigen JAX war Adam Bien. Mit seiner Leidenschaft für die Java-Programmierung und seiner langjährigen Erfahrung in dem Bereich Java-Enterprice berichtet er von den Neuheiten in der Java-Welt und dem state-of-the-art der Java-Programmierung.
In diesem Beitrag stelle ich kurz Adam Bien vor und berichte von seinen sehr coolen Sessions.
kurz zu seiner Person
Dipl.-Inf. Adam Bien (Java Champion, EJB 3, JPA 2, CDI, JMS Java EE 6/7 Expert Group Member) arbeitet als freiberuflicher Berater und Dozent im Enterprise-Java-Bereich. Seine praktische Erfahrung stammt aus seiner Mitarbeit an vielen Java- und Java-EE-Projekten, bei denen er als Consultant und Softwareentwickler tätig ist. Er entwickelt bereits seit JDK 1.0 mit Java und hat bereits viele Bücher, wie zum Beispiel: „Real World Java EE Patterns – Rethinking Best Practices“ oder „Real World Java EE Night Hacks“ geschrieben. Außerdem verfasste er zahlreiche Fachartikel zur verteilten Java-Programmierung und beteiligte sich in verschieden Java-User-Groups.
Twitter : http://twitter.com/AdamBien
Webseite: http://www.adam-bien.com
Sessions und Workshops
Insgesamt hielt Adam Bien 3 Vorträge und einen Workshop auf der JAX 2012. Die nun folgenden Abschnitte fassen kurz die jeweilige Session zusammen und enthalten ggf. Mitschriften, Anmerkungen oder Gedanken von mir.
Session: Unit Tests sind nett … und Stresstests notwendig
Überblick
Green Bars sehen gut aus und tragen entscheidend zur Zufriedenheit der QA-Abteilung durch gutklingende Metriken und Statistiken bei. Unit-, Integration-, Functional-, System- und sogar manche Load-Tests verifizieren lediglich das Verhalten des Java-EE-Applikationsservers in einem Single-Threaded-Szenario. Die echten Probleme werden kaum aufgedeckt, dafür aber angebliche Bottlenecks optimiert. Nach einer kurzer Vorstellung der Prinzipien eines Applikationsservers werde ich Stresstests einer typischen Java-EE-Anwendung durchführen, die Performance messen und den Server in Echtzeit monitoren. Anschließend werde ich typische Hot Spots vorstellen und die Auswirkung der kontinuierlichen Stresstests auf die Architektur der Anwendung diskutieren.
Leider konnte ich an der ersten Session von Adam Bien nicht teilnehmen:-/
Session: Wie Java-EE-Entwicklung sein sollte
Überblick
Minimales Design, schnell deployen und oft testen in möglichst kurzen Iterationen. Das sind kein „Best Practices“, sondern lediglich vernünftig. Aber geht das auch mit Java EE? In dieser Session schauen wir uns die dazu notwendigen Werkzeuge, Vorgehensweisen und Best Practices anhand von vielen pragmatischen Beispielen an. Vom Entwurf bis zum Deployment werden die notwendigen Schritte zusammengefasst. Aber Achtung: Am Ende wird doch wieder alles wieder offensichtlich.
Besonders gut hat mir die Session
„Wie Java-EE-Entwicklung sein sollte“ gefallen. Dabei ging Herr Bien besonders auf alte Paradigmen der Java-Entwicklung ein. So meinte er, dass man viel zu oft dazu neigt, irgendwelche Abstraktionen und Interfaces einbaut, die man nicht benötigt. Darum sollte man ein Interface löschen, wenn es bis dato eh nur eine Implementierung gibt. Er selbst formulierte es so:
It is all about probability. But if you are not sure — delete it
Des Weiteren sollte man nicht vergessen, dass der Kunde kein perfektes – sondern ein funktionierendes Programm haben will und die Komplexität der Anwendung durch jede Abstraktion erhöht wird. Dieser Gegenstand erschwert auch die Testbarkeit eines Programms. So wird oftmals
anstelle der Fachlichkeit, wird die technische Komplexität der Anwendung getestet.
Ein weiterer Punkt, den Adam Bien ansprach war das
Dependency Management. Man sollte sich vorab überlegen, welche Frameworks, Bibliotheken, etc. man in einem Projekt einsetzt. Zu viele oder auch u
nnütze Abhängigkeiten sollten abgebaut und vermieden werden. Laut ihm (spaßig gemeint), entstehen häufig solche Abhängigkeiten durch Entwickler, die Konferenzen, wie die JAX oder die W-JAX, besuchen und/oder Magazine lesen. Dabei werden die neu vorgestellten Frameworks und Werkzeuge, gleich in die produktive Entwicklung integriert. Sein Tipp: Lieber langweilige Java EE Projekte bauen und
neue Sachen in Entwicklertools oder Nice-to-Have-Projekten ausprobieren. Die besten Java-Programme sind seiner Meinung, Programme die nur aus einpaar Klassen und Annotationen bestehen, wobei der
fachliche Anteil innerhalb der Klasse überwiegen sollte. Ein schönes Zitat von ihm:
Wenn man in Java Design Patterns nutz, versuch man bereits gelöste Probleme der Java Spezifikation zu umgehen…
Im weiteren Verlauf der Session sprach Herr Bien, die Art und Weise von Kommentaren und Code-Dokumentationen an. Kommentare wie: „..Das ist ein Getter und ergibt ein String zurück“, beschreiben nur offensichtliche Dinge und geben dem Leser keinen Mehrwert. Laut ihm sollte eine
Code-Dokumentation Beispiele und Erklärungen bereithalten und stetig AKTUALISIERT werden.
Als Letztes möchte ich die Tools nennen, die Adam Bien nannte und verwendete:
Session: Java EE 7: Neues aus EJB 3.2, CDI 1.1, JPA 2, JMS 2 und den Wolken
Überblick
Java EE 7 ist eine Evolution, sogar eine Revolution (JMS 2 und JCache), aber auf jeden Fall interessant für alle künftigen Projekte. In dieser Session werde ich den Stand der Business Tier Specs und insbesondere JMS 2, EJB 3.2, JPA 2 und CDI vorstellen und einige Mythen und Legenden in Frage stellen. Konzepte werden anhand von Sourcecode veranschaulicht und alle Fragen der Teilnehmer beantwortet.
Die neusten Trends der Java-Welt stellte Adam Bien in der Session „Java EE 7: Neues aus EJB 3.2, CDI 1.1, JPA 2, JMS 2 und den Wolken“ vor. Dabei erläuterte er kurz das Konzept der
JSR (Java Specification Request) und nannte zahlreiche Anwendungsmöglichkeiten. Zum Beispiel der
JSR 107 (JCACHE – Java Temporary Caching API) oder der
JSR 347 (Data Grids for the JavaTM Platform).
Des Weiteren ging Herr Bien genauer auf die Neuheiten in EJB 3.2 ein. Hier erwarten uns die neuen Annotationen
@poolsize, @maxconcurrency und @asnchronous. Den JSR dazu finden Sie
hier.
Ein weiterer großer Punkt war JPA 2.1. In dieser Version wird die sogenannte Mandantenfähigkeit (
Multi tenancy) eingeführt. Dabei lassen sich verschiedene Schemas innerhalb einer Datenbank nutzen. Ein sehr nettes Feature:-) Außerdem wird es eine Art „
Dirty Detection“ geben. Diese Methode bestimmt, ob eine Entity dirty ist und wenn ja, was dirty ist.
Als Letztes sprach Herr Bien von der Social API, die leider nicht standardisiert wird.
Workshop: Java EE – einfacher ist unmöglich
Überblick
Bei der Entwicklung verteilter Software müssen fundamentale Informatikgesetze berücksichtigt werden. Nach kurzer Vorstellung der Prinzipien von Transaktionen, dem CAP-Theorem und einigen Gesetzen der verteilten Programmierung werden wir gemeinsam eine Java-EE-(6/7-)Anwendung entwickeln und dabei den gesamten Lebenszyklus diskutieren: von dem Entwurf der Architektur über Deployment bis zur Durchführung von Stresstests. Dabei werde ich den Schwerpunkt auf fortgeschrittene Java-EE-6-Konzepte wie Entwicklung von Plug-ins, Konfiguration, Server Push, Publish Subscribe oder asynchrone Verarbeitung legen. Im Lauf des Workshops werden wir die Frage beantworten, warum Java EE momentan die einfachste, produktivste und vernünftigste Plattform für die Entwicklung von kommerziellen Anwendungen ist. Der Verlauf des Workshops und die Art der implementierten Anwendung wird massiv durch die Fragen der Teilnehmer beeinflusst.
An dem Workshop durfte ich leider nicht teilnehmen.
Gallerie
Quellen
Hallo,
ich habe dieses Tutorial http://www.sam-bi.com/blog/java-mvc-tutorial gesehen und hätte eine Erklärung oder einen Vergleich für das UNterschied zwischen MVC und MVP Design Patterns.
Danke!
das aktuelle Link ist: http://www.sam-bi.com/tutorials/java-mvc-tutorial