building a product

building a product

By Sven Wiegand – orgavision GmbHTechnology
Download on the App Store

building a product episodes

  • 006: Automatische Tests im Frontend
    Sascha führt uns durch die Teststrategien, die wir in unserem react-Frontend nutzen. Dabei gehen wir auf folgende Themen ein:
    • Unit-Tests mit Jest
    • Integration-Tests mit Jest und React Testing Library
    • Umstieg von Enzyme zu React Testing Library
    • Vor- und Nachteile von React Testing Library
    • DOM- und Image-Snapshot-Tests mit Storybook und Chromatic
    • Wirtschaftlichkeit automatischer Tests im Frontend
    1 hr 1 min
  • 005: Automatische Tests im Backend
    Benjamin führt uns durch die Teststrategien, die wir in unserem kotlin-ktor-Backend nutzen. Dabei sprechen wir unter anderem über folgende Themen:
    • kotest (Vergleich mit JUnit (und ScalaTest), Test-Stile, Assertions, …)
    • Automatische Generierung von Testdaten
    • Property-based Testing
    • Mocking mit MockK
    • Unit- vs. Integration-Tests
    • Wirtschaftlichkeit automatischer Tests
    1 hr 7 min
  • 004: Henne oder Ei: Was brauchen wir zuerst?
    Benjamin und Sven unterhalten sich über die alltäglichen Herausforderungen während der Entwicklung eines Produkts, das von Grund auf entsteht.

    Die Herausforderungen dabei:
    • Wo sollen wir starten?
    • Fehlende Frameworks und Grundlagen für Datenbankzugriffe, Validierung und Fehlerbehandlung
    • Aufbaue einer Code- und Package-Struktur
    • Anbindung an externe Dienste wie Datenbanken, Message-Broker und Mail-Server
    Wie gewohnt schweifen wir dabei ab und reden über
    • Type-driven Development
    • Funktionale Fehlerbehandlung
    • ktor-Module
    • DAO-Schnitte
    Unter Berücksichtigung all dieser Herausforderungen fragen wir uns, ob die Umsetzung der fachlichen Funktionalität als Self-contained-System wirklich eine gute Idee war.

    Bei der Erkenntnis der Woche gibt's (mal wieder) ein Loblied von Benjamin auf jOOQ (und nein: Wir werden nicht dafür bezahlt).

    Code-Beispiel zum funktionalen Fehlerhandling mit either und bindfun readTeams(): Either> { ... }
    fun readUsers(): Either> { ... }
    fun assignUserToTeam(user: User, team: Team): Either { ... }
    suspend fun addAllUsersToAllTeams(): Either =
    either {
    val teams = readTeams().bind()
    val users = readUsers().bind()
    teams.forEach { team ->
    users.forEach { user ->
    assignUserToTeam(user, team).bind()
    }
    }
    }
    Links
    • Arrow: „Functional companion to Kotlin's Standard Library“
    • jOOQ: „Build type save SQL queries through a fluent API“
    • valiktor: „Type-safe, powerful and extensible fluent DSL to validate objects in Kotlin“
    55 min
  • 003: Unser Frontend-Technologie-Stack
    Sascha und Sven führen durch unseren Frontend-Technologie-Stack und erklären, warum wir uns für genau diese Komponenten entschieden haben und weshalb alternative Lösungen ausgeschieden sind.

    Technologien
    • TypeScript
    • React
    • Redux
    • Redux Toolkit
    • Formik
    • MUI
    • Storybook
    • chromatic
    52 min
  • 002: Unser Backend-Technologie-Stack
    Benjamin und Sven führen durch unseren Backend-Technologie-Stack und erklären, warum wir uns für genau diese Komponenten entschieden haben und weshalb alternative Lösungen ausgeschieden sind.

    Technologien
    • Kotlin
    • Gradle
    • ktor
    • jOOQ
    • Elasticsearch
    • RabbitMQ
    Artikel
    • Sebastian Sellmair: I hated Gradle! Kotlin and the buildSrc Plugin made me love it
    • Martin Fowler: CQRS
    54 min
  • 001: Architekturentwurf
    Wie startet man eigentlich mit der Entwicklung eines neuen Produkts? Neue Technologien ausprobieren? Oder doch lieber erst mal eine Login-Seite entwickeln? Wir haben mit einem Architekturentwurf begonnen. In dieser Episode erläutern wir, was der bei uns enthält und wie wir ihn entwicklertauglich dokumentiert haben.

    Links
    • Software-Architektur-Template arc42
    • Architektur-Pattern Self-Contained Systems (SCS)
    59 min
  • 000: Intro
    Hier die Links zu den am Ende der Episode erwähnten Feedback-Kanälen:
    • Feedback-Formular
    • Sven auf Twitter
    • Sven auf LinkeIn
    16 min

About building a product

From the publisher's feed

Von Null bis Release: Bei uns entsteht ein völlig neues Softwareprodukt, und du kannst direkt miterleben, wie es wächst. Wir entwickeln eine B2B-Webanwendung in Kotlin (Backend), React und TypeScript…