Recensione

 

Titolo: Clean Architecture: guida per diventare abili progettisti di architetture software

Autore: Robert C.Martin

Editore: Apogeo

Anno pubblicazione:  2018 Ed.Italiana

ISBN: 9788850334391

 

Zio Bob colpisce ancora. Questa è la recensione del libro che Martin ha pubblicato quest’anno, e cosi come in Clean Code affronta le best practice per lo sviluppo del codice, qui discute di architettura del software.

Ti dico subito che questo è un altro libro da possedere se vuoi combinare qualcosa di buono come architetto del software; perchè entrando nello specifico ti descrive in maniera sapientemente chiara tutte le pratiche più conosciute in ambito architetturale.

Quindi se stai leggendo questa recensione e ancora non possiedi questo libro clicca sull’immagine della copertina in alto o alla fine della recensione e acquistalo, sono certo che non te ne pentirai.

 

Di cosa parla il libro?

Zio Bob ha voluto raccogliere il suo mezzo secolo di esperienza nello sviluppo del software in queste pagine, elencando tutte le pratiche esistenti e soprattutto consigliandone i motivi per sceglierne una piuttosto che l’altra.

 

I contenuti

Il libro si compone di 34 capitoli e 1 appendice per un totale di circa 287 pagine, a occhio tutto sommato sembra di avere tra le mani un libro di poche pagine, in realtà ogni pagina è un condensato di informazioni preziose.

 

Parte Prima

I primi due capitoli  sono squisitamente introduttivi, poche pagine per spiegare la differenza tra struttura e architettura.

I capitoli dal terzo al sesto elencano i paradigmi della programmazione, quindi la programmazione strutturata, la programmazione a oggetti e quella funzionale sono brevemente e sufficientemente raccontate in queste pagine.

I principi della progettazione sono invece oggetto dei capitoli dal settimo all’undicesimo; questi iniziano ad essere capitoli fondamentali per chi non ha mai sentito parlare di design pattern oppure per chi non se li ricorda bene.

Ciascuno di questi cinque capitoli spiegano il Single Responsibility Principle, l’Open-Closed, il Liskov Substitution, l’Interface Segregation e il Dependency Inversion Principle; e per ciascuno Martin inserisce relativi pattern, esempi, casi di studio e soluzioni.

Dei componenti, la loro coesione e l’accoppiamento trattano i capitoli dal dodicesimo al quattordicesimo; anche qui vengono spiegati i relativi principi: il Reuse/Release Equivalence, il Common Closure e il Common Reuse riguardano la coesione mentre l’Acyclic Dependencies, lo Stable Dependencies e lo Stable Abstractions per l’accoppiamento.

 

Acquista Clean Architecture: guida per diventare abili progettisti di architetture software

 

 

Parte Seconda

I successivi quattordici capitoli (dal quindicesimo al ventinovesimo) sono interamente dedicati all’architettura, si parla di ben cento pagine sull’argomento, ecco riassunti alcuni dei principali contenuti.

L’autore, dopo aver chiarito che una buona architettura deve supportare casi d’uso, manutenzione del sistema, sviluppo e deployment, pone l’attenzione sul disaccoppiamento dei livelli mediante l’uso di delimitazioni totali e parziali (Facade) e lo schema progettuale Humble Objects che contiene il Presenter e le View; oltre alla descrizione del Data Mapper per i database e al Service Listener per i servizi.

Martin pone attenzione anche all’architettura service-oriented che attualmente è quella più implementata ma lo fa per chiarire, con un esempio, che i servizi disaccoppiati e l’indipendenza di sviluppo e deployment, caratteristiche di questa architettura, sono dichiarazioni parzialmente vere, sono solo illusioni. Spiacente, i motivi li leggerai nel libro.

 

Parte Terza

I capitoli dal trenta al trentadue hanno titoli apparentemente anomali: “il database è un dettaglio“, “il Web è un dettaglio“, “i framework sono un dettaglio“.

In realtà Uncle Bob vuole sottolineare che il database, inteso come meccanismo di archiviazione, è solo un dettaglio che non deve entrare nel disegno dell’architettura; per lo stesso motivo anche il web è solo un momento nell’oscillazione del tempo e così anche i framework.

Sono un pò come mode che passano e si rinnovano ma che non vanno inclusi in una architettura poichè sono solo dettagli rispetto al disegno vero e proprio di dati e componenti. Pensieri che sfiorano la filosofia ma che danno parecchio da riflettere.

Le ultime pagine del libro sono dedicate ad un caso di studio (capitolo trentatre e trentaquattro) in cui Martin dimostra come mettere in pratica tutte le regole e i principi che fino a qui sono stati elencati e spiegati; quindi esempio di analisi di casi d’uso, architettura a componenti, suddivisione dei livelli, interfacce e modalità di disaccoppiamento.

Infine, l’appendice A, un salto all’indietro nel tempo (per me) fino alle origini dei computer per raccontare l’archeologia delle architetture e un pezzo di vita professionale dell’autore, nel quale racconta come gli accadde di lavorare a fianco di Grady Booch, papà dell’UML.

Prima di passare agli aspetti positivi e negativi voglio segnalarti un paio di cose interessanti: la recensione del libro Clean Code, sempre di Zio Bob, un bel libro sull’Arte del Rilascio e un articolo in tre parti per ragionare meglio su coesione e disaccoppiamento, ecco la prima parte. Buone letture.

 

Aspetti Positivi:

Già mi sono scoperto all’inizio, insieme a Clean Code questo e’ il secondo libro da tenere nello zaino o nella libreria e da leggere e rileggere ogni qualvolta si inizia un progetto.

Rivolto principalmente a chi deve progettare architetture software.

Il nucleo centrale del libro sono quelle cento pagine che parlano di architettura descritte sopra.

Di fondamentale importanza la descrizione dei pattern nella prima parte del libro.

Aspetti Negativi:

Nessuno.

 

Benissimo, se hai trovato interessante e utile questa recensione e desideri acquistare il libro, puoi farlo cliccando direttamente sul link o sulla copertina del libro qui sotto. Grazie per il tempo che hai dedicato!

 

Acquista Clean Architecture: guida per diventare abili progettisti di architetture software

 

🔥538
Vota questo articolo

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *