E due!

Dopo qualche anno dalla pubblicazione di Pro PHP Refactoring rieccomi sulla scena editoriale PHP con il vecchio amico Francesco Trucchia e, stavolta, in compagnia di tanti altri carissimi e stimati colleghi membri del GrUSP, il Gruppo Utenti e Sviluppatori PHP.

Sono molto felice di presentarti il nostro lavoro, dal titolo PHP Best Practices. Un libro molto tecnico, unico nel suo genere in lingua italiana e dedicato ai professionisti dell’ecosistema PHP. Il libro è di ampio respiro e si allarga su tante diverse tematiche.

Il mio titolo, neanche a dirlo, è quello dedicato al Test Driven Development. Ho cercato di dargli un taglio molto pratico, ispirato dal grande esempio di Kent Beck – autore pazzesco, ogni volta rileggerlo è una riscoperta. Nel capitolo ho cercato di rispondere alla “frequently asked” domanda: sì OK, bello tutto, ma poi dal vivo, nel mondo vero? La mia risposta migliore nel mio capitolo.

Ah dimenticavo: il mio sul TDD è l’unico capitolo scaricabile gratuitamente già da oggi, in attesa del lancio ufficiale del libro il prossimo 18 maggio al phpDay di Verona!

Buona lettura!

May 04 2012 | Eventi | No Comments »

Lime 2 e la svolta attesa per PHP

Una buona notizia per i (saggi) sviluppatori PHP: è stata rilasciata la prima alpha di Lime 2, il nuovo framework per unit test e functional test in PHP. Promette davvero bene, con un raffinato e moderno sistema per generare stub e mock object. Mi pervade un profondo senso di… disaccoppiamento!

November 11 2009 | Dalle trincee | 2 Comments »

Un blog, un altro blog, un libro e un film.

Con spirito schizofrenico da una parte e prudenza giuridica dall’altra – non abbiamo ancora bene capito cosa potremo ben scrivere – Francesco e io vi presentiamo il blog dedicato al nostro libro Pro PHP Refactoring with Test Driven Design. Poi magari non vi potremo scrivere niente di rilevante; poi magari non vi scriveremo niente che non si possa scrivere sui nostri rispettivi blog; poi magari non ci verrà niente in mente di interessante da scrivere; però oh, noi intanto lo abbiamo tirato su, con buona pace degli spider di Google.

Siamo già a caccia di lettori replicanti, non umani. Alla faccia di Rick Deckard!

September 20 2009 | Recensioni | 2 Comments »

La prima volta

Avevo pronta una categoria recensioni da tempo qui per questo blog. Non l’ho più usata un po’ per questione di priorità di argomenti – il tempo per scrivere è già così poco :( – un po’ per doverosa umiltà: perché dovrei recensire libri altrui? Allora comincio dal mio. Anzi, dal nostro.

Scrivo nostro perché ne sono co-autore con Francesco Trucchia. Insieme a lui avrò il piacere di scrivere per Apress il libro intitolato Pro PHP Refactoring with Test-Driven Design la cui pubblicazione è prevista per il prossimo febbraio.

Ah già, perché dimenticavo: il libro non lo abbiamo ancora scritto! Quindi anche oggi non posso recensire alcunché. :)

September 12 2009 | Recensioni | 4 Comments »

Workshop su extreme programming al phpDay 2008

Ieri finalmente il workshop su extreme programming tenuto al phpDay 2008 insieme a Francesco Trucchia. Un’esperienza fantastica, in compagnia di persone splendide, con un’ottima partecipazione e un’enorme soddisfazione per noi.

Nei prossimi giorni farò un resoconto più dettagliato – completo di foto e filmati delle fasi più accese del planning game che abbiamo simulato, ma certamente ringrazio fin d’ora Francesco, il direttivo del Gr.u.s.p. e Fullo, che ci ha messo davvero nelle condizioni di operare al meglio per la buona riuscita del workshop.

Un ringraziamento finale va a tutti i partecipanti. Vederli chiusi in cerchio giocando al planning game è stata una vera soddisfazione, davvero non speravamo in un tale coinvolgimento di tutti.

Al prossimo phpDay!

