E’ già da un po’ di tempo che, tra un progetto e l’altro, cerco di dedicarmi allo studio dello Zend Framework 2 ed è vero quello che si dice, ZF2 è difficile, molto.

Nonostante provenga da una piattaforma complessa ed elaborata come Magento, prendere confidenza con questo nuovo framework risulta essere alquanto ostico, e posso tranquillamente dire che se proprio non ci si vuole forzare ad usarlo, probabilmente si passerebbe a qualcos’altro nel giro di 3-4 giorni (uno dei motivi per il quale, secondo me, frameworks come laravel e symfony stanno avendo così tanto successo).

Tuttavia, proprio la sua complessità, l’utilizzo massivo di design patterns, la qualità del codice, e la ricerca spasmodica di best practices ti spinge a studiare, a risolvere i problemi di sempre utilizzando nuove tecniche, insomma  ad essere un programmatore migliore! E già questo è, a mio parere, un punto fondamentale se si vuole passare al livello successivo.

Lo ZF2 è estremamente flessibile e questa è la causa principale della sua complessità e verbosità, può forse apparire anche un po’ sovrastrutturato. Personalmente non disdegno questa caratteristica, in fin dei conti esistono molti accelerators che risolvono questo problema di prestazioni dovuti alla incredibile quantità di configurazioni richiesta, quindi W la verbosità! :))

Nonostante tutte le difficoltà, dopo tanto sforzo e frustrazione, quando si entra nell’ottica di ragionamento (non dopo essersi fatti una vera e propria cultura sui vari design patterns) e si comincia a capire dove iniziare a guardare per risolvere i problemi, iniziano ad arrivare le prime soddisfazioni e sviluppare diventa quasi facile!

Zend Framework 2 richiede ragionamento, un sacco di ragionamento e conoscenza!

Non è un framework per tutti, e non segue la filosofia del Rapid Application Development.

Quindi se si inizia un progetto con l’idea “ah ok, uso lo ZF2 così risparmio tempo” si sta sbagliando di grosso. Quando si scrive un’app con ZF2, l’architettura deve essere ben pensata fin dall’inizio, quindi va calcolato nel complesso, un tempo più o meno considerevole relativo allo studio dell’architettura del software che si vuole creare. Come detto prima, non è un framework per tutti e non in tutti casi può essere consigliabile usarlo.

Infatti si può pensare di usare ZF2 per progetti medio/grandi.

E’ alquanto inutile ed oserei dire controproducente “impazzire” studiando (se si è alle prime armi, specialmente con la programmazione OOP che comunque ora come ora qualsiasi professionista che si reputa “sviluppatore” dovrebbe conoscere) design patterns etc. se lo scopo è quello di creare una landing page più o meno statica con un form di iscrizione e un pulsante di azione! :)

Quindi, se ti stai chiedendo dovrei dare a questo framework una possibilità?, la risposta secondo me è SI, ma parti dal presupposto che la curva di apprendimento è piuttosto alta, e che in un primo momento, la quantità di configurazioni necessarie anche solo per stampare a video il classico “hello world” ti sembrerà da pazzi! Ma puoi stare certo che il gioco vale la candela…