Jump to content






Foto
- - - - -

Immer mehr Java

Posted by Thomas , in Java 01 Dezember 2012 · 2.635 views

Als Vorbereitung auf die Dinge, die im Job auf mich warten würde, hatte ich im Frühjahr Spring und Java EE geübt. Mittlerweile durfte ich mich seitdem im Büro den lieben langen Tag lang mit Java EE6 beschäftigen und wo sich das Jahr nun dem Ende entgegen neigt und wir gestern einen wichtigen Meilenstein im Projekt erreicht haben, ist es zeit für ein kleines Resümee:
 
An der Hochschule hatte ich die Sprachgrundlagen gelernt und da Java nicht meine erste Programmiersprache war, ist das lernen der Syntax das kleinste Problem bei einer Programmiersprache. Da tut es im Grunde Java kurz & gut. Viel aufwendiger wird es dann, die Libraries und Frameworks kennenzulernen und davon gibt es im Java-Ökosystem eine ganze Menge.
 
Wirklich praktisch angewandet hatte ich Java dann letztes Jahr als ich meine erste Android-App geschrieben hatte. Dabei konnte ich auch schon die ganzen Kleinigkeiten lernen wie das Umwandeln von Datentypen und die Arbeit mit Collections. Dynamisch typisierte Sprachen wie PHP interessiert so etwas ja nicht, aber bei Java oder Objective-C müssen auch solche Kleinigkeiten zunächst in Fleisch und Blut übergehen.
 
Bei Java EE 6 gibt es dann noch einmal eine ganze Reihe an Bibliotheken, die man kennenlernen muss. Da ich im Gegensatz zu den Kollegen erst recht spät zur Entwicklung der Java-Anwendung gekommen bin, hatte ich noch einen gewissen Rückstand. Neben der recht komplexen Struktur unseres Projektes hatte ich auch in Bezug auf Java EE noch Defizite, so dass ich wieder einmal morgens und abends die Zeit in der U-Bahn genutzt habe, um mich mit Fachliteratur zu EJB 3.1 und JPA 2.0 zu beschäftigen.
 
Die Aufgaben, die mir übertragen wurden, ließen mich dann in Feinheiten bei JPA, Mapping und Transaktions-Handling einsteigen, die mitunter von der mir vorliegenden Literatur nicht mehr abgedeckt wurden und ich das Internet (Danke StackOverflow) zu Rate ziehen musste. In der Praxis sind die Dinge nun mal komplexer als in irgendwelchen Tutorials. Bei allem Zeitdruck wird einem in dem Projekt zum Glück nicht gleich der Kopf abgehackt, wenn sich manche Probleme nicht innerhalb eines Tages lösen lassen (bei der alten PHP-Anwendung verbrachten wir mitunter Tage, um die Codestelle eines Fehlers zu finden, denn in dem verwendeten Framework gab es so lustige dynamische Variablen wie $$was und $$wasdenn).
 
In den letzten zwei Wochen durfte ich ein Tools-Projekt für die Entwicklung und den Test aufsetzen. Das sollte ein EAR werden, in dem die Persistenz- und Service-Schicht unserer Anwendung verfügbar sind. Da der Kollege, der für die Struktur der Projekte zuständig ist, wenig Zeit hatte, durfte ich dann nur mit ein paar Hinweisen, das Tools-Projekt aufsetzen, damit es mit allen Dependencies von maven korrekt gebaut wird und anschließend ohne Interferrenzen auf dem JBoss AS deployt. Natürlich hat das ganze auch wieder seine Zeit gebraucht, aber der Lerneffekt war wieder enorm.
 
Die Tools sind eine JSF-Anwendung ohne viel Schnickschnack und dort sind im Grunde einfach Dinge mitunter wieder etwas komplizierter als bei PHP. Wie von den alten Tools unter PHP wollte ich, dass das eine Infoseite über eine URL wie localhost:8080/tools/result.jsf?id=xxxx zu erreichen ist. Den GET-Parameter auslesen ist ja kein Problem, aber um die Seite sowohl über den Parameter als auch über ein Auswahlformular zu erreichen, musste ich bei JSF im Controller einen Redirect mit einbauen. Wild ist das zwar nicht, aber muss auch erst einmal umgesetzt werden. Dank dieser Aufgabe konnte ich auch sehr viel im Bereich von Maven und JSF lernen. Dazu war es nicht schlecht, dass ich in letzter Zeit (auch als Übung fürs Büro) ein Backend für eine iOS App mit Java EE 6 auf einem JBoss AS gebastelt habe.
 
Ein ewiger Quell der Freude sind immer die Sprachbashings in den heise-Kommentaren. Im Büro wechseln wir von PHP4/MySQL5.0 nun zu Java EE6/Oracle und gerade im Bezug auf das Deployment vermissen mittlerweise sogar manche Java-Verfechter und PHP-Hasser, dass man bei PHP einfach Dateien auf dem Server austauschen bzw. editieren kann.
 
Durch das Datenmodell und diverse externe Schnittstellen ist unsere Anwendung ziemlich komplex. Von daher habe ich im Laufe der Zeit den Debug-Modus von Java lieben gelernt und trauer der PHP-Zeit, in der ich gefühlt 1.000.000 Debug-Statements in den Code eingefügen musste, in keinster Weise nach. In Eclipse den Inhalt von Variablen direkt anzuschauen ist nun einmal wesentlich komfortabler als diese immer wieder mit print_r ausgeben zu müssen.
 
Die ganze Geschichte mit Java hat allerdings einen Haken: PHP ist in jedem Shared Hosting verfügbar und für Java (egal ob nun Servlet Container oder Application Server) braucht man i.d.R. mind. einen vServer, da es wenig Hosting-Lösngen für Java gibt. Von daher würde ich vermutlich Open Source Lösungen weiterhin mit PHP entwickeln, damit diese eine gewisse Verbreitung finden könnten. Wenn ich mir aktuelle Frameworks für PHP anschaue, dann ist nicht von der Hand zu weisen, dass diese einiges bei Java abgeschaut haben.
 
Wie in meinen Ausführungen skizziert ist der Lerneffekt in Bezug auf Java aktuell sehr hoch und ich gehe davon aus, dass mich in dieser Hinsicht nächstes Jahr noch viele spannende Aufgaben beschäftigen werden.




September 2017

M D M D F S S
    123
45678910
11121314151617
18192021222324
25 2627282930 

Recent Entries

Recent Comments