Framework e microframework

Scopri di più >
Framework PHP

Una volta c'erano il web e le pagine html statiche. Poi sono arrivate le pagine dinamiche, responsive e javascript ha preso sempre più posto nel contesto del progetto. Nel frattempo abbiamo perso per strada qualche pezzo, il più clamoroso sicuramente Flash Player senza dimenticare Silverlight.
La progettazione delle applicazioni web si è evoluta enormemente anche se i principi di base sono rimasti gli stessi. E' possibile infatti implementare una pagina web alla vecchia maniera, così com'era stata pensata da Tim Berners Lee oppure utilizzare tecniche sofisticate che non fanno altro che aggiungere strati di codice al fine di rendere l'ambiente di sviluppo più flessibile, più sicuro, più manutenibile. Ma i concetti di base rimangono gli stessi tant'è che il web, così come viene percepito dalle macchine, è rimasto sotanzialmente lo stesso.

E' cambiata invece la complessità delle applicazioni pubblicate sul web, un po' perchè sono aumentate le esigenze un po' perchè le applicazioni per desktop stanno migrando verso la nuvola. Pensiamo per esempio alle suite da ufficio, sempre più presenti sotto forma di applicazione web, gratuite e con strumenti per la condivisione dei documenti.

Framework

I framework, in generale, definiscono un modello di sviluppo che rende più chiara l'organizzazione del progetto. Sono inoltre estendibili con plugin in terze parti in modo da rendere disponibili funzionalità indispensabili quali orm, preprocessori html e css, logging, i18n.
In genere i framework prevedono dei sistemi di sicurezza a strati per cui, alcune parti dell'applicazione saranno accessibili solo a determinati utenti. Il progettista definisce le security a livello di configurazione e non di codice demandando la responsabilità al framework.
Tutta la parte di dialogo con il db viene gestita tramite un orm che garantisce interoperabilità e sicurezza. Infatti le query utilizzano una sintassi sql-like che ha il duplice effetto di astrarre il codice dall'effettivo dbms utilizzato e di preprocessare la sintassi in modo da evitare attacchi di tipo sql injection.
Si comincia a capire che l'obiettivo finale è quello di sollevare lo sviluppatore da tutti i (grossi) problemi di contorno in modo che possa finalizzare gli sforzi sulla business logic.

Micro-framework

Micro-Framework PHP

Capita spesso di dover realizzare progetti di dimensioni contenute che potrebbero prescindere dall'utilizzo di un framework. Pensiamo per esempio ad un'applicazione fatta di qualche pagina (login utente e compilazione di un rapporto, per esempio) oppure una piccola interfaccia web per Raspberry volta a visualizzare i dati acquisiti dai sensori esterni o infine un web service che non necessita di interfaccia grafica ma deve essere veloce, disponibile e sicuro.
Il problema è che i framework creano dipendenza e quando cominci ad apprezzarne i vantaggi difficilmente riesci ad immaginare un modo diverso di impostare i progetti. A fronte di questo l'estetica reclama il giusto equilibrio delle parti e il buon senso ci dice che un sistema snello nasconde meno bug ed è più facile da aggiornare. Questo pensiero è stato fatto anche dai maggiori player del settore, pensiamo per esempio a Lumen, il fratello miniore di Laravel o a Silex, il micro-framework ricavato da Symfony. Soluzioni ottime, ma general purpose.
Per le considerazioni fatte prima, quando si va nel micro è necessario avere una controllo puntuale delle risorse e questo può essere fatto solo se si conosce la struttura sottostante. Una pagina web richiede risorse diverse rispetto ad un web service, così come i progetti sviluppati su piattaforma Raspberry.

Vapo

Semantica Vapo Micro-Framework

Avere un micro-framework proprietario permette di conoscere nel dettaglio i meccanismi sottostanti e consente di utilizzare le giuste risorse a seconda del contesto in cui il progetto si deve muovere.
Vapo si appoggia sulla bare machine. Non ha librerie sottostanti che lo supportano se non quelle standard di PHP. Utilizza il sistema delle route per centralizzare la gestione degli url e consentire il corretto instradamento delle richieste.
Allo stato attuale presenta un solo controller per i link interni e un controller per le chiamate ajax. Un web service per esempio utilizzerà maggiormente il controller ajax lasciando al primo la gestione degli errori e i reindirizzamenti.
Un framework leggero che non si fa mancare nulla:

  • Gestione del data base mediante orm Doctrine
  • Logging avanzato tramite Monolog
  • Pre processore html Twig
  • Pre processore css sass

jQuery mette a disposizione gli strumenti per rendere ecmascript compatibile cross browser, mentre la struttura della pagina può essere modellata e resa responsiva mediante librerie come Bootstrap.
Tutti i componenti fin qui citati possono essere presenti o meno nel micro-framework a seconda delle finalità del progetto.
L'utilizzo di Composer per la gestione delle librerie di terze parti consente di individuare facilmente i componenti installati ed effettuare rapidi aggiornamenti.

Deployment

La messa in produzione di una nuova applicazione è una delle operazioni più critiche e dovrebbe essere considerata primaria nella valutazione di un framework.
Lo sviluppo di un progetto viene supportato da un server interno che inibisce tutti i problemi legati alla configurazione del server web. Quando si passa al mondo reale tutto cambia in funzione dell'ambiente che ospiterà l'applicazione e del controllo che abbiamo su di esso.
Vapo esula da tutto questo e permette deploy veloci ed in qualsiasi ambiente, server, vps, siti in hosting. Tutto il progetto rimane in una sotto directory lasciando la document root pulita e in grado di ospitare altre applicazioni.

Conclusioni

Semantica è in grado di offrire analisi, progettazione, sviluppo e messa in produzione di applicazioni web a qualsiasi livello utilizzando, a seconda del tipo di sfida proposta, framework di terze parti (Symfony, Laravel) o micro-framework proprietario.
Potete contattarci senza impegno per conoscere i costi di realizzazione di un progetto o semplicemente per trovare assieme soluzioni applicative alle vostre esigenze. Troverete sempre massima serietà e passione in tutto quello che facciamo.

27 Giugno 2018
Scopri di più >

Questo sito utilizza cookies tecnici al fine di migliorare la tua esperienza di navigazione   HO CAPITO

Maggiori informazioni sono disponibili   QUI