I migliori consigli per scrivere codice di qualità
Il libro, con il nuovo titolo Java Best Practice, è disponibile in vendita nelle librerie, in una edizione cartacea ampliata e aggiornata, pubblicata dall’editore Tecniche Nuove (si tratta della nuova versione di Java Quality Programming).
Questo libro
Durante l’attività di codifica molti programmatori si saranno molto probabilmente trovati alle prese con una serie ricorrente di problemi, dubbi e con la necessità di scegliere, tra le varie possibili, la migliore soluzione implementativa. Un gruppo più limitato di lettori, verosimilmente, si sarà trovato a dover redigere standard aziendali relativi all’attività di programmazione, al fine di garantire per il software livelli di qualità e di coerenza prestabiliti, indipendentemente dallo specifico progetto e/o team di sviluppo.L’idea alla base di questo libro è proprio questa: fornire un compendio di risposte univoche, operative e concise a questi problemi; in definitiva, una guida volta a fornire best practice.Le esperienze maturate nell’istruire personale junior, nel fornire delle specifiche circa la creazione dell’ambiente di sviluppo, nel dover eseguire la revisione del codice prodotto da altri membri del team hanno spinto l’autore a scrivere questa guida. Non ci si propone affatto di “sostituire” la lettura dei molti libri che devono rappresentare il bagaglio culturale irrinunciabile di ogni programmatore Java; Java Best Practice vuole invece rappresentare un’efficace integrazione basata su risposte soddisfacenti, pratiche e immediate per chi abbia già una basilare conoscenza del linguaggio Java e delle fondamentali leggi dell’OO. Si tratta di fornire un vademecum di carattere operativo corredato da una serie di esempi per il miglioramento della qualità del software, in cui non sia necessariamente ripetuta tutta la teoria di base.
La struttura
Presentazione
Nella presentazione sono contenute prefazione, introduzione, struttura del libro e convenzioni grafiche.
Capitolo 1. Regole base
Una serie di linee guida di carattere generale relative alla programmazione, la maggior parte delle quali ha una validità indipendente dagli specifici linguaggi di programmazione e dal particolare paradigma, sebbene particolare attenzione sia rivolta ai linguaggi basati sul paradigma OO e a Java in particolare. Le direttive presenti in questo capitolo hanno un carattere generale e introducono argomenti relativi a come implementare classi ben disegnate, alla scelta dei nomi per le varie entità di un programma, alla strutturazione dei metodi, all’implementazione di classi a elevata coesione e minimo accoppiamento, e così via.
Capitolo 2. Programmazione avanzata
Si passa a tematiche a maggiore carattere tecnico. Ciò si riflette anche sul linguaggio di programmazione: Java assume definitivamente il ruolo di fulcro. In questo capitolo si affrontano tematiche come l’utilizzo delle aree static, la verifica dei parametri, l’utilizzo delle interfacce, il multithreading, il ricorso alla parola chiave synchronized, e così via.
Capitolo 3. I commenti
Codici che presentano problemi per quanto riguarda chiarezza, comprensibilità e facilità di manutenzione, corrono il serio rischio di essere buttati via e riscritti. In questo capitolo sono presentate una serie di direttive atte a migliorare l’efficacia dei commenti del codice.
Capitolo 4. Strategia di gestione delle eccezioni
Indipendentemente dal livello di qualità del codice prodotto, le eccezioni si verificano: e questo è un dato di fatto. La giusta strategia di gestione può fare la differenza tra un sistema robusto e uno inaffidabile: è necessario che tutti i membri del team di sviluppo concordino e applichino una strategia efficace e coerente di gestione delle eccezioni.
Capitolo 5. Test di unità
Una delle poche aree in cui tutti i processi di sviluppo del software concordano è quella relativa all’importanza dei test. In questo capitolo, in particolare, si focalizza l’attenzione sui test di unità (unit test) implementati per mezzo dell’ormai famoso framework JUnit, per verificare il corretto funzionamento di singole unità di codice, ossia classi, considerate isolatamente.
Capitolo 6. Test di integrazione
I test di integrazione (integration test) rappresentano un’altra importantissima fase di test ancora a carico dei programmatori: in questa fase si verifica che, anche una volta assemblati tra loro, i vari moduli continuino a esibire il funzionamento previsto. In questo capitolo si espongono una serie di consigli, sia relativi alla realizzazione dei test sia alla produzione di moduli fittizi implementati per i soli fini di test (mock).
Capitolo 7. Struttura del file system di un progetto Java
In questo capitolo è presentata in dettaglio un’organizzazione, in termini di directory, del file system da utilizzarsi per lo sviluppo di progetti Java. Anche questa standardizzazione risulta particolarmente importante per assicurare l’evoluzione del software nel tempo, favorire lo spostamento di sviluppatori tra diversi progetti e per il riutilizzo di file di scripting, soprattutto relativi alle fasi di build e di deployment.
Appendice A. JavaDoc
La presentazione dell’applicazione di utilità Java per la produzione automatica della documentazione: JavaDoc. In particolare, molta attenzione è assegnata ai relativi tag.
Appendice B. Tag HTML
La presentazione di una serie di tag HTML estremamente utili per la scrittura di commenti doc.
Appendice C. Hashing
L’hashing rappresenta una teoria impiegata in diversi ambiti dell’informatica: dalla crittografia alle strutture dati. In questa appendice l’attenzione è focalizzata sul secondo aspetto, perch��� i programmatori Java utilizzano frequentemente il concetto del hashing con una frustrazione abbastanza ricorrente: interpellando diversi programmatori, infatti, è facile riscontrare come questo concetto sia spesso avvolto da una “sacra inibizione”.
Appendice D. Multi-threading
Questa appendice è dedicata alla programmazione multi-threading (MT). In particolare, si affrontano sia i concetti base della programmazione MT, sia tematiche più avanzata legate al linguaggio Java. Le principali tematiche affrontate sono: le tipiche problematiche della programmazione MT in Java, costrutti fondamentali dedicati alla programmazione concorrente e il nuovo package Java dedicato alla concorrenza: java.util.concurrent.
L’autore del libro è Luca Vetti Tagliati