Clean Architecture
  • Clean Architecture
  • Che cosa si intende per struttura e architettura
  • Due diversi oggetti di valore
  • Panoramica sui paradigmi
  • La programmazione strutturata
  • La programmazione ad oggetti
  • La programmazione funzionale
  • Principi di progettazione
  • Il principio SRP (Single Responsibility Principle)
  • Il principio OCP (Open-Closed Principle)
  • Il principio LSP (Liskov Substitution Principle)
  • Il principio ISP (Interface Segregation Principle)
  • Il principio DIP (Dependency Inversion Principle)
  • I componenti
  • Coesione dei componenti
  • Accoppiamento dei componenti
  • Che cos'è l'architettura?
  • Indipendenza
  • Delimitazioni: tracciare una linea
  • Anatomia di una delimitazione
  • Politiche e livelli
  • Regole operative
  • Architettura "da urlo"
  • Architettura clean
  • Presenter e Humble Objects
  • Delimitazioni parziali
  • Livelli e delimitazioni
  • Servizi: grandi e piccoli
  • Delimitazione di test
  • Il database è un dettaglio
  • Il Web è un dettaglio
  • I framework sono un dettaglio
  • Caso di studio: vendita di video
  • Manca ancora qualcosa...
Powered by GitBook
On this page
  • Quali linee tracciare e quando tracciarle?
  • Architettura a plugin

Was this helpful?

Delimitazioni: tracciare una linea

PreviousIndipendenzaNextAnatomia di una delimitazione

Last updated 5 years ago

Was this helpful?

L'architettura del software consiste nel tracciare delle linee, che chiamiamo delimitazioni, per separare i componenti l'uno dall'altro. Alcune di queste linee possono essere tracciate molto più tardi, poiché riguardano decisioni secondarie e differibili. Tra queste troviamo: il framework, il database, il server web e via discorrendo.

Quali linee tracciare e quando tracciarle?

Occorre tracciare delle linee tra le cose che contano e quelle che non contano. Alle regole operative non interessa il database, pertanto ci dovrebbe essere una linea di separazione. Alle regole operative interessa soltanto sapere che esistono delle funzioni, nascoste dietro interfaccia, che servono per leggere e salvare i dati. Poi se viene usato un database relazionale, oppure non relazionale o ancora dei semplici file, alle regole operative questo non gli deve interessare.

Le BusinessRules usano l'interfaccia DatabaseInterface per leggere e salvare i dati. La classe DatabaseAccess implementa l'interfaccia DatabaseInterface per leggere e scrivere i dati su un database. Le BusinessRules sono completamente all'oscuro di come e dove vengono salvati i dati. Questo ci consente di definire la seguente delimitazione tra i due componenti:

Ciò ci permette di posticipare la decisione su quale tipo di database utilizzare e concentrarci maggiormente sulle regole operative.

Architettura a plugin

Tutte queste decisioni differibili come il database, l'interfaccia utente (GUI), il framework e così via, ci consentono di avere un sistema scalabile e manutenibile. Dove le regole operative vengono mantenute separate e indipendenti dai componenti opzionali. Questa architettura viene definita architettura a plugin.