IT Frankfurt GmbH SCHULUNGSKATALOG Java, OO, Design Patterns Liebe Leserinnen und Leser, Java und .Net Schulungen für Einsteiger und Experten ! Die IT Frankfurt GmbH, mit Standort Frankfurt am Main, bietet Ihnen als fortschrittliches IT Unternehmen und innovativer Trainingsanbieter individuell auf Ihre Bedürfnisse zugeschnittene Java- und .NET Schulungen an. Durch praxisbezogene Trainings profitieren Sie von unserer langjährigen und umfassenden Erfahrung in der Projektierung und Entwicklung von Java- und .NET Softwaresystemen. Unsere innovativen Schulungen sind modular aufgebaut und entsprechen den höchsten Ansprüchen an Individualität und Flexibilität. So wird unser Trainingskonzept den verschiedenen Anforderungsprofilen vom Einsteiger bis zum Experten individuell angepasst und für Ihre technische Infrastruktur „ maßgeschneidert “. Unsere Trainer befinden sich „ am Puls der Zeit “ und vermitteln ihr Praxiswissen aus der Softwareentwicklung nach den modernsten Studien- und Lehrmethoden. Ihre Mitarbeiter werden hierzu im Vorfeld nach Ihren Zielen befragt. Im Nachgang zu unseren Schulungen unterstützen wir Sie aktiv beim Erreichen dieser Ziele. Unsere Seminare bieten wir Ihnen je nach Wunsch in unserem Trainingszentrum sowie direkt bei Ihnen vor Ort an. Profitieren Sie von unserer langjährigen Trainingserfahrung ! Das sagen unsere Kunden über uns Java Einstiegsseminar „ Es wurde sehr gut auf individuelle Fragen eingegangen und der jeweilige Erfahrungsstand der Teilnehmer wurde berücksichtigt. “ „ Obwohl das Seminar sehr intensiv war, schafft es der Trainer, das Seminar kompetent und angenehm zu gestalten. Der Trainer hat Zeit für die eigenen Fragen gegeben. “ „ „ Viel Praxisbezug und trotzdem wurde auf individuelle Fragen eingegangen. “ Build Management mit Maven „ Ein sehr freundlicher Trainer, der den Stoff verständlich vermittelt und die Fragen ausführlich beantwortet. “ „ Besonders gefallen hat mir die ruhige Vortragsart des Referenten. “ „ Ein sehr flexibler Trainer, der auf neue Zielgruppen sehr gut eingeht. “ „ Ein ausgewogenes Verhältnis zwischen Seminardauer und Umfang des Stoffes. “ “ Modul und UI Tests in Java „ Der Ablauf des Vortrages ist klar und gut strukturiert. Der Trainer hilfsbereit und zuvorkommend. “ Spring „ Mir gefiel der gesamte Inhalt. “ Inhaltsverzeichnis 1 2 3 4 5 6 7 8 9 10 11 12 G Einführung in Objektorientierung ...................................................... Prinzipien objektorientierten Designs Best Practices Einführung in Java ........................................................................... Die Sprache Java Tools für die Java Entwicklung Modul- und UI-Tests mit Java ........................................................... JUnit Testgetriebene Softwareentwicklung EasyMock Frontend-Tests Design und JEE Patterns ................................................................ Design Patterns JEE Patterns Anti Patterns ................................................................................. Debugging und Refactoring Profiling Garbage Collection Java Core Advanced ........................................................................ Erweiterte Sprachfeatures seit Java 5 Collections Advanced Multithreading Annotationen Spring ............................................................................................ Spring Dependency Injection Spring Aspect Oriented Programming ( AOP ) JPA mit Hibernate .......................................................................... Zusammenspiel JPA und Hibernate JPA-Konfiguration JPA, Hibernate und Spring Java Web Anwendungen ................................................................... Java Server Faces und Spring Webflow Facelets und Richfaces Java Web Services .......................................................................... Web Services mit JAX-WS Security und Co. Nicht zu vergessen : der REST Buildmanagement mit Maven ............................................................ Dependency Management Dokumentationserstellung Einführung in Groovy ....................................................................... Groovy Features Gesamte Leistungsübersicht Ausbildung IT ........................................ Impressum ...................................................................................... S. 6 S. 9 S. 12 S. 15 S. 18 S. 21 S. 24 S. 27 S. 30 S. 33 S. 36 S. 39 S. 42 S. 43 5 1 Einführung in die Objektorientierung ▪▪Prinzipien objektorientierten Designs ▪▪Best Practices 6 1 Einführung in Objektorientierung Grundlagen der objektorientierten Programmierung In dieser Schulung werden Sie die grundlegende Denk- und Herangehensweise des objektorientierten Programmieransatzes kennenlernen. Auf interaktive Weise präsentieren wir Ihnen die einzelnen Konzepte und erarbeiten gemeinsam mit Ihnen, wie sich diese auf das Programmdesign auswirken. Alle Beispiele in diesem Kurs sind unabhängig von einer konkreten Programmiersprache. Die Ausgestaltung der objektorientierten Grundsätze unterscheidet sich im Detail von Sprache zu Sprache, die grundlegenden Prinzipien sind jedoch in allen Sprachen identisch. Prinzipien objektorientierten Designs Klassen, Objekte, Vererbung, Polymorphie – diese und noch einige mehr sind die Bausteine, auf denen die objektorientierte Herangehensweise basiert. Wie jedes theoretische Konstrukt hat auch die objektorientierte Programmierung eine eigene Terminologie. Der erste Schritt beim Einstieg in die Objektorientierung ist daher, diese spezifischen Wörter, Konstrukte und die dahinterstehenden Ideen kennenzulernen und zu verstehen. Wie bei so vielen Dingen ist auch bei der Objektorientierung der Einstieg in die Materie nicht besonders schwierig. Die Verinnerlichung der objektorientierten Grundlagen ist aber die Voraussetzung dafür, ein Meister in der Entwicklung objektorientierter Software zu werden. 7 1 Einführung in Objektorientierung Best Practices Zu Beginn eines Softwareprojektes steht eine Idee, eine Vision dessen, was diese Software leisten soll. Diese Vision muss genauer analysiert und die einzelnen fachlichen Anforderungen, die damit verbunden sind, müssen in die objektorientierte Welt übersetzt werden, bevor mit der Entwicklung begonnen werden kann. Das Ergebnis der objektorientierten Analyse ( OOA ) ist in der Regel ein abstraktes Produktmodell, in dem das fachliche Modell anhand von objektorientierten Konzepten beschrieben ist. Früher oder später kommt jeder Softwareentwickler in die Situation, in der ein neues Projekt oder auch nur neue Anforderungen bei einem bereits laufenden Projekt analysiert werden müssen. In dieser Schulung werden wir diesen Prozess exemplarisch mit Ihnen durchlaufen und Ihnen die Techniken und die Tools vorstellen, die dabei eingesetzt werden können. Zu Beginn des Objektorientierung-Booms in den 1990er Jahren fehlten noch die Erfahrung und die Tools, wie die Artefakte, die im Rahmen der Objektorientierten Analyse und des Designs erstellt werden, festgehalten werden sollen. Die Unified Modeling Language ( UML ) wurde als Sprache für genau diesen Zweck entwickelt. Zwar hat sich im Laufe der Zeit gezeigt, dass die UML mit ihrer Vielzahl an Diagrammen für viele Einsatzbereiche zu schwergewichtig und unflexibel ist. Dennoch ist die Architektur vieler Softwaresysteme in UML-Notation festgehalten und auch in neueren Projekte kommt UML zum Einsatz. Daher werden wir Ihnen in dieser Schulung sowohl UML als auch leichtgewichtigere und flexiblere Tools vorstellen und gemeinsam mit Ihnen deren Anwendung erproben. Sobald die Anforderungen geklärt sind, geht es darum, dafür eine Software zu entwerfen, die diese Anforderungen auch erfüllen kann. Im Rahmen des Objektorientierten Designs ( OOD ) wird das Produktmodell, das während der objektorientierten Analyse erstellt wurde, in eine konkrete Softwarearchitektur transformiert. Diese Architektur enthält bereits viele technische Details und ist auf die Programmiersprache zugeschnitten, die eingesetzt werden soll. Alle Theorie ist bekanntlich grau, daher werden wir während der Schulung aufbauend auf dem Ergebnis der Analyse mit Ihnen zusammen ein mögliches Design einer Anwendung entwerfen. Was Sie lernen werden : Grundlagen der Objektorientierung Objektorientierte Analyse ( OOA ) Objektorientiertes Design ( OOD ) Unified Modeling Language ( UML ) Best Practices im objektorientierten Alltag ▪ ▪ ▪ ▪ ▪ Voraussetzung : keine Dauer : 4 Tage Haben Sie Fragen zu unseren Schulungen oder möchten Sie eine buchen ? Dann kontaktieren Sie uns : +49 (0) 69 904 736 1 - 0 oder [email protected] www.it-frankfurt.com 8 X 2 Einführung in Java ▪▪Die Sprache Java ▪▪Tools für die Java Entwicklung 9 2 Einführung in Java Die Sprache Java Seit der Veröffentlichung der ersten Version von Java im Jahr 1995 hat die Sprache eine steile Karriere gemacht. Nachdem sie einige Jahre sogar die Hitliste der verbreitesten Programmiersprachen gemäß des Tiobe-Index angeführt hat, liegt sie dort derzeit auf Platz 2. Gründe für die Popularität von Java sind zweifellos, dass die Sprache relativ einfach zu erlernen ist, eine vollautomatische Speicherverwaltung beinhaltet und auf vielen Plattformen, Smartphones eingeschlossen, eingesetzt werden kann. Nach einer kurzen Auffrischung der objektorientierten Grundlagen ( siehe auch die Schulung „ Einführung in Objektorientierung “ ) stellen wir Ihnen vor, wie diese in Java umgesetzt sind. Sie lernen die Eigenschaften und auch die Eigenheiten der Sprache ebenso kennen wie Schlüsselwörter und Kontrollstrukturen. Darüber hinaus beinhaltet Java ein Vielzahl vorgefertigter Klassen, mit deren Hilfe Anwendungen entwickelt werden können. Die Kenntnis dieser Klassen und das Wissen um deren Einsatzmöglichkeiten ist essenziell für Java-Entwickler. Wir werden uns daher die Zeit nehmen, Ihnen diese Klassen und deren Verwendung ausführlich zu demonstrieren. 10 2 Einführung in Java Tools für die Java-Entwicklung Die Beherrschung einer Programmiersprache ist eine Sache, die Beherrschung der während der Entwicklung eingesetzten Tools eine ganz andere. Im Rahmen dieser Schulung kommt die populäre und kostenlos verfügbare Entwicklungsumgebung ( auch IDE genannt ) „ Eclipse “ zum Einsatz. Dieses mächtige Tool nimmt den Entwicklern viel Routine-Arbeit ab und beschleunigt die Anwendungsentwicklung ungemein. Um die Möglichkeiten dieser IDE auszuschöpfen, müssen sie aber erst einmal bekannt sein. Daher zeigen wir Ihnen während der Schulung Tricks und Kniffe, wie Sie die Features von Eclipse gewinnbringend einsetzen können. Wenn Sie die Grundlagen beherrschen, werden wir Sie an die fortgeschrittenen Sprachkonstrukte heranführen. Das Lesen und Schreiben von Dateien, die Steuerung des Programmflusses durch Exceptions sowie die in Java eingebauten Sicherheitsmechanismen sind nur einige Beispiele dessen, was Sie lernen werden. Experten-Themen wie Parallelisierung in Java werden wir in dieser Schulung nur streifen, da solche Themen zu komplex für Einsteiger in die Sprache sind. In der Schulung „ Java Core Advanced “ werden Multithreading und weitere Aspekte der Sprache, die eher für Experten von Relevanz sind, ausführlich behandelt. Rund um Java sind eine Unzahl an Tools und vorgefertigten Bibliotheken entstanden, die sowohl die Möglichkeiten von Java erweitern als auch fertige Lösungen für Anforderungen bieten, die an viele Anwendungen immer wieder aufs Neue gestellt werden. Statt das Rad für jede Anwendung neu zu erfinden, bietet es sich an, auf solche fertige Lösungen zurückzugreifen. Wir werden Ihnen daher die wichtigsten dieser Bibliotheken, die sich in fast jeder Anwendung wiederfinden, vorstellen und Ihnen zeigen, wie und für welchen Zweck sie eingesetzt werden. Dieser Kurs richtet sich sowohl an erfahrene Programmierer, die mit Java eine weitere Programmiersprache erlernen wollen, als auch an Anfänger, die mit Java den Einstieg in die Programmierung suchen. Je nach Vorkenntnis der Teilnehmer liegt der Schwerpunkt während der Schulung eher auf den Grundlagen oder auf den fortgeschritteneren Themen. Was Sie lernen werden : Grundlagen der Java-Programmierung Einsatz von Entwicklungstools die Verwendung exemplarischer Java APIs Programmflusssteuerung und Exception Handling Einbindung von Fremdbibliotheken in eigene Projekte ▪ ▪ ▪ ▪ ▪ Voraussetzung : Programmierkenntnisse und Grundkenntnisse in Objektorientierter Programmierung. Dauer : 5 Tage Haben Sie Fragen zu unseren Schulungen oder möchten Sie eine buchen ? Dann kontaktieren Sie uns : +49 (0) 69 904 736 1 - 0 oder [email protected] www.it-frankfurt.com 11 X 3 Modul- und UI-Tests mit Java • JUnit • Testgetriebene Softwareentwicklung • EasyMock • Frontend-Tests 3 Modul- und UI-Tests mit Java Vor nicht allzu langer Zeit stand die Software-Industrie teilweise noch in dem Ruf, „ BananenSoftware “ zu liefern, die erst beim Kunden reift. Die Verkürzung der Release-Zyklen in den letzten Jahren hat es nicht einfacher gemacht, qualitativ ausgereifte Software zu veröffentlichen. Nur wenige Unternehmen waren in der Lage, ihre Kunden in kurzen Abständen mit neuen Features oder Bugfixes zu versorgen. Doch was unterschied diese Unternehmen von den anderen, denen das nicht gelang ? Ein maßgeblicher Punkt war, dass diese Unternehmen frühzeitig damit begonnen haben, ihre Software komplett automatisiert zu testen. Dadurch waren sie in der Lage, jederzeit komplette Regressionstests auszuführen und konnten dadurch die Qualität ihrer Software auch nach umfangreichen Änderungen noch garantieren. Zudem führt der weitgehende Verzicht auf manuelle Tests langfristig zu einer erheblichen Kostenreduzierung, und vor allem ist damit auch die Basis für Continuous Delivery gelegt. In dieser Schulung lernen Sie die Grundlagen und Tools für automatisierte Softwaretests mit Java kennen. JUnit Als eines der ersten Frameworks für die Testautomatisierung ist JUnit heute das am weitesten verbreitete. Wie der Name schon sagt dient es hauptsächlich dazu, einzelne Klassen und deren Methoden auf Herz und Nieren durchzutesten. Es lässt sich aber auch für Integrationstests wie beispielsweise das Zusammenspiel von Programmcode und Datenbank verwenden. 13 Im Rahmen dieser Schulung erfahren Sie, wie Sie mit JUnit automatisierte Tests für Ihre Anwendungen erstellen können. Dies umfasst neben der selbstverständlichen Einführung in das Framework auch die Vermittlung von Best Practices bei der Testerstellung. 3 Modul- und UI-Tests mit Java Testgetriebene Softwareentwicklung Frontend-Tests Lose Kopplung, klare Aufgabentrennung, Entwicklung mit Interfaces – die Prinzipien guten Anwendungsdesigns sind allen Entwicklern bewusst, dennoch sind sie in der Praxis oft schwer einzuhalten. Mit der testgetriebenen Entwicklung werden wir Ihnen eine Technik vorstellen, die nicht nur zu einem saubereren Anwendungsdesign führt, sondern die gleichzeitig auch noch eine hohe Testabdeckung des Codes sicherstellt. Erfahrungsgemäß erschließen sich die Vorteile, die mit der Einführung dieser Technik einhergehen, vielen Entwicklern nicht sofort. Daher werden wir uns die Zeit nehmen, die Testgetriebene Entwicklung ausführlich vorzustellen und auszuprobieren. Bei einer ausreichenden Abdeckung des Quellcodes decken Unit-Tests viele Bugs in einer Anwendung bereits frühzeitig auf. Naturgemäß lassen sich aus Unit-Tests aber keine Aussagen darüber treffen, ob die einzelnen Klassen auch so zusammenspielen, wie die Entwickler dies vorgesehen haben. Für solche Integrationstests ist daher eine andere Herangehensweise mit anderen Tools erforderlich. Bei Web-Anwendungen bietet es sich natürlich an, diese Tests direkt auf dem Frontend durchzuführen, da sich hier parallel die technische Funktionsfähigkeit und die fachliche Korrektheit testen lassen. EasyMock Ein zentrales Prinzip von Unit-Tests ist, in einem Test immer nur genau eine Klasse zu testen. Nun haben die meisten Klassen Abhängigkeiten zu anderen Klassen, die nicht verschwinden, weil gerade ein Test und nicht die ganze Anwendung ausgeführt wird. Für diese Abhängigkeiten muss ein Mock-Objekt erstellt werden, das die eigentliche Implementierung im Rahmen der Tests ersetzt. Die manuelle Erstellung und vor allem Pflege solcher Mock-Objekte ist recht zeitaufwendig, aber sie sind nun einmal unentbehrlich. Zur Lösung dieses Dilemmas sind mehrere Frameworks entstanden, die dynamische Mock-Objekte erzeugen können, die deutlich robuster gegenüber Änderungen sind. Ein Vertreter dieser Gattung ist EasyMock, das wir Ihnen vorstellen werden. Auch für Oberflächentests existiert eine Vielzahl von Tools, die sich anhand ihrer Vorgehensweise bei der Testerstellung in zwei Kategorien unterteilen lassen : Erstens in die Capture-and-Replay-Tools, die die Aktionen eines Anwenders auf der Web-Oberfläche aufzeichnen und diese dann automatisch beliebig oft abspielen können. Zweitens in die Tools, bei denen die einzelnen Testfälle mit einer echten Programmiersprache codiert werden. Beide Vorgehensweisen haben ihre Vor- und Nachteile. Daher werden wir Ihnen mit Sitewalker und Canoo Webtest jeweils einen Vertreter jeder Art vorstellen und daran exemplarisch die Besonderheiten erläutern. Was Sie lernen werden : Grundlagen von Software-Tests Erstellung von Tests mit JUnit 4 Testgetriebene Entwicklung Einführung in EasyMock Erstellung von Oberflächentests mit Canoo Webtest ▪ ▪ ▪ ▪ ▪ Voraussetzung : Programmiererfahrung in Java. Dauer : 2 Tage Haben Sie Fragen zu unseren Schulungen oder möchten Sie eine buchen ? Dann kontaktieren Sie uns : +49 (0) 69 904 736 1 - 0 oder [email protected] www.it-frankfurt.com 14 4 Design und JEE Patterns ▪▪ Design Patterns ▪▪ JEE Patterns 15 4 Design und JEE Patterns Softwareentwicklung ist kein neues Tätigkeitsfeld mehr, denn seit mehreren Jahrzehnten werden bereits Computerprogramme erstellt. Obwohl dabei kein Programm wie das andere ist, gibt es doch gewisse Problemstellungen, die sich in vielen Programmen in ähnlicher Form wiederfinden. Die Wahrscheinlichkeit, dass ein solches wiederkehrendes Problem in der Vergangenheit bereits einmal gelöst wurde, ist hoch. Wie immer in der Softwareentwicklung gibt es dabei verschiedene Möglichkeiten, eine Aufgabe zu lösen, die qualitativ besser oder schlechter sein können. Damit das Rad nicht immer wieder neu erfunden werden muss, existieren daher mittlerweile einige Kataloge an Musterlösungen für solche bei der Programmierung häufig auftretenden Anforderungen. Der wahrscheinlich bekannteste Katalog stammt von der sogenannten Gang of Four ( Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides ) : Design Patterns : Elements of Reusable Object-Oriented Software. 16 4 Design und JEE Patterns Design Patterns Die im Buch der Gang of Four beschriebenen Entwurfsmuster dienen als Grundlage für den ersten Teil dieser Schulung. Wir werden Ihnen eine Auswahl der am häufigsten verwendeten Entwurfsmuster vorstellen, mit Ihnen über das Für und Wider jedes Musters diskutieren und auch Beispiele dafür geben, an welchen Stellen in einem Programm das jeweilige Muster sinnvoll eingesetzt werden kann. Dabei werden Sie die Gelegenheit haben, jedes Muster selbst mindestens einmal zu implementieren. Dadurch ist es beispielsweise möglich, eine Java Enterprise Anwendung im besten Fall ganz ohne Änderung auf verschiedenen Applikationsservern zu betreiben. Im zweiten Teil der Schulung werden wir Ihnen zunächst die Hintergründe und die Ideen vorstellen, auf deren Basis die Java Enterprise Patterns basieren. Sie lernen die einzelnen Komponenten der Java Enterprise Spezifikation, deren Rolle in der Gesamtarchitektur sowie Anwendungsbeispiele dafür kennen. Nach dieser Einführung werden wir die einzelnen Schichten einer Java Enterprise Anwendung detailliert besprechen : Presentation Tier, Business Tier und Data Tier. Sie werden die JEE Patterns darin enthaltenen Standards und Patterns kennenlerOder : Was Sie schon immer über EJBs wissen wollten, nen und selbstverständlich auch Gelegenheit haben, diese beispielhaft zu implementieren. sich aber nie zu fragen trauten. Die allgemeinen Design Patterns stellen eher eine lose Sammlung an bewährten Musterlösungen dar, die inhaltlich erst einmal nichts miteinander zu tun haben. Natürlich lassen sich die einzelnen Patterns teilweise kombinieren, aber erst einmal ist jedes Pattern für die alleinige Verwendung beschrieben. Im Gegensatz dazu definieren die Java Enterprise Patterns einen standardisierten Satz von Regeln und Mustern, die jede Implementierung einhalten muss, um zur Java Enterprise Edition kompatibel zu bleiben. Was Sie lernen werden : Sinnhaftigkeit und Verwendung von Patterns Wichtige Entwurfsmuster der Gang of Four Grundlagen der Java Enterprise Patterns Implementierung gängiger Patterns ▪ ▪ ▪ ▪ Voraussetzung : Programmierkenntnisse Dauer : 5 Tage Haben Sie Fragen zu unseren Schulungen oder möchten Sie eine buchen ? Dann kontaktieren Sie uns : +49 (0) 69 904 736 1 - 0 oder [email protected] www.it-frankfurt.com 17 5 Anti Patterns ▪▪ Debugging und Refactoring ▪▪ Profiling ▪▪ Garbage Collection 18 5 Anti Patterns Ebenso wie erprobte Musterlösungen für häufig wiederkehrende Problemstellungen existieren ( siehe Schulung „ Design & JEE Patterns “ ) und eingesetzt werden, lassen sich viele Muster von nicht-optimalem Code, Architekturen oder Vorgehensweisen in vielen Projekten wiederfinden. Die Gründe dafür sind vielfältig : Hektik im Projektalltag, alte Gewohnheiten oder das fehlende Wissen um bessere Alternativen sind nur einige davon. In dieser Schulung wollen wir ein Bewusstsein für solche Anti Patterns wecken, indem wir einige häufig anzutreffende Muster vorstellen. Und natürlich werden wir auch Möglichkeiten aufzeigen, vorhandene Anti Patterns zu verbessern oder gleich ganz zu vermeiden. Verbesserungswürdige Muster finden sich in vielen Bereichen in der Softwareentwicklung. Diese Schulung richtet sich an Softwareentwickler, daher liegt der Schwerpunkt bei der Vorstellung der Anti Patterns auch bei der Codierung. Anhand von konkreten Codebeispielen erörtern wir, was daran verbessert werden kann. Besonderes Augenmerk legen wir dabei auf die Gründe, wegen denen der jeweilige Code besser anders geschrieben werden sollte, um so gemeinsam in der Gruppe Richtlinien für einen guten Code zu erarbeiten. 19 5 Anti Patterns Debugging und Refactoring Garbage Collection Es existieren Techniken und Tools, die die Entwickler bei der Erstellung qualitativ hochwertiger Codes unterstützen. Wir werden Ihnen vorstellen, welche Unterstützung die Entwicklungsumgebung Eclipse beim Debugging sowie bei der Überarbeitung von Code bietet. Außerdem stellen wir Ihnen einige Eclipse-Plugins vor, die helfen können, kritische Code-Stellen zu identifizieren und zu verbessern. Ein großer Vorteil von Java ist die automatische Speicherverwaltung, die den Entwicklern im Vergleich zu anderen Programmiersprachen viel Arbeit abnimmt. Der Garbage Collector organisiert die Objekte im Speicher und sorgt dafür, dass nicht mehr benötigte Objekte abgeräumt und der Speicher wieder freigegeben wird. Hin und wieder gibt es aber Situationen, in denen der Garbage Collector nicht optimal funktioniert und daher manuell getunt werden muss. Für diese Fälle stellen wir Ihnen daher die genaue Funktionsweise des Garbage Collectors und Möglichkeiten, seine Arbeitsweise zu konfigurieren, vor. Profiling Damit Anwender sinnvoll und gerne mit einer Anwendung arbeiten können, muss diese flüssig arbeiten und den Anwendern keine unnötigen Wartezeiten aufzwingen. Daher ist es wichtig, die Performance einer Anwendung von Anfang an im Blick zu behalten. Einige Performance-Killer werden wir Ihnen, nebst Möglichkeiten zur Behebung während dieser Schulung vorstellen. Für die Beurteilung der Performance und die Auswirkung von Änderungen am Code existieren natürlich Tools und Best Practices, die Sie im Rahmen dieser Schulung kennenlernen werden. Was Sie lernen werden : Aufbau und Besonderheiten der Sprache Prinzipien von Groovy Closures Verwendung exemplarischer Klassen aus dem Groovy JDK ▪ ▪ ▪ ▪ Voraussetzung : Programmierkenntnisse und Grundkenntnisse in Objektorientierter Programmierung. Dauer : 2 Tage Haben Sie Fragen zu unseren Schulungen oder möchten Sie eine buchen ? Dann kontaktieren Sie uns : +49 (0) 69 904 736 1 - 0 oder [email protected] www.it-frankfurt.com 20 6 Java Core Advanced ▪▪ Erweiterte Sprachfeatures seit Java 5 ▪▪ Collections Advanced ▪▪ Multithreading ▪▪ Annotationen 21 6 Java Core Advanced Obwohl es lange Zeit nicht danach aussah, wird Java doch noch aktiv weiterentwickelt. In dieser Schulung werden wir Ihnen die wichtigsten Neuerungen vorstellen, die seit Java 5 in die Sprache eingeflossen sind. Außerdem behandeln wir die Verwendung von Collections, die Erstellung nebenläufiger Anwendungen und – last but not least – die Erstellung eigener Annotationen. 22 6 Java Core Advanced Erweiterte Sprachfeatures seit Java 5 Multithreading In den letzten Jahren wurde Java um viele Features erweitert. Teilweise werden diese von vielen Entwicklern bereits ganz selbstverständlich verwendet. Einige der neuen Features scheinen sich jedoch noch nicht so sehr verbreitet zu haben. Zu Beginn der Schulung stellen wir daher kurz und knapp Neuerungen wie Autoboxing, Enumerationen, Varargs, NIO und JMX vor. Dabei kommen auch deren Besonderheiten zur Sprache, die teilweise nicht gleich offensichtlich sind. Die Entwicklung nebenläufiger Anwendungen mit den althergebrachten Klassen Thread und Runnable ist umständlich und fehleranfällig. In Java 6 und 7 wurden daher neue Klassen eingeführt, die das Thema Multithreading zumindest ein wenig vereinfachen. Executoren, Locks und Fork/Join sind keine neuen Methoden, um Java-Entwickler zu foltern, sondern Teil der neuen Möglichkeiten, nebenläufige Anwendungen zu entwickeln. Diese und noch einige mehr werden wir Ihnen ausführlich vorstellen und Ihnen die Gelegenheit geben, anhand von Übungsbeispielen erste Erfahrungen in der Verwendung zu sammeln. Anschließend stellen wir Ihnen noch Collections Advanced das Paradigma der nicht-blockierenden ProgrammieDie Auswahl der richtigen Collection ist in Java die halbe rung vor, das zum Ziel hat, nebenläufige Anwendungen Miete für einen kompakten Code. Neben den üblichen auf modernen Computern möglichst performant auszuListen, Sets und Maps, die nur kurz angeschnitten wer- führen. den, gibt es für spezielle Einsatzzwecke weitere Implementierungen, die dem Entwickler viel Arbeit ersparen und die Performance beträchtlich erhöhen können. Wir Annotationen werden diese Implementierungen vorstellen und mit Ihnen besprechen, welche Collection für welchen Anwen- Annotationen sind nicht neu und werden mittlerweile dungsfall am besten geeignet ist. Für noch speziellere ganz selbstverständlich verwendet. Daher werden wir Fälle existieren außerhalb des JDK noch weitere Collec- Annotationen an sich und Ihre Grundlagen nur kurz betion-Implementierungen, von denen wir Ihnen eine exem- handeln. Der Schwerpunkt liegt stattdessen auf der plarisch vorstellen. Als Überleitung zum nächsten The- Erstellung eigener Annotationen sowie den Möglichkeima steht schließlich noch die Synchronisierung von ten, wie und wann diese sinnvoll eingesetzt werden könCollections für den Zugriff aus mehreren Anwendungs- nen. Threads heraus auf dem Programm. Was Sie lernen werden : Erweiterte Sprachfeatures aus Java 5, 6, 7 Collections und deren Anwendung Neue Möglichkeiten für die nebenläufige Programmierung Erstellung und Anwendung eigener Annotationen ▪ ▪ ▪ ▪ Voraussetzung : Objektorientierte Programmierung und die Programmiersprache Java. Dauer : 4 Tage Haben Sie Fragen zu unseren Schulungen oder möchten Sie eine buchen ? Dann kontaktieren Sie uns : +49 (0) 69 904 736 1 - 0 oder [email protected] www.it-frankfurt.com 23 7 Spring ▪▪ Spring Dependency Injection ▪▪ Spring Aspect Oriented Programming ( AOP ) 24 7 Spring Spring ist zu der Zeit entstanden, als Java Enterprise Anwendungen zu Recht im Ruf standen, unnötig kompliziert, schwergewichtig und langsam zu sein. Ursprünglich war Spring mit dem Ziel gestartet, per Dependency Injection ( DI ) die Möglichkeit zu bieten, eine lose gekoppelte Anwendungsarchitektur zu realisieren. Damit sollte eine leichtgewichtige und einfach zu bedienende Alternative zu Java Enterprise Anwendungen geschaffen werden. Mit diesem Ziel rannte Spring bei vielen Entwicklern offene Türen ein, und innerhalb von wenigen Jahren hatte es sich zum de-facto-Standard für Dependency Injection entwickelt. Mittlerweile existieren zwar zahlreiche weitere Tools, die ähnliche Funktionen bieten, aber Spring ist nach wie vor das am weitesten verbreitete DI-Framework. Mittlerweile bietet Spring neben der Dependency Injection viele weitere interessante Module für eine Vielzahl ganz unterschiedlicher Anwendungsfälle. In dieser Schulung konzentrieren wir uns jedoch auf zwei dieser Module : Dem eigentlichen Kern von Spring, der Dependency Injection sowie der Aspektorientierten Programmierung. 25 7 Spring Spring Dependency Injection Eine lose gekoppelte Architektur, die flexibel genug ist, einzelne Komponenten problemlos auszutauschen. Die automatische Wiederverwendung von Objekten innerhalb einer Anwendung und möglichst wenig Abhängigkeit von irgendwelchen Frameworks im Code. Das sind Ziele, die jede Anwendung anstrebt, die meist aber nur schwer oder unmöglich zu erreichen sind. Durch die Dependency Injection rückt Spring diese aber in greifbare Nähe. Im Rahmen dieser Schulung werden Sie die Ideen, die hinter DI stecken, kennenlernen und erfahren, wie diese in Spring umgesetzt sind. Wir werden Ihnen die verschiedenen Möglichkeiten und Optionen, wie eine Anwendung mit Spring konfiguriert werden kann, vorstellen. Anhand zahlreicher Übungsaufgaben haben Sie die Möglichkeit, das Gelernte auszuprobieren und Ihr Wissen zu vertiefen. Spring Aspect Oriented Programming ( AOP ) mentiert werden und ist entsprechend unübersichtlich und schwer zu warten. Die Aspektorientierte Programmierung bietet die Möglichkeit, den Code für solche Anforderungen an eine zentrale Stelle auszulagern und zu definieren, an welchen Stellen in der Anwendung er ausgeführt werden soll. Das dient nicht nur der Übersichtlichkeit im Programm, sondern ermöglicht auch die Umsetzung völlig neuer Features, für die der Aufwand mit herkömmlichen Herangehensweisen viel zu hoch wäre. In dieser Schulung stellen wir Ihnen vor, wie Spring das Konzept der Aspektorientierten Programmierung umsetzt und wie es angewendet werden kann. Sie werden Aspekte, Joinpoints und Advices kennenlernen und diese auch selbst implementieren. Selbstverständlich präsentieren wir Ihnen auch Beispiele für Anforderungen, bei denen AOP sinnvoll eingesetzt werden kann. Objektorientierte Sprachen wie Java reduzieren die Komplexität bei der Anwendungsentwicklung ganz erheblich. In Java können Programme modularisiert und Klassen anhand ihrer Funktionen gegliedert werden. Dies ermöglicht es, auch bei umfangreichen Anwendungen noch den Überblick zu behalten. Für Anforderungen wie Logging, Security oder dem Transaktionshandling, die sich durch sämtliche Schichten einer Anwendung ziehen, hat jedoch auch die Objektorientierung keine Lösung. Der Code muss in allen Schichten getrennt imple- Was Sie lernen werden : Die wichtigsten Spring-Module Grundlagen Dependency Injection und Realisierung mit Spring Konfigurationsoptionen : XML und Annotationen Grundlagen Aspektorientierter Programmierung ( AOP ) Verwendung von Spring AOP ▪ ▪ ▪ ▪ ▪ Voraussetzung : Objektorientierte Programmierung, Java-Kenntnisse, Grundbegriffe verteilter Anwendungen. Dauer : 2 Tage Haben Sie Fragen zu unseren Schulungen oder möchten Sie eine buchen ? Dann kontaktieren Sie uns : +49 (0) 69 904 736 1 - 0 oder [email protected] www.it-frankfurt.com 26 8 JPA mit Hibernate ▪▪ Zusammenspiel JPA und Hibernate ▪▪ JPA-Konfiguration ▪▪ JPA, Hibernate und Spring 27 8 JPA mit Hibernate Letztlich dient fast jede Unternehmensanwendung nur dazu, Daten anzuzeigen, diese zu verändern und abzuspeichern. Meist liegen die Daten, mit denen eine Anwendung operiert, in einer Datenbank und müssen daher von dort gelesen und nach dort gespeichert werden. Für einen Java-Softwareentwickler ist dieses Lesen und Schreiben von und in eine Datenbank ein Technologiebruch. Intern arbeitet ein Programm mit Objekten und deren Variablen. Beim Lesen und Schreiben müssen diese Variablen nun Tabellen und Spalten in einer Datenbank zugeordnet werden. Genau hier setzt Hibernate an, indem es die Objektvariablen per Konfiguration den Tabelleninhalten zuordnet. Damit bietet Hibernate die Möglichkeit, ganze Java-Objekte aus einer Datenbank zu laden oder dort zu speichern. Hibernate übernimmt dabei das Befüllen bzw. Auslesen der Objektvariablen vollautomatisch. Hibernate ist das verbreitetste ORM-Tool ( Object Relational Mapping ), aber bei weitem nicht das einzige. Jedes Tool unterscheidet sich in der Konfiguration und der Anwendung, was dazu führt, dass sich kein Entwickler mit allen diesen Tools auskennt. Daher wurde 2006 die Java Persistence API ( JPA ) veröffentlicht, die eine vom eingesetzten ORM unabhängige Schnittstelle für den Zugriff auf relationale Datenbanken einführt. Mittlerweile unterstützen alle relevanten ORM auch JPA. Für die Entwickler bedeutet der Einsatz von JPA, dass sie den Datenbankzugriff fast ausschließlich über JPA-Bordmittel realisieren können und sich daher weniger mit den Details des verwendeten ORM auseinandersetzen müssen. 28 8 JPA mit Hibernate Zusammenspiel JPA und Hibernate JPA, Hibernate und Spring JPA definiert nur eine Schnittstelle für den Datenzugriff, beinhaltet selbst jedoch keinerlei Implementierung dafür. Daher ist beim Einsatz von JPA immer noch ein ORM notwendig, der, von JPA angesteuert, die eigentlichen Datenbankzugriffe erledigt. Wir werden Ihnen diese Aufgabenteilung zwischen JPA und Hibernate sowie die dafür erforderliche Konfiguration vorstellen. Dependency Injection ( DI ) ist mittlerweile aus keiner Anwendung mehr wegzudenken. Dementsprechend können und müssen natürlich auch JPA und Hibernate im verwendeten DI-Container so konfiguriert werden, dass sie über alle notwendigen Informationen verfügen und im Programm verwendet werden können. Am Beispiel von Spring werden wir Ihnen demonstrieren, welche Konfiguration dafür erforderlich ist. JPA-Konfiguration Die Basis-Konfiguration von JPA ist schnell erledigt, aber wie bei jedem Tool liegen die Feinheiten und Fallstricke in den Details. Die werden Sie im Rahmen dieser Schulung kennenlernen und erfahren, wie Sie diese im Projekt lösen können. Neben dem einfachen Mapping von Objektvariablen auf Tabellenspalten werden Sie erfahren, wie 1 :1, 1 :n und n :m-Mappings in JPA konfiguriert werden und diese Konfiguration an einem Beispiel auch selbst vornehmen. Was Sie lernen werden : Datenzugriff im Vergleich : JDBC und Hibernate Integration von Hibernate, JPA und Spring Objektrelationale Konfiguration mit JPA Datenbankzugriffe über den JPA EntityManager ▪ ▪ ▪ ▪ Voraussetzung : Programmierkenntnisse. Dauer : 4 Tage Haben Sie Fragen zu unseren Schulungen oder möchten Sie eine buchen ? Dann kontaktieren Sie uns : +49 (0) 69 904 736 1 - 0 oder [email protected] www.it-frankfurt.com 29 X 9 Java Web Anwendungen ▪▪ Java Server Faces und Spring Webflow ▪▪ Facelets und Richfaces 30 9 Java Web Anwendungen Web Anwendungen sind heutzutage weder für die Anwender noch für die Entwickler wegzudenken. Im Vergleich zu herkömmlichen Applikationen sind hierbei jedoch einige Besonderheiten zu beachten, zum Beispiel die Herausforderung, Benutzerinformationen über ein zustandsloses Protokoll zu speichern und abzurufen. Außerdem gilt es durch die wachsende Reife und Popularität ausgefeilter JavaScript-Frameworks mittlerweile wieder zu entscheiden, welche Teile der Anwendung auf dem Server und welche auf dem Client laufen sollen. Mit diesen und einigen weiteren grundlegenden Überlegungen zu den Basistechnologien einer Java Web Anwendung werden wir in diese Schulung einsteigen. Java Server Faces und Spring Webflow Java Server Faces ( JSF ) ist eines der oben erwähnten Web-Frameworks. JSF beinhaltet einerseits viele vorgefertigte Komponenten, aus denen Webseiten aufgebaut werden. Eingabefelder, Buttons, Dropdown-Boxen – für viele Oberflächenelemente bietet JSF Komponenten an. Andererseits übernimmt JSF automatisch die Anbindung dieser Oberflächenelemente an die Java-Objekte, mit denen die Business-Logik implementiert wird. Das Grundgerüst einer Web Anwendung ist damit schnell erstellt, was aber noch fehlt, sind die Verbindun- 31 gen zwischen den einzelnen Webseiten. Natürlich kennt JSF Navigations-Elemente, aber erst seit Version 2.2 kann JSF die Navigation über den sogenannten Flow logisch gruppieren und in den Gesamtkontext der Anwendung einbetten. Bisher wurde dafür meist Spring Webflow verwendet, das ebenfalls eine Gruppierung und Modularisierung des Frontends erlaubt. Beides werden wir Ihnen selbstverständlich nicht vorenthalten. 9 Java Web Anwendungen Facelets und Richfaces In den Anfangsjahren der Web Anwendungen mussten Java Entwickler die einzelnen Seiten in Form von Java Server Pages ( JSP ) programmieren. Im Lauf der Zeit entstanden für JSPs zwar zahlreiche Bibliotheken, die häufig benötigte Komponenten zur Verfügung stellen, doch haben diese nicht die grundlegende Schwäche von JSPs beheben können : Die Vermischung von Code für die Darstellung der Seiten mit Programmcode der Geschäftslogik. Mit den Facelets wurde daher eine ganz neue Technologie für die Gestaltung der Webseiten entworfen, die eine saubere Trennung des Oberflächendesigns von der Geschäftslogik ermöglicht. In der Regel werden Facelets im XHTML-Format erstellt, was den Einstieg sowohl für Softwareentwickler als auch für Webdesigner erheblich vereinfacht. Mit JSF, Facelets, RichFaces und Webflow lernen Sie in dieser Schulung einen mächtigen Technologiestack kennen, mit dem eine effiziente Erstellung von Web Anwendungen möglich ist. Gerade bei Web Applikationen kommt es bei der Entwicklungsgeschwindigkeit aber stark darauf an, mit welchen Frameworks sich ein Entwickler auskennt. Die zugrunde liegenden Prinzipien sind bei allen ähnlich, doch in der konkreten Ausgestaltung unterscheiden sich die Frameworks teilweise erheblich. Daher ist es nicht ohne weiteres möglich, das Know How, das sich Entwickler in einem Framework erarbeitet haben, auf ein anderes zu übertragen. Sollten Sie also ein anderes Framework einsetzen oder darüber nachdenken, sei es Vaadin, Wicket oder Spring MVC, dann informieren Sie uns darüber, damit wir die Inhalte dieser Schulung entsprechend anpassen können. Als Ergänzung werden wir Ihnen die Komponentenbibliothek RichFaces vorstellen, die viele komplexe Oberflächenelemente zur Verfügung stellt. Mit Hilfe von RichFaces ist es ein Leichtes, moderne Anforderungen an eine Web Anwendung mit wenigen Befehlen zu realisieren. Was Sie lernen werden : Besonderheiten von Web Anwendungen Anwendungsarchitektur moderner Web Anwendungen Einführung in Java Server Faces Frontend-Gestaltung mit Facelets, JSF und Richfaces Asynchrone Serveranfragen mit RichFaces über Ajax Flusssteuerung mit Spring Webflow ▪ ▪ ▪ ▪ ▪ ▪ Voraussetzung : Java-Kenntnisse, XML-Kenntnisse, Kenntnis über Aufgaben und der prinzipiellen Arbeitsweise eines Applikationsservers. Dauer : 3 Tage Haben Sie Fragen zu unseren Schulungen oder möchten Sie eine buchen ? Dann kontaktieren Sie uns : +49 (0) 69 904 736 1 - 0 oder [email protected] www.it-frankfurt.com 32 10 X Java Web Services ▪▪Web Services mit JAX-WS ▪▪Security und Co. ▪▪Nicht zu vergessen : der REST 10 Java Web Services Stellen Sie sich vor, Sie wollen mit einer Freundin sprechen, die in einem anderen Ort wohnt. Dort kommt jedoch ein anderes Telefonsystem zum Einsatz, daher kann keine Verbindung hergestellt werden. Die Softwareentwicklung stand lange vor einer ähnlichen Situation. Die Kommunikation mit Programmen, die in einer anderen Programmiersprache entwickelt wurden oder auf einer anderen Plattform liefen, war fast nur mit speziellen Übersetzungs-Komponenten möglich und dementsprechend aufwendig. Die daraus resultierenden Einschränkungen bei der Interoperabilität zwischen verschiedenen Programmen waren so gravierend, dass mit den Web Services eine Lingua Franca geschaffen wurde, die diesen Missstand beheben sollte und der dies auch weitgehend gelungen ist. Die eigentliche Kommunikation zwischen den beteiligten Systemen läuft dabei, wer hätte es gedacht, über XML. Web Services mit JAX-WS In dieser Schulung werden wir Ihnen nach einer allgemeinen Einführung in verteilte Services die Spezifikation JAX-WS in Version 2.0 ausführlich vorstellen. An der Versionsnummer ist bereits zu erkennen, dass Web Services bereits einen Reifungsprozess durchlaufen haben. Diesen werden wir Ihnen kurz vorstellen, um zu erläutern, wie die unterschiedlichen Ausprägungen und Versionen der Web Services miteinander kommunizieren können. 34 10 Java Web Services Web Services mit JAX-WS Nicht zu vergessen : der REST Bei der Erstellung von Web Services gibt es in Java zwei Herangehensweisen : Zum einen können Entwickler zunächst die Beschreibung des Web Services erstellen und sich daraus automatisch Stubs der erforderlichen Java-Klassen generieren lassen. Zum anderen ist der umgekehrte Weg, sich aus bestehenden Java-Klassen die Web Service-Beschreibung erzeugen zu lassen, ebenso möglich. Sie werden in dieser Schulung beide Wege kennenlernen und diese auch an einem praktischen Beispiel ausprobieren. REST-Schnittstellen sind mittlerweile ein fester Bestandteil der Anwendungsentwicklung geworden. Sie basieren auf einem reduzierten Web Services Stack und vereinfachen das Senden und Empfangen der Nutzdaten. Zum Abschluss der Schulung werden wir Ihnen einen Ausblick auf diese Technologie und die Zusammenhänge zu den Web Services geben. Security und Co. Nachdem Sie die Grundlagen von Web Services kennen, ist es Zeit für fortgeschrittene Themen. So lassen sich Web Services durch verschiedene Methoden wie beispielsweise Credentials, Kerberos oder Zertifikate absichern. Des Weiteren können sowohl der Anbieter als auch die Benutzer von Web Services Richtlinien definieren, die die Gegenstelle einhalten muss. Asynchrone Web Services, die über den Austausch von Adressinformationen erst möglich werden sowie die Deklaration des Transaktionshandlings in Web Services schließen diesen Block ab. Was Sie lernen werden : Einführung in WSDL und SOAP Benutzung von Werkzeugen : WSDL-Editor, SOAP-UI. Die JAX-WS-Spezifikation von Sun Implementierung von Web Services mit Java Erstellung von Web Service Clients mit Java Design-Grundlagen und Best Practices ▪ ▪ ▪ ▪ ▪ ▪ Voraussetzung : Objektorientierte Programmierung, die Programmiersprache Java. Grundbegriffe verteilter Anwendungen, besonders Web Anwendungen, Grundlagen von XML und XML-Schema. Dauer : 2 Tage Haben Sie Fragen zu unseren Schulungen oder möchten Sie eine buchen ? Dann kontaktieren Sie uns : +49 (0) 69 904 736 1 - 0 oder [email protected] www.it-frankfurt.com 35 11 Buildmanagement mit Maven ▪▪ Dependency Management ▪▪ Dokumentationserstellung 36 11 Build Management mit Maven Mit wachsendem Umfang und Komplexität der Softwareprojekte sind auch die Anforderungen an die verwendeten Build-Tools gestiegen. Builds mit Ant, das lange Zeit den de-facto-Standard für Builds im Java-Bereich darstellte, wurden immer undurchschaubarer und schwerer zu pflegen. Im Jahr 2002 schickte sich daher Maven an, den Buildprozess zu vereinfachen. Mittlerweile existieren mehrere ähnliche Tools, die einige Details besser gelöst haben als Maven. Aufgrund seiner Reife, der Integration in verschiedene Tools und der zahllosen Erweiterungen, die für Maven existieren, ist Maven aber nach wie vor ein hervorragendes Build-Tool. In dieser Schulung werden wir Ihnen die grundlegenden Konzepte und die Funktionsweise von Maven vorstellen. Wenn Sie schon immer einmal wissen wollten, wie Maven hinter den Kulissen tickt, sind Sie hier richtig. Da die einzelnen Build-Aufgaben in Maven durch Plugins realisiert sind, werden wir Ihnen die wichtigsten Plugins sowie deren Konfigurationsmöglichkeiten vorstellen. 37 11 Build Management mit Maven Dependency Management Maven ist zwar in erster Linie ein Build-Tool, kann aber darüber hinaus noch viel mehr. So ermöglicht es Maven den Entwicklern, die Bibliotheken, die von einer Anwendung benötigt werden, von Maven verwalten zu lassen. Das mühsame manuelle Zusammensuchen von Bibliotheken und deren Abhängigkeiten gehört damit der Vergangenheit an, da diese Informationen in der MavenKonfigurationsdatei enthalten sind. Die Funktionsweise und die Möglichkeiten, die das Maven Dependency Management bietet, werden Sie in dieser Schulung kennenlernen. Diese Schulung richtet sich an Entwickler, die noch keine oder nur wenig Erfahrung mit Maven haben. Die Behandlung fortgeschrittener Themen, wie zum Beispiel der Erstellung eigener Maven-Plugins lässt sich in der für diese Schulung vorgesehenen Zeit nicht behandeln. Falls Sie in dieser Hinsicht Interesse haben, lässt sich diese Schulung aber problemlos verlängern, um Ihre Fragestellungen ebenfalls abzudecken. Und selbstverständlich können Sie uns auch unabhängig von der Einführungsschulung ausschließlich für Ihre konkreten Themen buchen. Sprechen Sie uns einfach darauf an. Dokumentationserstellung Dokumentation ist in so gut wie jedem Projekt ein leidiges Thema, das eher stiefmütterlich behandelt wird. Doch auch wenn dedizierte Personen für das Thema Dokumentation verantwortlich sind, werden diese für Unterstützung durch ein Tool dankbar sein. Hier springt Maven in die Bresche, indem es die Möglichkeit bietet, sämtliche Informationen zu einem Projekt zeitgemäß als Website zu erstellen und zu veröffentlichen. Im Rahmen dieser Schulung erfahren Sie, was Maven in dieser Hinsicht zu bieten hat und wie Sie es für Ihre Projekte nutzen können. Was Sie lernen werden : Maven-Grundlagen : allgemeine Funktionsweise Verwaltung von Abhängigkeiten mit Maven Anwendungsmöglichkeiten und Definition von Profilen Erstellung der Projektdokumentation mit Maven Grundlagen von Continuous Integration ▪ ▪ ▪ ▪ ▪ Voraussetzung : Java-Kenntnisse, Grundlagen von XML, Grundlagen modularer Enterprise-Anwendungen. Dauer : 1 Tag Haben Sie Fragen zu unseren Schulungen oder möchten Sie eine buchen ? Dann kontaktieren Sie uns : +49 (0) 69 904 736 1 - 0 oder [email protected] www.it-frankfurt.com 38 12 X Einführung in Groovy ▪▪ Groovy Features 39 12 Einführung in Groovy In den letzten Jahren sind einige Programmiersprachen entstanden, die ebenfalls auf einer Java Virtual Machine ( JVM ) ausgeführt werden können, die sich aber erheblich von Java unterscheiden. Während Sprachen wie Scala oder Clojure angetreten sind, Java komplett zu ersetzen, fügt sich Groovy bei Bedarf auch nahtlos in bestehende Java-Anwendungen ein. Das bedeutet wiederum nicht, dass es nicht möglich wäre, mit Groovy auch komplexe Anwendungen zu erstellen. Das Web-Framework Grails beispielsweise basiert auf Groovy und wird auch in größeren Projekten eingesetzt. Groovy hat viele Konzepte von Skriptsprachen übernommen und wird daher gerne für Tests, schnelle Hacks und kleinere Programme, die die Entwickler sich für den Hausgebrauch schreiben, eingesetzt. Mit Groovy ist es möglich, mit wenigen Codezeilen ein Problem zu lösen, für das mit Java ein komplettes Programm mit mehreren Klassen notwendig wäre. Der Fokus dieser Schulung liegt daher auf den genannten Aspekten. Sie werden im Lauf des Kurses natürlich Hinweise für die Entwicklung voll ausgereifter Unternehmensanwendungen erhalten. Dieser Punkt wird jedoch nicht vertieft. 40 12 Einführung in Groovy Groovy-Features Ein interessanter Aspekt von Groovy ist die Möglichkeit, Codeblöcke an Methoden zu übergeben, die dann im Rahmen dieser Methode ausgeführt werden. Diese „ Closures “ genannten Codeblöcke ermöglichen sehr kompakte, aber dennoch lesbare und flexible Programme. Die Begeisterung, die Closures bei den Anwendungsentwicklern ausgelöst hat, ist sicherlich einer der Gründe, warum Closures unter dem Namen „ Lambda Expressions “ in Java 8 eingeführt wurden. Der Umgang mit Java-Klassen sowie den dazugehörigen Tools wird in dieser Schulung vorausgesetzt. Dieser Kurs ist daher eher für erfahrene Programmierer konzipiert, die bereits mit Java gearbeitet haben. Da Groovy auf dem Java Standard JDK basiert, lassen sich alle vorhandenen Klassen des JDK auch in Groovy nutzen. Um Groovy nutzen zu können, ist jedoch das Groovy JDK nötig. Dieses enthält einerseits neben den für die Ausführung von Groovy erforderlichen Binaries viele Groovy-Basisklassen, die in eigenen Projekten verwendet werden können. Andererseits erweitert das Groovy JDK auch etliche Standard-Java-Klassen aus dem Java JDK, um diese fit für die Verwendung in Groovy zu machen. Die wichtigsten dieser Erweiterungen sowie einige relevante Klassen aus dem Groovy JDK werden Sie während dieser Schulung kennenlernen. Was Sie lernen werden : Aufbau und Besonderheiten der Sprache Prinzipien von Groovy Closures Verwendung exemplarischer Klassen aus dem Groovy JDK ▪ ▪ ▪ ▪ Voraussetzung : Programmierkenntnisse und Grundkenntnisse in Objektorientierter Programmierung. Dauer : 2 Tage Haben Sie Fragen zu unseren Schulungen oder möchten Sie eine buchen ? Dann kontaktieren Sie uns : +49 (0) 69 904 736 1 - 0 oder [email protected] www.it-frankfurt.com 41 G Gesamte Leistungsübersicht Ausbildung IT Gesamte Leistungsübersicht Ausbildung IT Folgende Ausbildungsmaßnahmen werden von der IT Frankfurt GmbH angeboten : Know-how Transfer und Unterstützung Ihrer Mitarbeiter durch zielorientierte Mitarbeit in entscheidenden Phasen. Coaching Qualifizierung Ihrer Mitarbeiter durch praxisorientierte Schulungen. Training Train by Solve Bewertungen und Audits durch Experten-Gutachten – herstellerneutral und unabhängig. Die Synergie von Training und Coaching : Wir konzipieren und realisieren Workshops zu exakt Ihren Fragestellungen und Randbedingungen. Reviews Consulting Produkt- und Technologieberatung für ökonomische, ergonomische und technologisch nachhaltige Lösungen. Diese Bausteine können bedarfsgerecht konzipiert und zusammengestellt werden, um eine gesamtheitliche und nachhaltige Ausbildung Ihrer IT Fachkräfte zu gewährleisten. 42 I Impressum Impressum Herausgeber : IT Frankfurt GmbH Leipziger Straße 8 D-60487 Frankfurt a. M. Geschäftsführer : Horst Gaussmann Christian Männchen Peter Nobbe Karsten Schumann HRB Frankfurt a. M. 77078 USt.-ID DE814665310 Verantwortlicher für den Inhalt : Peter Nobbe Druck : Colour Connection GmbH Hanauer Landstraße 523 D-60386 Frankfurt a. Main. Für AGBs und weitere Infos besuchen Sie unsere Website : www.it-frankfurt.com 43 IT Frankfurt GmbH Leipziger Straße 8 60487 Frankfurt a. M. Telefon: +49 (0) 69 904 736 1 - 0 Telefax: +49 (0) 69 904 736 1 - 29 E-Mail: [email protected] Web: www.it-frankfurt.com