Archivio mensile:febbraio 2014

Incontro Febbraio 2014 – HHVM, Phalcon e Pthreads

L’incontro di febbraio, più che un talk,  è stata una sessione collaborativa su diversi argomenti, partendo da HHVM.

Abbiamo installato su una macchina virtuale, creata con Vagrant, una Debian Wheezy, seguendo poi le istruzioni del Wiki su Github, con in parallelo la versione standard di PHP della distribuzione (“apt-get install php5”). Per velocizzare i tempi e non scriverci da zero il codice per fare benchmarking, abbiamo scaricato uno script che calcola i tempi di esecuzione di alcune funzionalità di base del linguaggio. Questi sono stati i risultati:
Schermata 2014-02-27 alle 10.09.41 Schermata 2014-02-27 alle 10.09.54
HHVM compila il codice e lo salva in un db SQLite, recuperandolo agli avvii successivi, ma dal test consecutivo fatto non sembra aver dato risultati migliori:
Schermata 2014-02-27 alle 10.41.53
Inoltre, facendo girare un’applicazione esistente è emerso che non tutte le estensioni PHP sono disponibili attualmente. Non abbiamo indagato ulteriormente (e ci riserviamo di farlo),  ad una prima analisi perciò, ci è sembrato più performante  e meno problematica una soluzione PHP + OPCache.

Parlando di benchmark e codice precompilato, è naturalmente emerso Phalcon, un interessante framework MVC scritto in C e compilato come estensione PHP.  E’ un esperimento degno di nota, ma tra gli svantaggi che può portare c’è la poca flessibilità delle API interne (se non si ha dimestichezza con C e moduli precopilati) e la diffusione del progetto (Trends, Github, Github Pulse).

E’ stato poi il turno di Pthreads e processi multipli in background. La discussione è emersa dall’esigenza di utilizzare più risorse all’interno di un’esecuzione, in modo asincrono e perciò non bloccante. Questa estensione Pecl ci è sembrata un’alternativa interessante alla gestione dei processi con l’utilizzo di exec o shell_exec o servizi più complessi.

Qualche spunto di riflessione anche sul Garbage Collector e problemi sulla gestione della memoria con le Closure nelle prime versioni di PHP 5.3.

Incontro di gennaio 2014

Sapete in che modo Johnny Depp nei Pirati dei Caraibi riesce a duellare sull’albero maestro della Perla Nera?
Oppure come Daniel Craig (alias 007) possa lottare corpo a corpo su un treno in corsa prima di cadere da un precipizio di almeno 40 metri?
Semplice, non lo fanno loro: lo fanno i loro stuntman
Ma cosa c’entra tutto questo con lo sviluppo di software in PHP? Non stiamo mica parlando di cinema! Eppure è proprio da questa tecnica cinematografica, chiamata “stunt double”, che i teorici del TDD si sono ispirati per elaborare la teoria legata al “Test Double”.
Durante questo primo incontro del 2014, Carmelantonio ha introdotto il pattern Test Double. Dopo un rapido riepilogo sul TDD, è entrato nel vivo della discussione attraverso una panoramica sulle principali varianti (Dummy, Stub, Mock, ecc.), ha spiegato quando utilizzarli e i benefici che se ne hanno. Successivamente, ci ha illustrato diversi esempi pratici che mostrano come utilizzare questa tecnica nel quotidiano.

La serata è proseguita in Pizzeria, al “Quelli che ben pensano 2“, proprio di fronte all’I3P dove abbiamo tenuto l’incontro. Qui, il “giropizza”, l’ha fatta da padrone.

Dopo la serata sul Test Double rimane aperto un’ultimo dubbio: ma quindi, anche Chuck Norris, usa controfigure?!

Qui le slide dell’incontro.