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 📈

Copy of Copy of Copy of The Many Meanings of Share and Reuse in Software Architecture

By Tomasz Ducin

Copy of Copy of Copy of The Many Meanings of Share and Reuse in Software Architecture

  • 39