Dal nostro inviato Francesco Parisi :
Il php day è un evento molto considerato da tutta la comunità PHP e che si presenta annualmente con sempre maggiore affluenza, è organizzato dal Gr.U.S.P. (Gruppo Utenti Sviluppatori PHP Italiani) ed oggi alla sua quarta edizione.
Due giorni molto pieni di argomenti interessanti, peccato non aver potuto seguirli tutti vista la necessità di fare le conference in tre stanze separate.
La conferenza viene aperta da Zeev Suraski, sviluppatore israeliano e co-fondatore di Zend Technologies, il quale ha presentato la piattaforma cloud di Zend chiamata PHPcloud. La piattaforma permette di avere un ambiente integrato di sviluppo e debugging con la possibilità di condividere l’applicazione con i diversi componenti di un team. Molto interessante la possibilità di creare “on-the-fly” applicazioni di diversi framework e l’integrazione della piattaforma con Zend Sudio.
Negli inteventi successivi ci si è concentrati sui pattern usati comunemente in PHP prima dell’avvento della versione 5 di PHP da evitare, come ad esempio le classi Singleton o le classi statiche “Utility”. L’intenzione della community sembrerebbe essere quella di seguire la strada seguita dal C++ e dal Java, sia dal punto di vista dei pattern di programmazione sia da quello dello sviluppo del linguaggio PHP in se.
Altro argomento interessante affrontato durante la conferenza è quello riguardante le strutture dati in PHP, particolare di come si abusi della struttura dati degli array per ricreare ciò che in altri linguaggi viene implementato con delle strutture dati dedicate come liste, array di grandezza fissa, insiemi, stack e code (LIFO/FIFO). Ha mostrato come gli array, pur essendo molto comodi, hanno una grossa inefficienza dal punto di vista dell’uso di memoria. Infatti per renderli così versatili in PHP gli array sono stati modellati come doppie liste linkate e quindi l’uso di questa struttura dati comporta avere un overhead dovuto all’uso di diversi puntatori. Per ovviare a questo problema, sono stati presentati gli SPL Object, introdotti in PHP 5. Le strutture dati presenti sono: SplDoublyLinkedList, SplStack, SplQueue, SplqHeap, SplMaxHeap, SplMinHeap, SplPriorityQueue, SplFixedArray, SplObjectStorage. Da notare come l’evoluzione del PHP ci porta da una struttura dati generica come gli array ad una struttura creata ed ottimizzata esclusivamente per lo scopo voluto.
Un caso di uso del PHP molto interessante è stato quello presentato da Lorenzo Alberton e la piattaforma Datasift la quale riesce a gestire milioni di stream dati, per esempio provenienti da Twitter, in real-time per ricercare un particolare trend. Sono state presentate le attuali tecnologie per riuscire a gestire questa mole di dati e le tecnologie di monitoraggio del software. In particolare possiamo citare: HAProxy e Varnish per il Load Balancing e la cache dei server, Mashery I/O Docs per permettere agli sviluppatori di chiamare le API e poterle testare, Zookeeper per la gestione di server distribuiti, Kafka Processing Queue sistema di messaggistica per la gestione degli stream di dati, per il monitoraggio del server e del software Zenoss come tool di monitoring, StatsD come demone di raccolta di statistiche e Graphite come tool per la creazione di grafici in real-time.
Un argomento molto interessante ripreso molto spesso nelle conferenze successive è quello dell’automatizzazione di processi di sviluppo.
Principalmente è stato presentato PHING, un tool che permette di automatizzare il processo di testing dell’applicazione, deploy sul server, esecuzione di sql per allineamento DB, operazioni SVN, generazione di documentazione. Affiancando a PHING una applicazione come Jenkins, che permette di monitorare l’esecuzione di diversi compiti come cron o il processo di build di un progetto, è possibile con un semplice click lanciare PHING ed effettuare tutta una serie di operazioni che di solito vengono fatte manualmente con maggiore possibilità di errore.
La conferenza termina con l’intervento di David Coallier che mostra come è nato il PHP e illustra la direzione futura intrapresa per le prossime versioni, inclusi miglioramenti dell’occupazione di memoria (di cui la comunità sente molto il bisogno) e miglioramenti all’uso degli oggetti.
Alla prossima.
Foto by F.Parisi