Swagger first, make REST APIs great again.

Registration

Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer Meetup-Seite.

Termin

Der Vortrag findet am 04.05.2017 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt Anfahrtsbeschreibung.

Abstract

Die OpenAPI Spezifikation (Swagger Spezifikation) stellt Konstrukte zur Beschreibung von REST APIs bereit. In diesem Vortrag teile ich meine Projekterfahrungen, wie mit Hilfe der Swagger Spezifikation, das Bereitstellen und Konsumieren von REST APIs in größeren Teams vereinfacht werden kann. Ich zeige an einem Beispiel, das Swagger mehr als nur ein Interface zum “Browsen” von Endpunkten ist. Es werden anhand der Spezifikation Server-Stubs und Clients generiert. Darüber hinaus passen wir die Templates für eigene Zwecke an und integrieren sie in einem Maven Build.

Bio

Christian Schneider ist freiberuflicher Software-Entwickler und beschäftigt sich hauptsächlich mit neuen Technologien in den Themengebieten Java und Cloud-Computing. Er ist Mitgründer einer auf Web-Scraping spezialisierten Firma und entwickelt seit 2008 an einer Vielzahl von Projekten im Bereich Spring, Web und Web-Scraping führend mit. Darüber hinaus war er Dozent an der Fachhochschule in Heidelberg und arbeitet in seiner Freizeit u.a. an kleineren Software-Entwicklungsprojekten.

Lightning-Talks

Registration

Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer Meetup-Seite.

Termin

Der Vortrag findet am 01.06.2017 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (Anfahrtsbeschreibung).

Vorträge

19:00 Uhr: Serverless, auf dem Weg zu NoOps
Alex Krause

Auf dem Weg zu NoOps, für einen Euro im Monat Das Serverless Framework ermöglicht schnelle Entwicklung von Serverless Anwendungen, ein einfaches und automatisiertes Deployment auf AWS Lambda und die Integration mit AWS API Gateway. Aha und jetzt? Wir zeigen euch wie man mit wenig Aufwand und geringen Kosten Dienste in der Cloud betreibt.

19:30 Uhr: VersionEye Maven Plugin
Robert Reiz

Das VersionEye Maven Plugin prüft alle Abhängigkeiten zur Build Zeit und bricht den Build wenn eine Abhängigkeit eine bekannte Sicherheitslücke hat oder die Lizenz gegen eine vordefiniert Lizenz Whitelist verstösst.

20:00: Fehler als Werte - Ausnahmebehandlung in der funktionalen Programmierung
Mario Philipps

In imperativen Programmiersprachen erfolgt Fehlerbehandling in der Regel über das Werfen von Exceptions. Funktionale Sprachen hingegen betrachten Fehler meist als Werte, die ebenso wie andere Werte behandelt werden können.

Der Vortrag vergleicht den funktionalen mit dem imperativen Ansatz, und zeigt Vor- und Nachteile auf.

Spring Data MongoDB Deep Dive

Registration

Wir freuen uns über Eure Anmeldung auf unserer Meetup-Seite.

Language

The talk will be given in English.

Termin

Der Vortrag findet am 05.07.2017 um 19:00 Uhr in der Mafinex, in Kooperation mit der MongoDB Mannheim User Group statt.

Abstract

Spring Data is a high-level project in the Spring project portfolio for relational and NoSQL data stores. Spring Data MongoDB provides Document-to-Object mapping, an abstraction to work with MongoDB data and means to use MongoDB features efficiently. I’ll walk you in the More-Code-Than-Slides session through Spring Data basics, we’ll have a detailed look on the MongoDB Aggregation framework and you’ll learn which Mongo 3.4 features you can use already today with Spring Data MongoDB.

Bio

Mark Paluch (@mp911de) is a Software Craftsman working as Spring Data Engineer at Pivotal. He co-maintains MongoDB, Redis and Apache Cassandra modules and he’s project lead of the Lettuce Redis driver. Mark speaks regularly at German and international conferences and publishes articles about his work.

Vavr (previously known as Javaslang) - Functional Java the Easy Way

Registration

Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer Meetup-Seite.

Termin

Der Vortrag findet am 07.09.2017 um 19:00 Uhr im Mafinex Teil C, Julius-Hatry-Straße 1, 68163 Mannheim-Lindenhof im Besprechungsraum C4 statt (Anfahrtsbeschreibung).

