Consigli su libri settoriali - Pt. 1
Federico CalòIntroduzione
In questa serie di articoli vorrei portare alla vostra attenzione diverse letture tecniche che possono aiutarvi a migliorare la produzione del vostro codice o a prendere confidenza con una particolare tecnologia. Chi è del mestiere comprende quanto sia volatile il mondo della programmazione, ma occorre avere una comprensione e una visione generale del mondo in cui ci si interfaccia e l'obiettivo consiste appunto nell'impostare delle pietre miliari consultabili in qualsiasi momento.
Oggi vorrei proporvi delle letture abbastanza leggere, ma che sono sicuramente fondamentali per una buona scrittura del codice e come organizzare l'architettura del programma che state realizzando. Secondo il mio modesto parere, alcuni libri non devono mancare all'interno della libreria di un programmatore e sicuramente i seguenti sono alcuni di quelli. Comprendere i principi e le linee guida che sono alla base dello sviluppo professionale di software, devono andare di pari passo con le skills tecniche necessarie ad affrontarne lo sviluppo.
Clean Code
Libro scritto da Robert Martin attraverso il quale vengono esposte le cosiddette best practice mediante le quali si scrive codice pulito, garantendo una corretta leggibilità del codice, non solo dai diversi sviluppatori che possono essere interessati al progetto, ma anche dallo stesso sviluppatore. Queste pratiche aiutano il team di sviluppo a correggere più velocemente gli errori e semplificano il refactoring. Il volume è diviso in tre parti. La prima descrive i principi, i modelli e le pratiche per la scrittura di un codice pulito. La seconda presenta casi di studio di complessità crescente: ognuno è un esercizio che mira a trasformare del codice problematico in codice efficiente. La terza, racchiusa in un unico capitolo, raccoglie e sintetizza tutti gli insegnamenti della seconda parte. E' molto esaustivo e spiega in maniera progressiva, partendo dalla gestione dei commenti, delle funzioni e della formattazione, fino ad arrivare a concetti più avanzati quali la concorrenza, i casi di test, l'architettura client/server e molto altro.
Link acquisto
Clean Architecture
Dello stesso autore, Robert Martin, vi consiglio il libro Clean Architecture, nel quale vengono esplicati in maniera chiara i vari principi fondamentali per realizzare una buona architettura. Vengono spiegati il principio SRP (Single Responsibility Priciple), il principio OCP (Open-Closed Principle), il principio LSP (Liskov Substitution Principle) e altri altrettanto importanti. Viene definita l'architettura in se per se, andando a definire le principali caratteristiche, come interagiscono tra loro e le best practice su come creare delle architetture perfette. Infine vengono analizzate le componenti esterne che si devono interfacciare alla nostra architettura software quali il database, il web e i framework.
Link acquisto
L'arte del refactoring
Questo libro, redatto da Martin Fowler, software developer per applicazioni enterprise, si concentra sulla capacità di riscrivere il codice per renderlo più leggibile ed efficiente. L'argomento viene affrontato passo passo, arricchendo la teoria di numerosi esempi pratici in diversi linguaggi. Indubbiamente vengono analizzati i principi del refactoring andando anche ad analizzare i vari test del codice. Si fa riferimento ai vari principi della programmazione ad oggetti (incapsulamento ed ereditarietà), per poi affrontare argomenti quali l'organizzazione dei dati e delle varie funzioni, la semplificazione della logica condizionale, la rifattorizzazione delle API.
Link acquisto
Il Pragmatic Programmer
L'ultimo libro che mi sento di consigliarvi è "Il Pragmatic Programmer" di David Thomas e Andrew Hunt. Questo libro illustra un approccio strutturale alla pianificazione di un progetto software, andando ad analizzare i relativi componenti. Vengono fatti molti cenni teorici a teorie informatiche per introdurre i concetti e analizzarli sotto i diversi aspetti (temporale, programmazione modulare, GUI). Analizza inoltre alcuni tools utili alla progettazione e individua le varie fasi del progetto.
Link acquisto