Hvordan gjøre komplekse problemer lettere ved å dekomponere og komponere

Discover Functional JavaScript ble kåret til en av de beste nye funksjonelle programmeringsbøkene av BookAuthority !

Vår naturlige måte å håndtere kompleksitet på er å bryte den i mindre biter og deretter sette alt sammen igjen.

Dette er en totrinnsprosess:

  • spalt problemet i mindre deler
  • komponere de små delene for å løse problemet

Vi nedbrytes i mindre deler fordi de er lettere å forstå og implementere. De mindre delene kan utvikles parallelt.

Nedbrytningsprosessen handler om å tildele ansvar og gi navn. Dette gjør det enkelt å snakke og resonnere om. Når vi har identifisert et ansvar, kan vi gjenbruke det.

Komposisjon handler om å kombinere de små delene sammen og etablere et forhold mellom dem. Vi bestemmer måten disse stykkene kommuniserer på, rekkefølgen de utføres i, og hvordan data flyter mellom dem.

Vi finner et system vanskelig å forstå, selv om det er delt i mindre deler, hvis det er et høyt antall forhold mellom disse delene. For å gjøre et system lettere å forstå, må vi minimere antallet mulige forbindelser mellom delene.

Objektnedbrytning

Objekter er mer enn tilstand og atferd som fungerer sammen. Objekter er ting med ansvar.

Nedbryt

I Hvordan lage et trelagsapplikasjon med React tar jeg en oppgavelisteapplikasjon og deler ansvaret mellom følgende objekter:

  • TodoDataService : ansvarlig for kommunikasjonen med serveren Todo API
  • UserDataService : ansvarlig for kommunikasjonen med serverens bruker-API.
  • TodoStore: domenebutikken for administrering av oppgaver. Det er den eneste kilden til sannhet angående oppgaver.
  • UserStore : domenebutikken for administrering av brukere.
  • TodoListContainer : rotbeholderkomponenten som viser listen over oppgaver.

Som du kan se, når jeg dekomponerer, tildeler jeg ansvar og gir navn.

Komponer

Deretter komponerer jeg dem sammen i en enkelt funksjon. Dette er stedet der alle objekter blir opprettet og avhengigheter injisert. Det kalles Composition Root.

Discover Functional JavaScript ble kåret til en avbeste nye funksjonelle programmeringsbøker av BookAuthority !

For mer informasjon om bruk av funksjonelle programmeringsteknikker i React, ta en titt på Functional React .

Lær funksjonell Reager , på en prosjektbasert måte, med Functional Architecture med React og Redux .

Følg på Twitter