Speaker

Marco Emrich

Marco Emrich

Consultant and software crafter at @codecentric

Consultant und Software Crafter bei @codecentric

Nürnberg, Germany

Marco is a Senior Consultant at codecentric. He is a passionate advocate of software craft and code quality. Marco lectures regularly at well-known conferences and is author of several programming books. When he is not organizing the Softwerkskammer Nuremberg (developer meetup), he is probably explaining to his son how to program robotic turtles.

Marco ist Architekt und Consultant bei codecentric und leidenschaftlicher Verfechter von Software Craft und Codequalität. Er hält regelmäßig Vorträge auf bekannten Konferenzen, ist Autor mehrerer Fachbücher und twittert als @marcoemrich. Wenn er mal nicht tief im Code vergraben ist, zocken ihn seine Kinder in analogen Brettspielen ab.

Area of Expertise

  • Information & Communications Technology

Topics

  • Software Crafting
  • functional programming
  • TDD
  • ReasonML
  • JavaScript
  • TypeScript
  • Ruby
  • clear code
  • ReScript
  • Software Architecture

Sessions

Workshop: Domain Modelling with TypeScript en de

Modern collaborative methods such as event storming bring experts and development teams together. "(Functional) Domain Modeling" goes one step further and enables collaborative work on code. In this workshop you can try it out "hands-on". Our PO explains the domain and we work out a common understanding in event-storming. Then we model the domain using the TypeScript type system. This enforces invariants already at compile time and experts can give feedback on the code directly. The goal of the workshop is not only to use the TypeScript type system for modeling, but also to practice communicating with POs, Requirement Engineers, customers and other subject matter experts!

Workshop: Domänenmodellierung mit TypeScript en de

Moderne kollaborative Methoden wie Event-Storming bringen Fachleute und Entwicklungsteams zusammen. Ihr habt das Event-Storming Ergebnis schon in der Tasche? Wie geht es weiter?

Eine Möglichkeit ist "(Functional) Domain Modelling". Es ermöglicht gemeinsame Arbeit direkt am Code. In diesem Workshop könnt Ihr es "hands-on" erproben. Unser PO bringt die Ergebnisse einer Event-Storming-Session mit. Auf dieser Basis modellieren wir die Domäne mithilfe des TypeScript-Typsystems. Das erzwingt Invarianten bereits zur Compilezeit und Fachleute können direkt Feedback zum Code geben. Ziel des Workshops ist es, nicht nur das TypeScript-Typsystem zur Modelling zu verwenden, sondern auch die Kommunikation mit POs, Requirement Engineers, Kunden oder anderen Fachexperten zu üben!

Workshop: Hexagonal Architecture for Web Frontends en de

For a long time the acronym WWW stood for Wild Wild West rather than World Wide Web. Architecture patterns and clear software design principles were often the exception rather than the rule. It was only with the last major framework wave of this decade and the triumphant advance of SPAs that a long overdue rethink began.

However, newer technologies do not automatically lead to a better architecture. It is still necessary to use architecture patterns consciously and purposefully. One of the best known patterns in Domain Driven Design is the "Hexagonal Architecture". You will learn:

* when it is worth using it,
* how the pattern distinguishes itself from others (e.g. onion architecture),
* and how to put it into practice.

We provide a prepared application with "holes" which the participants need to fill, while they implement new features based on business requirements.

Workshop: Sechseckige Webseiten? Hexagonale Frontend Architektur! en de

Gefühlt stand das Akronym WWW lange Zeit eher für Wild Wild West statt World Wide Web. Architekturmuster und klare Software-Design-Prinzipien waren oft eher die Ausnahme als die Regel. Erst mit der letzten großen Frameworkwelle dieses Jahrzehnts und dem Siegeszug von SPAs begann ein längst notwendiges Umdenken.

Neuere Technologien führen aber nicht automatisch zu einer besseren Architektur. Es gilt, nach wie vor, Architekturmuster bewusst und gezielt einzusetzen. Eines der bekanntesten Muster im Domain Driven Design ist die "Hexagonale Architektur". Sie lernen:

* wann sich der Einsatz lohnt,
* wie sich das Mustern von anderen (z.B. Onion-Architektur) abgrenzt
* und wie Sie es in der Praxis umsetzen.

Workshop: From Vision to Code: Functional Domain Modelling en de

Modern collaborative methods such as event storming help to bring together subject matter experts and developers. Functional Domain Modeling goes one step further and enables joint work directly on the code. This workshop gives you the opportunity to try out the approach on a practical example.

You will be assisted by a PO who will explain the functionalities to you. First, we work out the big picture in event storming. Then, in small groups, we model the domain using a functional type system. This enforces invariants already at compile time and domain experts have the opportunity to give direct feedback on the code.

