Intervista a Paolo Possanzini :: Prima parte

Paolo Possanzini è Co-fondatore, CTO e socio di TeamDev, nonchè co-fondatore della community DotNetUmbria.

Appassionato da sempre di programmazione, dal 1998 l’ha fatta diventare una professione.

 

Paolo ha realizzato di recente una struttura software molto utile e interessante che permette di integrare facilmente i sistemi cartografici negli applicativi web e mobile, per cui è stato chiamato in più occasioni a parlarne approfonditamente davanti a un pubblico sempre più vasto.

Abbiamo deciso perciò di intervistarlo per saperne di più di questo prodotto.

 

  1. Cosa ti ha spinto a realizzare questo framework?

Intanto parliamo di cosa è un framework; un framework è un insieme organizzato di funzionalità per svolgere un compito specifico. Normalmente non si scrive un framework per far fronte alle esigenze di un singolo progetto, ma se si vuole riutilizzare il lavoro fatto per più progetti in modo organico, allora è conveniente organizzare parte del lavoro a formare un framework indipendente da riutilizzare . La spinta è nata appunto dall’esigenza di sviluppare molti lavori che includevano servizi cartografici, e quindi dal voler riutilizzare il lavoro fatto, e anche dall’uniformare il modo in cui in TeamDev stavamo integrando i componenti Javascript di Esri nei nostri lavori in AngularJS.

  1. Quali sono i vantaggi in termini di risparmio di scrittura di righe di codice?

I vantaggi sono notevoli. Nella modalità tradizionale è necessario implementare in javascript tutta la parte di creazione e gestione della mappa e di tutte le parti grafiche. Di solito ci si trova a scrivere in Javascript tutta una serie di cose che in realtà fanno farte non della logica di manipolazione dei dati ma di logica di visualizzazione.

Nella programmazione moderna si tende a dividere i problemi e risolverli in modo specifico. Noi abbiamo diviso tutta la parte di grafica dalla parte di logica, ed abbiamo implementato il tutto in modo da dover scrivere in javascript solo la parte che riguarda la logica dei dati. La parte di grafica è in HTML (che nel web è il linguaggio più naturale per descrivere la grafica). Abbiamo scritto tutto inserendo delle “direttive” che ci permettono di scrivere Tag customizzati estendendo di fatto l’HTML che andiamo a scrivere.

  1. AngularJS cosa mi offre in più rispetto al resto? Quali sono le caratteristiche del framework AngularJS che lo rendono migliore rispetto ad altri framework?

AngularJS è molto completo e permette una ottima divisione del progetto in modo da separare le parti (logica di business, grafica, validazioni, etc) in modo organico. Ci sono altri framework che eseguono questo compito altrettanto bene, ma nei nostri progetti scegliamo Angularjs sia per la sua diffusione, sia per la sua stabilità e velocità di sviluppo. E’ la sua completezza che lo rende appetibile, inoltre porta lato browser un modello di sviluppo organico tipico di applicazioni più complesse e in passato relegate solo ad una gestione lato server

  1. Quali sono gli aspetti di AngularJS che lo rendono così adatto all’integrazione con il GIS?

AngularJs permette una fortissima separazione della logica necessaria per la gestione della parte grafica dalla logica necessaria per gestire i dati di un’applicazione complessa e per interagire con servizi esterni. In un’applicazione GIS ci sono tantissime componenti grafiche che non sono descritte direttamente dal linguaggio HTML e che quindi necessitano di una gestione “speciale”. Angular permette di affrontare questa problematica in modo elegante rendendo possibile creare elementi del linguaggio HTML ad Hoc, senza dover mischiare le parti di gesitone dei dati con la parte di descrizione della parte grafica dell’applicazione.

  1. Da un punto di vista prestazionale il fatto di essere una framework e non una semplice libreria come si comporta AngularJS?

 Sviluppando il nostro progetto come framework siamo obbligati a guardare un po’ più in grande ed in prospettiva rispetto allo sviluppo di una libreria che può avere una vita più breve ed un ambito più ristretto.

Un framework deve essere organizzato in modo più organico e quindi devono essere risolti a livello di “design” le problematiche di interazioni tra le varie parti del framework stesso e con il mondo esterno. Solitamente questo si traduce in una maggiore libertà di espressione dello sviluppatore che lo utilizza, perché per descrivere un comportamento complesso è necessario una minore quantità di codice che diventa più leggibile ed organico.

La semplificazione del codice si traduce poi in una maggiore velocità di esecuzione, appunto perché la descrizione del processo è più semplice e breve.

E’ un circolo virtuoso che si innesca in questo tipo di progetti, che permette una maggiore manutenzione del codice, ed una comprensione migliore del codice scritto da altri e quindi una migliore qualità dei prodotti realizzati.


Fine Prima Parte

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.