Besser leben durch Rebasing: Geschönte Entwicklungshistorie leicht gemacht dank Git

Registration

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

Termin

Der Vortrag (Ersatztermin für den ausgefallenen Termin im März) findet am 23.05.2018 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (Anfahrtsbeschreibung).

Abstract

Eine der ersten und wichtigsten Regeln, die jedem Git-Neuling eingetrichtert werden, ist, dass geteilte Zweige nicht durch Rebasing verändert werden dürfen. Andererseits wird jeder, der einmal ein Rudel Merge Diamonds gesehen hat, bestätigen, dass eine gut lesbare Projekthistorie anders aussieht.

Der Vortrag zeigt, wie durch sinnvolle Kombination von (interaktivem) Rebasing und Merging geteilter Entwicklungszweige eine gut gegliederte und leicht lesbare Versionshistorie inklusive Branches entstehen kann, ohne dass man zu viel seiner eigenen Vergangenheit vergisst.

Skills

Grundlegende Kenntnisse in Git sind von Vorteil.

Lernziele

  • Verstehen der grundsätzlichen Fragestellungen bei der (Re-)Integration von Git Branches (Merge vs. Rebase, Merge Commit vs. Fast-Forward Merge)
  • Kennenlernen der möglichen Vorteile und Risiken beim Einsatz von Rebasing
  • Erfahren, wie sich eine einfach lesbare und gut verständliche Versionshistorie in Git trotz Branches erzeugen lässt

Bio

Steffen Schluff ist der Leiter der Software Factory der OIO Orientation in Objects GmbH und verantwortlich für die in der Entwicklung eingesetzten Werkzeuge und Verfahren, wobei sein besonderes Interesse dem Thema Continuous Delivery gilt.

Property-Based Testing mit Java

Registration

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

Termin

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

Abstract

Testgetriebene Entwicklung in Java und anderen objektorientierten Sprachen setzt bislang meist auf beispielbasierte Testfälle, wie man sie leicht mit JUnit und ählichen Testframeworks erstellen kann. Schaut man jedoch über den Tellerrand und auf funktionale Programmiersprachen wie z.B. Haskell oder F#, findet man dort etwas anderes: Property-Tests.

Property-Tests basieren auf der Idee, die erwünschten Eigenschaften unseres Programms zu beschreiben und anschließend das Framework selbstständig Testfälle generieren zu lassen, die diese Eigenschaften bestätigen oder falsifizieren. In diesem Vortrag werde ich sowohl auf die Theorie hinter Property-based Testing eingehen als auch konkret zeigen, wie man mit jqwik unter Java und anderen JVM-Sprachen solche Tests umsetzen kann. Dabei spielen die Muster zum Finden der Properties eine wichtige Rolle.

Bio

Johannes Link beschäftigt sich schon seit Ende des letzten Jahrhunderts mit Extreme Programming und anderen agilen Ansätzen. Ein wesentlicher Schwerpunkt dabei war und ist die testgetriebene Entwicklung. Zu diesem Thema hat er bereits mehrere Bücher geschrieben und lernt dennoch immer noch dazu. Johannes war einer der Köpfe hinter der Konzeption und Umsetzung der JUnit-5-Plattform und ist zur zeit der einzige Haupt-Committer bei jqwik.net.

Besser leben durch Rebasing: Geschönte Entwicklungshistorie leicht gemacht dank Git

Der Vortrag muss leider kurzfristig wegen Krankheit verschoben werden! Der neue Termin findet am 23.05.2018 statt.

Registration

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

Termin

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

Abstract

Eine der ersten und wichtigsten Regeln, die jedem Git-Neuling eingetrichtert werden, ist, dass geteilte Zweige nicht durch Rebasing verändert werden dürfen. Andererseits wird jeder, der einmal ein Rudel Merge Diamonds gesehen hat, bestätigen, dass eine gut lesbare Projekthistorie anders aussieht.

Der Vortrag zeigt, wie durch sinnvolle Kombination von (interaktivem) Rebasing und Merging geteilter Entwicklungszweige eine gut gegliederte und leicht lesbare Versionshistorie inklusive Branches entstehen kann, ohne dass man zu viel seiner eigenen Vergangenheit vergisst.

Skills

Grundlegende Kenntnisse in Git sind von Vorteil.

Lernziele

  • Verstehen der grundsätzlichen Fragestellungen bei der (Re-)Integration von Git Branches (Merge vs. Rebase, Merge Commit vs. Fast-Forward Merge)
  • Kennenlernen der möglichen Vorteile und Risiken beim Einsatz von Rebasing
  • Erfahren, wie sich eine einfach lesbare und gut verständliche Versionshistorie in Git trotz Branches erzeugen lässt

Bio

Steffen Schluff ist der Leiter der Software Factory der OIO Orientation in Objects GmbH und verantwortlich für die in der Entwicklung eingesetzten Werkzeuge und Verfahren, wobei sein besonderes Interesse dem Thema Continuous Delivery gilt.

Refactoring to Java 10, 40 Jenkins Features and Plugins You Wished You Had Known!

Registration

Registration is optional, but for planning we would still prefer registration on our Meetup page.

Date

06.03.2018 at 19:00h at Uni Mannheim A5, 6, room C013 (How to get there).

Language

The talks will be held in English.

Abstract

Refactoring to Java 10

A sneak peek at the features that will (likely) be in Java 10. For each feature, we’ll explain what it’s trying to accomplish, what it’ll probably look like (with code examples!), and how you can already prepare your source code so that you’ll be ready once these features are released. For a few of these, we’ll show you how Project Lombok can bring the future to you, today!

We’ll explain:

  • Value types, as in, types that ‘code like a class, work like an int’. (JEP 169)
  • Generic specialization: List; you can finally do it! (JEP 218)
  • Pattern Matching. No, not the regular expression kind. Like switch(), but more versatile. (JEP 305)
  • var/val: declare variables and let the compiler sort out the types by looking at the expression you assign to it. (JEP 286)
  • Declaration-site generics. Ever wonder why you have to sprinkle ? extends all over the place to make complex generics work? This can help. (JEP 300)
  • Generics in enums. (JEP 301)
  • Domain objects (also known as ‘value classes’): No more writing / generating of getters, setters, equals, etcetera. (No JEP yet).

40 Jenkins Features and Plugins You Wished You Had Known!

Did you know that an average Jenkins installation has around 100 plugins installed to build and deploy software? And more and more plugins are added every day? Together with the new features in the weekly releases, Jenkins attempts to stay current in a competitive Continuous Integration and Continuous Deployment tooling landscape.

The downside of all these possibilities is that it is hard to wrap your head around what is possible with Jenkins and what are best practices.

At a rate of 1 tip per minute I’ll take you through some core and advanced features to successfully unleash the full potential of Jenkins in your CD process. Tips are applicable to both Jenkins novices and pros. So even if you know the differences between Declarative and Scripted Pipelines, you’ll probably pick up some new tricks.

Bio

Roel Spilker is a technology evangelist at TOPdesk. He’s been a professional java programmer and teacher since 1999. Roel has been a fan of compile-time checking. Together with Reinier Zwitserloot he is the inventor of Project Lombok, a compiler/IDE plugin to bring the java programming language into the next decennium.

Reinier Zwitserloot has been interested in programming language evolution ever since he started working with Java professionally 15 years ago. As a result, together with Roel Spilker he is the inventor of Project Lombok, a compiler/IDE plugin to bring the java programming language into the next decennium.

Joep Weijers is a Build Master at TOPdesk with a keen interest in delivering quality software continuously. He loves playing around with Jenkins Pipelines, Selenium, Docker and keeps in touch with his inner developer by educating his colleagues on testable Java code.

Refactoring mit monadischen Transaktionen

Registration

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

Termin

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

Abstract

Spätestens seit Java 8, gibt es monadische Typen in Java. Aber was bedeutet das eigentlich? Was sind die Eigenschaften die Monaden ausmachen? Und wo liegen unsere Schwierigkeiten beim Verständnis von Monaden? Dieser Vortrag beschreibt was eine Monade ist und wie wir eine monadische Transaktion nutzen können um in domänenspezifischer Sprache mit einer Datenbank zu reden. Hierbei bauen wir monadische Transaktionen in ein vorhandenes Repository ein. Weiter beleuchten wir die Vor- und Nachteile dieses Ansatzes und diskutieren die Unterstützung von Monaden in Java. Voraussetzung sind erste Erfahrungen mit funktionaler Programmierung und Lambdas.

Bio

Gregor ist einer der Organisatoren der Java User Group in Mannheim und freiberuflicher Softwareentwickler. Sein erstes Programm war ein in BASIC geschriebenes Text Adventure. Inzwischen schreibt er Fachartikel und hält Vorträge auf Konferenzen und User Groups.