The goal of the workshop is not only to use the type system correctly for domain modeling, but also to practice communication with POs, customers and other domain experts.

Functional modeling is done with sketch.sh in the browser - no installation is required.

Workshop: Domain Driven Design von der Vision bis in den Code: Functional Domain Modelling en de

Moderne Kollaboration-Methoden wie Event-Storming helfen Fachexpert*Innen und Entwickler*Innen zusammenzubringen. "Domain Modelling" geht dann noch einen Schritt weiter und ermöglicht die gemeinsame Arbeit direkt am Code. Dieser Workshop bietet die Möglichkeit, das Vorgehen an einem praktischen Beispiel zu erproben.

Ihr bekommt einen PO zur Seite gestellt, der euch die Fachlichkeit erklärt. Zunächst erarbeiten wir im Event-Storming das Big Picture. Anschließend modellieren wir in kleinen Gruppen die Domäne mithilfe eines funktionalen Typsystems. Das erzwingt Invarianten bereits zur Compilezeit und Fachexpert*Innen haben die Möglichkeit, direkt Feedback zum Code zu geben.

Ziel des Workshops ist es, nicht nur das Typsystem richtig zum Domain Modelling zu verwenden, sondern auch die Kommunikation mit POs, Kunden und anderen Fachexperten zu üben.

Mutation Testing with Stryker en de

You write unit tests in your team? Of course you do! But are those tests sufficient? Coverage tools provide an answer.

Unfortunately, coverage analysis is often insufficient. Even test suites with 100% code coverage often miss bugs. Some test suites bring only little added value in practice.

With Mutation Testing you can check the quality of your tests yourself! Stryker puts your tests to the test. You get a more realistic statement, how well your suite can actually find errors and learn how to improve it. The tool integrates into your project and pipeline with little effort and gets results fast!

Learning Objectives:

* Understand why 100% coverage means little
* Integrate Stryker into your own projects
* Improve test suites with the help of mutation reports

Mutation Testing mit Stryker en de

Ihr schreibt Unit-Tests im Team? Natürlich tut ihr das! Aber sind die Tests auch ausreichend? Coverage-Tools haben darauf eine Antwort.

Leider sind Coverage-Analysen aber oft unzureichend. Selbst Test-Suites mit 100% code-coverage übersehen oft Fehler. Manche Test-Suites bringen in der Praxis nur wenig Mehrwert.

Mit Mutation Testing könnt ihr die Qualität eurer Tests selbst prüfen! Stryker stellt eure Tests auf den Prüfstand. Ihr erhaltet eine realistischere Aussage, wie gut eure Suite tatsächlich Fehler finden kann und erfahrt, wie ihr sie verbessert. Das Werkzeug lässt sich mit wenig Aufwand in Projekt und Pipeline integrieren und sorgt schnell für Ergebnisse!

Lernziele:

* Verstehen warum 100% coverage wenig aussagt
* Stryker in eigene Projekte einbinden
* Test-Suites mit Hilfe von Mutation-Reports verbessern

Workshop: JavaScript Testing 2023 de

In den letzten Jahren sind die Testwerkzeuge im JavaScript-Umfeld förmlich explodiert. Doch was bedeutet es eigentlich, aktuelle Webanwendungen mit modernen Mitteln zu testen? Dieser Workshop schaut hinter die Kulissen, macht dich mit ausgewählten prominenten Vertretern vertraut und bietet reichlich Tipps und Tricks beim Einsatz von:

* Unit-Testing und Mocks
* Mocking & Stubbing
* IDE-Support
* Komponenten-Tests für die UI
* End-To-End-Tests mit Cypress

Bitte bringe dein eigenes Notebook mit installierter Node.js-Umgebung mit.

Workshop: Schools of Test-Driven-Development en de

Not all TDD is the same. Over the years, developers have developed different styles and approaches. Some of them have a name and are described in detail, such as London or Chicago - the schools of test-driven development.

Here we consider seven different schools of TDD, which differ fundamentally in their methodology. Nevertheless, they are not mutually exclusive. In this workshop, you will have the opportunity to learn about the different schools and which approach is best suited in which context.

After a short introduction, we will try out the different approaches together in pair or mob programming. This way you will not only get to know the theoretical basics, but also practice the practical application.

Workshop: Schulen der testgetriebenen Entwicklung en de

TDD ist nicht gleich TDD. Im Laufe der Jahre haben EntwicklerInnen unterschiedlichste Stile und Herangehensweisen entwickelt. Manche davon haben einen Namen und sind detailliert beschrieben, wie z.B. London oder Chicago - die Schulen der der testgetriebenen Entwicklung.

