Czego mama nie powiedziała ci o

DDD na Froncie?

Tomasz Ducin  •  ducin.dev  •  Bottega IT Minds

😱

Hi, I'm Tomasz

tomasz (at) ducin.dev

🦋 @ducin.dev

𝕏  @tomasz_ducin

Independent Consultant & Software Architect

Trainer, Speaker, Frontend & Backend

Bottega IT Minds, ArchitekturaNaFroncie.pl (ANF),

Developer Jutra .pl (DJ)

Warsaw, PL

STARTUP FOUNDING ENGINEER

reducer = (state, action) -> state

  • server state -> state
  • client state -> state
  • action -> side effects
  • interaction -> action

1 zespół

co może pójść nie tak

4 ludzi

1 codebase

chłopaki, w naszym klubie
jest jedna zasada:

800 LoC JSP file

being copied

800 LoC PHP file

800 LoC react file

chłopaki, w naszym klubie
jest jedna zasada:

DRY

"Every piece of knowledge must have a single, unambiguous, authoritative representation within a system"

 

- "The Pragmatic Programmer", A. Hunt, D Thomas

🤔

czy rozróżniamy:

  • kod domenowy VS utilsy techniczne?
  • CRUD VS procesy biznesowe?
  • znaczenie bytów biznesowych w zależności od kontekstu?
  • czy dany fragment UI służy temu samemu celowi biznesowemu

Write

Everything

Twice

Avoid

Hasty

Abstractions

monorepos

apps/

  app-A/...

  app-B/...

libs/

  lib-X/...

  lib-Y/...

  lib-Z/...

monorepos

apps/

  app-A/...

  app-B/...

libs/

  lib-X/...

  lib-Y/...

  lib-Z/...

monorepos

apps/

  app-A/...

  app-B/...

libs/

  lib-X/...

  lib-Y/...

  lib-Z/...

😁

  • szybsze buildy
  • łatwiejsze podbijanie paczek
  • większy "porządek"

module boundaries

apps/

  app-A/...

  app-B/...

libs/

  lib-X/...

  lib-Y/...

  lib-Z/...

monorepos

libs/

  flights/

  tickets/

  profiles/

  shared/

  ...

apps/

  application :)

db

api

ui

tickets

tickets

tickets

"DDD w Angularze"

DDD ~ monorepo 🤔

😁

robimy
monorepo
mordy 😁

inni robią, to i my

YOLO

przecież cię nie zwolnią w IT xD

⁉️

"Nothing is more dangerous than an idea when it is the only one you have."

 

- Emile Chartier Alain

🤔

  • jaki problem rozwiązujemy?
  • skąd wiemy, że problem jest?
  • co jest jego przyczyną problemu?
  • jakie są alternatywy?
  • jakie problemy wdrażamy "przy okazji"?

co jest ważniejsze 🤔

 

PYTANIA czy ODPOWIEDZI?

 

 

PYTANIA

Granice semantyczne 🤓

OMG wszędzie produkty!!!1eleven

Bounded Context

Bounded Context

- granica, w obrębie której ma zastosowanie określony i spójny model dziedziny oraz wspólny, jednoznaczny język (ubiquitous language)

- granica lingwistyczna

State Coupling

💰💰💰

Canonical Data Model

Canonical Data Model

- standardized representation of data that serves as a common ground for different systems and applications to exchange and understand data.

Decoupling? 👉👈 🤔

TO TAK MOŻNA?!!!1eleven

⁉️💰⁉️💰⁉️💰⁉️

🫨

😒 NIE MASZ NASZEJ APROBATY

🤬 W DOKUMENTACJI TEGO NIE MA

SZATANIE! 👿

Anti-Corruption Layer 🧱

FE, BE - osobne
Bounded Contexty?
 🤨

Aktor 🎭

👷

🤵

🛢️🤖

🚚

🤖

ALEŻ TO DUŻO TRZEBA GADAĆ Z BIZNESEM...

NIE PO TO SZEDŁEM
NA INFORMATYKĘ [...]

Cel biznesowy? 📈

  • Granice semantyczne 🤓
  • State (de) coupling 👉👈
  • Anti-Corruption Layer 🧱
  • Aktorzy: inni czy ci sami? 🎭 
  • Cel biznesowy 📈

Thank you

Tomasz Ducin  •  ducin.dev

  • Granice semantyczne 🤓
  • State (de) coupling 👉👈
  • Anti-Corruption Layer 🧱
  • Aktorzy: inni czy ci sami? 🎭 
  • Cel biznesowy 📈