Sicuramente se sei uno sviluppatore web, un nerd, un geek o un hipster avrai sentito parlare o ti sei anche cimentato con Angularjs. Bene spesso si legge in giro di questo framework in maniera impropria o inesatta. Qui voglio riassumere i concetti base per conoscere in modo non erroneo Angularjs, perché si sa che é meglio conoscere e approfondire la materia per diventare un esperto nella stessa.
Che cosa é Angularjs?
Angularjs é un framework per applicazioni web open source. E’ stato creato nel 2009 da Misko Hevery e Adam Abrons e non da Google. Google gestisce Angularjs. La definizione ufficiale di Angularjs che puoi trovare nella documentazione ufficiale é :
AngularJS is a structural framework for dynamic web apps. It lets you use HTML as your template language and lets you extend HTML’s syntax to express your application’s components clearly and succinctly. Angular’s data binding and dependency injection eliminate much of the code you currently have to write. And it all happens within the browser, making it an ideal partner with any server technology.
In parole povere significa che Angularjs è un quadro strutturale per le applicazioni web dinamiche. Esso consente di utilizzare HTML come linguaggio di facciata e permette di estendere la sintassi HTML per estendere i componenti della nostra applicazione in modo chiaro e conciso. Associazione di dati in Angularjs e iniezione di dipendenze ci fanno eliminare grande parte di codice da scrivere, risparmiando molto tempo e l’interpretazione del tutto avviene all’interno del browser, che lo rende un partner ideale per qualsiasi tecnologia server utilizzata.
Avendo capito la definizione ufficiale di Angularjs, mi soffermerei sul fatto che é un framework, ossia “una struttura che facilita lo sviluppo, sia in termini di velocità che in termini di ordine e manutenzione del codice”. Un framework è quindi uno strumento che aiuta chi scrive il codice e soprattutto aiuta i team di sviluppo ed eventuali terzi che riprenderanno in mano il codice.
Caratteristiche di Angular
- AngularJS è un potente framework di sviluppo basato su JavaScript per creare Rich Internet Application (RIA).
- AngularJS fornisce agli sviluppatori opzioni per scrivere applicazioni lato client (utilizzando JavaScript) in modo pulito MVC (Model View Controller).
- Applicazione scritta in AngularJS è cross-browser compatibile. AngularJS fornisce codice JavaScript adatto ad ogni browser automaticamente.
- AngularJS è open source, completamente gratuito, e utilizzato da migliaia di sviluppatori in tutto il mondo. E’ rilasciato sotto la licenza Apache versione 2.0.
Caratteristiche principali Angularjs
- Data-binding : associazione di dati, ossia un processo che sincronizza un elemento della UI con un elemento della logica applicativa (sincronizzazione automatica dei dati tra un modello e i componenti da visualizzare).
- Scope : oggetti che fanno riferimento al modello. Essi agiscono come collante tra controller e view.
- Controller : funzioni JavaScript riferite a un particolare ambito (scope).
- Services : AngularJS sono dotati di una serie di servizi integrati per esempio, $ http per fare un XMLHttpRequests. Oggetti che vengono inizializzati una sola volta nella app.
- Filters : servono per selezionare un sottoinsieme di elementi di un array e restituire un nuovo array.
- Directives : Le direttive sono indicatori su elementi DOM (ad esempio elementi, attributi, CSS, e altro ancora). Queste possono essere usate per creare tag HTML personalizzati che fungono da nuovi widget personalizzati. AngularJS è dotato di direttive (ngBind, ngModel …).
- Templates : sono il risultato grafico delle informazioni che arrivano dai controller e modelli.
Qui di seguito un diagramma che illustra i componenti importanti di Angularjs:
Bene dopo questi fondamentali di introduzione al framework Angular JS analizziamo i vantaggi e gli svantaggi per ogni developer.
Svantaggi Angularjs
- Non sicuro. Bisogna prestare molta attenzione a tutte le autenticazioni.
- Se l’utente disabilita le librerie JavaScript la nostra applicazione perde di efficacia.