Una volta imparato uno o più linguaggi di programmazione è normale iniziare a domandarsi come organizzare il proprio codice: relazioni di dipendenza tra classi, modularizzazione, gestione delle dipendenze di terze parti, comunicazione sincrona e asincrona e una serie infinita di altri concetti che possono determinare la riuscita o meno di un progetto.
5 libri che uno sviluppatore non può non avere sul comodino
Vogliamo quindi proporvi 5 diverse letture che potranno chiarirvi le idee su molti di questi aspetti e farvi approcciare con una nuova visione l’organizzazione del vostro codice.
Clean Architecture
Robert Martin
Questo libro è sicuramente ottimo come prima lettura sull’argomento. I concetti sono definiti in modo chiaro e preciso. Robert Martin spiega a fondo i SOLID principles, le relazioni tra classi e tra diversi moduli di una stessa applicazione. Il libro fa capire l’importanza di consegnare codice di qualità e quali possono essere le conseguenze di scelte poco sagge.
I concetti sono sempre spiegati con esempi concreti e la lettura è molto piacevole.
Software Architecture in Practice
Len Bass, Paul Clements, Rick Kazman
Giunto alla terza edizione, Software Architecture in Practice, è sicuramente uno dei best seller sull’argomento Software Architecture.
Questo libro definisce in modo eccellente la posizione dell’architettura software in un contesto aziendale. Spiega cosa ci si aspetta da un software architect e quali sono le best practice.
Anche questo è ottimo come prima lettura, in quanto i concetti sono espressi in modo non tecnico ed è fruibile anche da manager che vogliano approfondire l’argomento.
Sicuramente un manuale non tecnico, ma non per questo meno impegnativo del testo di Robert Martin.
Software Systems Architecture
Nick Rozanski
Questo libro ha un approccio molto più pratico dei precedenti e si rivolge a chi effettivamente lavora come sviluppatore o software architect.
Nei primi capitoli spiega come approcciare l’organizzazione di un progetto completo in modo molto pratico, basandosi su pochi semplici e solidi presupposti teorici. I capitoli seguenti contengono delle checklist pratiche su diversi aspetti dell’architettura: sicurezza, affidabilità, ecc…
E’ un ottimo libro che ci sentiamo di consigliare per i motivi descritti sopra, magari dopo una prima lettura con uno dei libri elencati precedentemente.
The Process of Software Architecting
Peter Eles, Peter Cripps
Questo libro è forse più adatto per chi lavora in un contesto “enterprise”, in una azienda medio-grande con un determinato tipo e numero di procedure e livello manageriale.
Descrive il ruolo del software architect e si occupa di argomenti più comportamentali e organizzativi, come ad esempio quando fare una riunione, o come interfacciarsi con gli altri reparti dell’azienda.
Documenting Software Architecture
Paul Clements, Felix Bachmann
Per ultimo abbiamo voluto menzionare Documenting Software Architecture, uno dei grandi classici, anche conosciuto come “The Green Book” per la copertina della sua prima edizione.
Alla scrittura del libro hanno contribuito diversi autori. Il libro è di gran lunga la descrizione più completa e accurata del modello concettuale di architettura software.
I libro è pieno di consigli per chiunque sia coinvolto nella discussione o nella stesura di documentazione di un’architettura software. Fornisce un ottimo livello di dettaglio su come produrre documentazione completa e descrittiva delle decisioni architetturali.