Worum es bei uns geht

Bei uns dreht sich alles um Software Craftsmanship & Testing. Wir möchten uns – als Regionalgruppe der http://www.softwerkskammer.org – der vollen Bandbreite der Softwareentwicklung widmen.

Findet uns auf YouTube https://goo.gl/nfvcEA

Alle Interessierten sind hiermit zu Themenabenden, Vorträgen, Workshops und Diskussionsrunden oder einfach zum Austausch herzlich eingeladen. Egal ob du selbst schon Entwickler bist, es werden möchtest oder noch studierst, jeder darf sehr gerne mitmachen oder einfach nur mal vorbeischauen.

Mehr über uns erfahrt Ihr auf unseren anderen Känälen:

http://www.jenadevs.org | http://www.meetup.com/jenadevs | http://www.twitter.com/jenadevs | http://www.medium.com/jenadevs | http://www.facebook.com/jenadevs | http://www.github.com/jenadevs | http://www.xing.to/jenadevs | http://www.jena.today

Team: Benjamin Nothdurft, Andreas Grohmann

Bevorstehende Events (5+)

Microservices love Domain-Driven Design (Michael Plöd)

Agenda - 18:00 Doors Open - 18:15 Kurzvorstellung - 18:30 Vortrag: Microservices love Domain-Driven Design! Why and how? (60 min) - 19:30 Pause (15-20 min) - 19:45 TBA (60 min) - 21:00 Doors Close und Auskland in der Wagnergasse Vortrag: Microservices love Domain-Driven Design! Why and how? With the emergence of Microservices, Domain-Driven Design has become a relevent way for looking at implementing business contexts in software. This talk explains how the patterns and concepts of Domain-Driven Design relate to Microservice architectures. We will see that Microservices are not only about Bounded Contexts and that there is much more to DDD than Entities and Aggregates. In addition to that I will show how Domain Driven Design will help you to structure and model your Microservices in terms of granularity, business context and interface design (just to name a few). Finally, we will look into migrating existing monolithic applications with the help of patterns laid out in DDD. Referent: Michael Plöd – www.twitter.com/bitboss Michael ist Principal Consultant bei innoQ. Seine aktuellen Interessengebiete sind Microservices, Domain-driven Design, polyglotter Persistenz, Alternativen zu alt eingewachsenen Softwarearchitekturen, Event Sourcing und Präsentationstechniken für Entwickler und Architekten.

Einführung in Rust (Christian Kauhaus)

JAT - Jenaer Antriebstechnik GmbH