Wir betrachten hier sieben verschiedene TDD-Schulen, die sich grundlegend in ihrer Methodik unterscheiden. Dennoch schließen sie sich nicht gegenseitig aus. In diesem Workshop habt ihr die Gelegenheit, die verschiedenen Schulen kennen zu lernen und zu erfahren, welcher Ansatz sich in welchem Kontext am besten eignet.

Nach einer kurzen Einführung probieren wir die verschiedenen Ansätze gemeinsam im Pair- oder Mob-Programming aus. Dadurch lernt ihr nicht nur die theoretischen Grundlagen kennen, sondern übt auch gleich den praktischen Einsatz.

Neue Schulen der testgetriebenen Entwicklung de en

TDD ist nicht gleich TDD. Im Laufe der Jahre haben EntwicklerInnen unterschiedlichste Stile und Herangehensweisen entwickelt. Manche davon haben einen Namen und sind detailliert beschrieben, wie z.B. London oder Chicago - die Schulen der der testgetriebenen Entwicklung.

Neben den bewährten TDD-Schulen wie London oder Chicago, gibt es aber auch neuere wie München oder St. Pauli. Wir schauen uns an, was sie zu bieten haben und wann sich der Einsatz lohnt.

Full-Day Workshop: Event-Storming und Domain Modelling mit Mainstream Sprachen de en

Moderne Kollaboration-Methoden wie Event-Storming helfen Fachexpert*Innen und Entwickler*Innen zusammenzubringen. "Domain Modelling" geht dann noch einen Schritt weiter und ermöglicht die gemeinsame Arbeit direkt am Code. Dieser Workshop bietet die Möglichkeit, das Vorgehen an einem praktischen Beispiel zu erproben.

Ihr bekommt einen PO zur Seite gestellt, der euch die Fachlichkeit erklärt. Zunächst erarbeiten wir im Event-Storming das Big Picture. Anschließend modellieren wir in kleinen Gruppen die Domäne mithilfe eines Typsystems. Dafür könnt ihr TypeScript oder Kotlin einsetzen. Das erzwingt Invarianten bereits zur Compilezeit und Fachexpert*Innen haben die Möglichkeit, direkt Feedback zum Code zu geben.

Ziel des Workshops ist es, nicht nur das Typsystem richtig zum Domain Modelling zu verwenden, sondern auch die Kommunikation mit POs, Kunden und anderen Fachexperten zu üben.

New Schools of TDD de en

Not all TDD is the same. Over the years, developers have developed a wide variety of styles and approaches. Some of them have a name and are described in detail, such as London or Chicago - the schools of test-driven development.

In addition to the established TDD schools such as London or Chicago, there are also newer ones such as Munich or St. Pauli. We take a look at what they have to offer and when they are worth using.

Full-Day Workshop: Event-Storming and Domain Modelling with your Programming Language! de en

Modern collaboration methods such as event storming help to bring experts and developers together. "Domain modeling" goes one step further and enables joint work directly on the code. This workshop offers the opportunity to try it out using a practical example.

You will be assigned a PO who will explain the business aspects to you. First, we develop the big picture in event storming. We then model the domain in small groups using a type system. You can use TypeScript or Kotlin for this. We will enforce invariants already at compile time and our domain experts have the opportunity to give direct feedback on the code.

The aim of the workshop is not only to use the type system correctly for domain modeling, but also to practice communicating with POs, customers and other domain experts.

Six-sided websites? Hexagonal frontend architecture! en

It felt like the acronym WWW stood for Wild Wild West for a long time. Architectural patterns and principles were often the exception in the front end. It was only with the last big wave of frameworks and the triumph of SPAs that a long-needed rethink began.
However, newer technologies do not automatically lead to better architecture. It is still important to use architecture patterns in a targeted manner. One of the best-known patterns in domain-driven design is the hexagonal architecture. When is it worth using and how does it work in practice?

Developer Week '23 Sessionize Event

June 2023 Nürnberg, Germany

Domain-Driven Design Europe 2023 Sessionize Event

June 2023 Amsterdam, The Netherlands

WeAreDevelopers World Congress 2022 Sessionize Event

June 2022 Berlin, Germany

Domain-Driven Design Europe 2021 Sessionize Event

February 2021

Web Developer Conference 2020 Sessionize Event

October 2020 Hamburg, Germany

Developer Week '20 Sessionize Event

June 2020 Nürnberg, Germany

KanDDDinsky Sessionize Event

October 2019 Berlin, Germany

Marco Emrich

Consultant and software crafter at @codecentric

Nürnberg, Germany

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top