Info

Bring your Laptop. We will write some Vavr-Code.

Abstract

This talk will introduce you to Vavr, a library that borrows heavily from Scala and applies Scala’s ideas to plain old Java. We will cover some of the productivity enhancements and syntactic sugar that Vavr offers, such as pattern matching aka. structural composition, value types and functional data types.

Vavr can be a building block for functional business code, that is easy to maintain and understand. It consists of a broad set of ideas and enhancements to Java and makes developing in a more-or-less functional style so much easier. Developers that have tried Scala but have to develop business assets using Java do not have to despair anymore.

This quick overview shows how to improve business code using Vavr using actual code from our projects (although anonymized for obvious reasons) and give a taste of the features and benefits a small library like Vavr offers.

Bio

David Schmitz is pricinpal architect at Senacor Technologies with a history of + 13 years of working in various projects using a bunch of different stacks and environments. Current focus is on migrating architectures and organizations, such that our customers can cope with the challenges of the digital age.

Datenbankzentrische Anwendungen mit Spring Boot und jOOQ

Registration

Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer Meetup-Seite.

Termin

Der Vortrag findet am 28.09.2017 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (Anfahrtsbeschreibung).

Abstract

In diesem Vortrag wird eine Variante datenbankzentrischer Anwendungen mit einer modernen Architektur vorgestellt, die sowohl in einer klassischen Verteilung als auch “cloud native” genutzt werden kann und dabei eine sehr direkte Interaktion mit Datenbanken erlaubt.

jOOQ ist eine von vielen Möglichkeiten, Datenbankzugriff in Java zu realisieren, aber weder eine Objektrelationale Abbildung (ORM) noch “Plain SQL”, sondern eine typsichere Umsetzung aktueller SQL Standards in Java. jOOQ “schützt” den Entwickler nicht vor SQL Code, sondern unterstützt ihn dabei, typsicher Abfragen in Java zu schreiben.

Spring Boot setzt seit 2 Jahren neue Standards im Bereich der Anwendungsentwicklung mit dem Spring Framework. Waren vor wenigen Jahren noch aufwändige XML Konfigurationen notwendig, ersetzen heute “opinionated defaults” manuelle Konfiguration. Eine vollständige Spring Boot Anwendung passt mittlerweile in einen Tweet.

Der Autor setzt die Kombination beider Technologien erfolgreich zur Migration einer bestehenden, komplexen Oracle Forms Client Server Anwendung mit zahlreichen Tabellen und PL/SQL Stored Procedures hinzu einer modernen Architektur ein. Das Projekt profitiert sehr davon, die Datenbankstrukturen nicht in einen ORM “zu zwängen”.

Der Vortrag demonstriert, wie Spring Boot genutzt wird, um den Kontext für jOOQ vorzubereiten (Datenbankverbindung, Transaktionen etc.) und anschließend fortgeschrittene, analytische Abfragen als HTTP apis zu veröffentlichen.

Auf dem Weg dorthin wird ebenfalls über Datenbankmigrationen gesprochen und wie auch an dieser Stelle die Magie von Spring Boot eingesetzt werden kann, um Entwicklungs-, Test- und Produktivdatenbanken synchron zu halten.

Kann Domain Driven Design von spezialisierten SQL-Abfragen profitieren? Die Gefahr ist groß, JPA-Entities mit Entitäten aus Evans’ DDD Buch zu verwechseln und zu meinen, man ist fertig mit DDD. Vielleicht ist es eine gute Idee, auch für DDD Entitäten und Value-Objekte spezialisierte Abfragen zu verwenden.

Bio

Michael Simons ist Software-Architekt (CPSA-F) bei ENERKO Informatik in Aachen und entwickelt dort GIS-, EDM- und Vertriebsmanagement-Systeme für Stromnetzbetreiber und Energielieferanten. Michael ist Mitglied des NetBeans Dream Team und Gründer der Euregio JUG. Er schreibt in seinem Blog info.michael-simons.eu über Java, Spring und Softwarearchitektur.

Auf Twitter unterwegs als rotnroll666, unter anderem mit Java, Music und den kleineren und größeren Problemen als Ehemann und Vater von 2 Kindern.