An diesem Abend möchten wir uns mit Rust beschäftigen. Mit Christian Kauhaus haben wir als Referenten wieder einen Lokalmatador gewinnen können, der sich seit mehr ca. 2 Jahren intensiv mit der Sprache und deren Konzepten beschäftigt und diese schon in Teile des Produktionscodes im Infrastrukturumfeld eingeführt hat. Rust ist dafür prädestiniert im Umfeld des klassischen Engineerings (Physik, Elektronik) als auch in der Webentwicklung (performantes Backend z.B. als Alternative zu Go) eingesetzt zu werden. Agenda: 18:00 Doors open 18:15 Willkommen vom Host und der Softwerkskammer Jena 18:30 Vortrag zu Rust 19:30 Pause 20:00 Übungen zu Rust 21:00 Ende 21:30 Doors close Vortrag und Übungen: Einführung in Rust - Performance, Sicherheit, Parallelisierung Rust ist eine relativ junge Programmiersprache mit Schwerpunkt auf Low-Level- und ressourcenkritischen Anwendungen. Hauptziele der ursprünglich von Mozilla vorangetriebenen Entwicklung sind Performance, Sicherheit und Parallelisierung. Wichtige Anwendungen sind u.a. Netzwerk-Backends, Embedded Systems und Systemprogrammierung. Rust hat darüber hinaus Verbreitung als Allzweck-Programmiersprache gefunden und wird zunehmend als Alternative zu C und C++ gesehen. Diese Eigenschaften bekommt Rust maßgeblich durch ein spezielles Speicherzugriffsmodell (Borrowing/Lifetimes), das sich von denen anderer Programmiersprachen stark unterscheidet und Einarbeitung erfordert. Sobald man diese Hürde überwunden hat, wird man mit einem hohen Maß an Programmzuverlässigkeit, sicherer Nebenläufigkeit sowie Programmierabstraktionen ohne (oder mit nur geringem) Laufzeitaufwand belohnt. Rust ist attraktiv für Programmierer aus verschiedenen Anwendungsdomänen. Die Sprache eignet sich gleichermaßen für API Backends, die bei Antwortzeiten im Mikrosekundenbereich und unter hoher Transaktionslast stabil laufen müssen, wie auch für Microcontroller Steuerungen mit hohen Zuverlässigkeitsanforderungen. Weiterhin findet sie wegen ihrer Performanceeigenschaften auch Verbreitung in der Spieleentwicklung und sogar im Web-Frontendbereich (Web Assembly). Ich möchte den Abend zweiteilen: In der ersten Hälfte präsentiere ich wichtige Sprachkonzepte von Rust. In der zweiten Hälfte möchte ich euch mit praktischen Übungen am Rechner erste Programmiererfahrungen machen lassen. Vorkenntnisse: Programmiererfahrung in einer anderen Programmiersprache, Umgang mit Editor und Compiler. Mitbringen: Laptop - idealerweise mit bereits installiertem Rust. Compiler für gängige Systeme gibt es kostenlos auf https://rustup.rs/ Referent: Christian Kauhaus / www.twitter.com/ckauhaus Christian arbeitet bei Flying Circus Internet Operations (Halle/Saale) als Systems Engineer.

Property-based Testing (Johannes Link)

PDV-Systemhaus GmbH

Voraussichtliche Agenda - 18:00 Doors Open - 18:15 Kurzvorstellung - 18:30 Vortrag: Property-Based Testing (60 min) - 19:30 Pause (15-20 min) - 19:45 Workshopteil mit Übungen zu Property-Based Testing (30 min) - 20:30 Doors Close Vortrag: Property-Based Testing Testgetriebene Entwicklung in Java und anderen objektorientierten Sprachen setzt bislang meist auf beispielbasierte Testfälle, wie man sie leicht mit JUnit und ähnlichen 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. Referent: Johannes Link Johannes 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.

Refactoring mit Connascence (Thorsten Brunzendorf)

Agenda: 18:00 Doors Open 18:15 Willkommen von der Softwerkskammer 18:30 Refactoring mit Connascence 21:15 Ende 21:00 Doors Close & Ausklang bei Bier und Cocktails im Willy B (Hbf) Talk & Workshop: Refactoring mit Connascence "Red - Green - Refactor" - Dieser Zyklus ist das Mantra des Test Driven Development: Schreibe einen zunächst fehlschlagenden Test ("Red"), dann sorge möglichst einfach dafür, dass der Test durchläuft ("Green"), anschließend verbessere das Design ("Refactor"). Leicht gesagt, aber was soll dieses Refactoring überhaupt? Und was ist das eigentlich, gutes Design? Wie könnte der nächste Schritt dorthin konkret aussehen? Ich möchte euch hier das Konzept "Connascence" (www.connascence.io) vorstellen, das den Begriff der Kopplung pragmatisch erweitert und damit eine Metrik und ein Vokabular für besseres Software-Design anbietet. Wir werden dann eine Pair Programming Kata durchführen, bei der Connascence als Richtschnur beim Refactoring angewendet werden soll, und können danach diskutieren, ob und wie uns das geholfen hat. Zum Mitmachen benötigt ihr wie immer euer eigenes Notebook mit vorinstallierter Unit-Test-Umgebung eurer Wahl. Trainer: Thorsten Brunzendorf / www.twitter.com/thbrunzendorf

Vergangene Events (25)

Integration Testing Done Right (Sandra Parsick)

Xceptance Software Technologies GmbH

Fotos (333)