Puhdas arkkitehtuuri edistää ohjelmistorakennetta,
joka parantaa testattavuutta, ylläpidettävyyttä ja
skaalautuvuutta. Se erottaa huolenaiheet ja tukee
joustavaa koodipohjaa, joka mukautuu kehittyviin
vaatimuksiin ja teknologioihin.
Puhdas arkkitehtuuri: Tavoitteet
Puhdas arkkitehtuuri pyrkii luomaan ohjelmistoja, jotka
ovat helppoja ymmärtää, ylläpitää ja testata. Se
korostaa huolenaiheiden erottamista ja hyvin
määriteltyjen rajojen luomista sovelluksen eri osien
välille. Tämä erottelu mahdollistaa yksittäisten
komponenttien helpomman testaamisen.
Puhkaan arkkitehtuurin hyödyt
-
➤ Kehysriippumattomuus: Voidaan
käyttää ASP.NET (Core), Java, Python jne. kanssa,
ilman että se riippuu erityisestä
ohjelmistokirjastosta tai omasta koodikannasta.
-
➤ Testattavuus: Voidaan käyttää
ASP.NET (Core), Java, Python jne. kanssa, ilman että
se riippuu erityisestä ohjelmistokirjastosta tai
omasta koodikannasta.
-
➤ Käyttöliittymäriippumattomuus:
Logiikka pidetään käyttöliittymän ulkopuolella, mikä
tekee teknologian vaihtamisesta helppoa, esim.
Angularista Reactiin tai Blazorille.
-
➤ Tietokannariippumattomuus: Erottaa
puhtaasti tietojen käsittelyn huolenaiheet, mikä
helpottaa muutoksia SQL Serveristä CosmosDB:hen.
-
➤ Riippumattomuus ulkoisista
järjestelmistä:
Ydin on täysin eristetty ulkomaailmasta, mikä
varmistaa pitkäikäisyyden ja helpon päivittämisen.
-
➤ Löysä kytkentä: Edistää löysää
kytkentää komponenttien ja kerrosten välillä, mikä
parantaa ylläpidettävyyttä ja skaalautuvuutta.
Puhdas arkkitehtuuri: Suuri kuva
-
1. Liiketoimintalogiikka ja sovelluksen malli
keskellä:
Varmistaa, että ohjelmiston tärkeät osat ovat
riippumattomia ja hyvin määriteltyjä.
-
2. Käänteinen riippuvuus:
Liiketoimintalogiikka ei riipu tietojen käsittelystä
tai infrastruktuurin huolenaiheista; sen sijaan
infrastruktuuri riippuu sovelluksen ytimestä.
-
3. Selkeät abstrahointitason sovelluksen
ydin:
Määrittelee selkeät abstrahointit (rajapinnat), jotka
edustavat oleellisia sopimuksia.
-
4. Toteutus infrastruktuurikerroksessa:
Konkreettiset toteutukset ovat
infrastruktuurikerroksessa, jossa käsitellään tietojen
pääsyä, ulkoisia palveluja jne.
-
5. Riippuvuuksien sisäinen virtaus:
Kaikki riippuvuudet virtaavat sisäänpäin kohti
sovelluksen ydintä, mikä varmistaa tiukan
huolenaiheiden erottamisen.
Kerroksia puhtaassa arkkitehtuurissa
-
➤ Domain-kerros: Arkkitehtuurin ydin,
joka toteuttaa liiketoimintalogiikan ilman
riippuvuuksia muista kerroksista.
-
➤ Sovelluskerros: Keskikerros, joka
hallitsee tietoja domain- ja
esitystulo-/infrastruktuurikerrosten välillä.
-
➤ Infrastruktuurikerros: Sisältää
luokkia ulkoisten resurssien, kuten
tiedostojärjestelmien, verkkopalvelujen ja
tietokantojen, käsittelemiseen.
-
➤ Esityskerros: Käyttöliittymän
koodi, joka käyttää ASP.NET Corea käyttöliittymien
rakentamiseen.
Domain Driven Design (DDD)
Domain-Driven Design (DDD) on joukko periaatteita ja
malleja ohjelmistojen suunnitteluun, joka keskittyy
ydinalueeseen ja sen logiikkaan. DDD korostaa teknisten
ja alueellisten asiantuntijoiden välistä yhteistyötä,
jonka avulla kehitetään iteratiivisesti käsitteellinen
malli, joka vastaa monimutkaisille
liiketoimintavaatimuksille. DDD:n keskeisiä käsitteitä
ovat:
• Entiteetit: |
Objektit, joilla on selkeä identiteetti ja jotka
kulkevat eri tilojen läpi järjestelmässä.
|
• Arvot: |
Muuttumattomat objektit, jotka edustavat kuvaavaa
aspektia alueesta ilman käsitteellistä
identiteettiä.
|
• Aggregaatit: |
Yhdiste domain-objekteista, joita käsitellään yhtenä
yksikkönä tiedon muutoksille.
|
• Repositories: |
Me-kanismeja, jotka kapseloivat tallennuksen, haun
ja hakukäyttäytymisen, jäljitellen objektikokoelmaa.
|
Testaus puhtaassa arkkitehtuurissa
Testaus puhtaassa arkkitehtuurissa tarkoittaa kunkin
kerroksen testaamista itsenäisesti varmistaakseen, että
kaikki komponentit toimivat oikein ja ovat
vuorovaikutuksessa toistensa kanssa. Tämä on erittäin
tärkeä vaihe ja vähentää merkittävästi monimutkaisuutta.
-
➤ Mockaus: Luodaan objekteja, jotka
simuloivat todellisten objektien käyttäytymistä. Tässä
tapauksessa voit mockata tietokannan repositorioita
ilman varsinaista toteutusta.
-
➤ Riippuvuuden injektointi:
Riippuvuuksien (kuten repositoryjen) siirtäminen
käyttöcaseihin tai palveluihin, mikä helpottaa
yksikkötestausta.
-
➤ Eristyneisyys: Varmistetaan, että
jokainen testi on itsenäinen eikä perustu muiden
testien tilaan tai tietoihin.
Puhdas arkkitehtuuri: Käyttöönotto
-
1. Domain-kerroksen konfigurointi:
Määrittele entiteetit, enumit, poikkeukset, rajapinnat
ja tyypit.
-
2. Sovelluskerroksen konfigurointi:
Kirjoita liiketoimintalogiikka ja palvelurajapinnat,
säilyttäen löysä kytkentä.
-
3. Infrastruktuurikerroksen konfigurointi:
Toteuta tietojen käsittely ja ulkoisten resurssien
vuorovaikutukset ydinrajapintojen perusteella.
-
4. Esityskerros: Käyttöliittymän
toteutus ASP.NET Corella.
Periaatteet, joita seurata
1. Huolenaiheiden erottaminen: |
Vältä erilaisten koodivastuuksien sekoittamista
samaan metodiin/luokkaan/projektiin.
|
2. Yksittäinen vastuu: |
Jokaisella moduulilla/komponentilla pitäisi olla
vain yksi syy muuttua.
|
3. Älä toista itseäsi (DRY): |
Vältä toistetun koodin tai logiikan käyttöä. |
4. Käänteiset riippuvuudet: |
Korkean tason politiikkojen ei pitäisi riippua
matalan tason yksityiskohdista; käytä riippuvuuden
injektointia edistämään löysää kytkentää.
|
Yhteenveto
Puhdas arkkitehtuuri tarjoaa vankan perustan
mikropalveluiden rakentamiseen .NET Core Web API:lla.
Noudattamalla huolenaiheiden erottamisen ja riippuvuuden
käänteisyyden periaatteita, kehittäjät voivat luoda
skaalautuvia, ylläpidettäviä ja testattavia sovelluksia.
Puhdas arkkitehtuuri tarjoaa vankan perustan
nykyaikaisen ohjelmistokehityksen alati muuttuville
vaatimuksille.
Opi lisää vierailemalla GitHubissamme