May 25 2008 | Eventi | 6 Comments »

Antibiotici e test driven development

Uno sviluppatore con cui ho terminato oggi un’importante fase di un progetto web mi ha detto:

[...] Io diffido di chi propone un rimedio come panacea di tutti i mali. Nei progetti open source che vedo utilizzare i test automatici io vedo ancora liste di bug lunghissime.

Affermazione che equivale più o meno a dire:

Ritengo gli antibiotici un immenso bluff. Sono decenni che vengono impiegati e ci sono ancora milioni di malati in ogni parte del mondo

Ok, ci ammaliamo ancora tutti e ancora ovunque, ma rinuncereste agli antibiotici?

Gli antibiotici non ci regalano l’immunità totale, ma hanno abbattuto l’impatto dei batteri sulle nostre vite. I test automatici non sono una panacea, ma abbattono il tempo speso a fare debugging – che è sempre tempo perso, poiché non è passato a creare valore ma a verificarlo.

April 29 2008 | Visione agile | 1 Comment »

Caos, osmosi e regressione: un’altra metafora per il test driven development

Intuisco anche una certa analogia fra il moto degli ioni attraverso una membrana osmotica da una soluzione ad un’altra e il percorso che le user story fanno dal loro concepimento al loro compimento.

Anche gli ioni in una soluzione, in condizioni normali, si muovono per la sola agitazione termica e quindi anche il loro moto è browniano, all’insegna cioè della caoticità più radicale.

L’osmosi è quel fenomeno che consiste nel movimento di diffusione di due liquidi miscibili di diversa concentrazione, una membrana, semipermeabile o permeabile ai due mezzi. È un fenomeno molto importante e studiatissimo in biologia e perfino due metodi di conservazione dei cibi con cui tutti noi abbiamo a che fare ogni giorno sfruttano l’effetto osmotico: la salatura e la salamoia.

Anche in questo caso quindi con i test automatici ed il test driven development possiamo immaginare di porre una membrana semipermeabile tra due soluzioni di user story: quelle da fare e quelle fatte. Le storie così, nel loro moto comunque caotico, diffondono in maniera non reversibile verso lo stato di completamento e vengono messe al riparo da regressioni per sempre.

Sì sì, ho scritto per sempre. :)

April 29 2008 | Termodinamica | No Comments »

Caos, diodi e regressione: una metafora per il test driven development

Intuisco una certa analogia fra il moto degli elettroni in un conduttore elettrico e il percorso che le user story fanno dalla loro scrittura al loro completamento.

Gli elettroni, se non è applicato un campo elettrico, si muovono per la sola agitazione termica e quindi il loro moto ubbidisce alle leggi della statistica e al principio di equipartizione dell’energia, secondo il cosiddetto moto browniano. Se applichiamo un campo elettrico il moto delle particelle resta caotico e non diventa affatto uniforme e rettilineo, ma la somma dei moti caotici presenta una deriva che costituisce per sé la corrente elettrica.

L’implementazione delle user story è soggetta, nostro malgrado, ad una certa caoticità di moto: scritta la storia il percorso alla completa realizzazione della feature descritta non è mai senza regressioni e, addirittura, per certi versi il destino di una user story non è mai certo, perchè la sua corretta implementazione può essere corrotta, dopo anche molti mesi, dall’integrazione nel nostro sistema di nuove storie.

I test automatici – come li conosciamo nel test driven development – danno a questo moto caotico un punto di soglia, di non ritorno. Una storia chiusa in un test non può più tornare indietro, perlomeno per gli aspetti caratterizzanti che ne abbiamo voluto testare. Come se lungo il conduttore in cui scorre una corrente elettrica avessimo installato un diodo, senza certo impedire agli elettroni di vagabondare in ogni direzione possibile all’interno del conduttore a livello locale, ma allo stesso tempo assicurandoci che ad un livello più globale la corrente scorra solo nella direzione voluta.

Le nostre user story, con l’applicazione rigorosa del test driven development, rimangono così naturalmente caotiche, ma soggette ad andare dalla scrittura all’implementazione certa senza regressioni impreviste.

April 25 2008 | Termodinamica | 1 Comment »