venerdì 31 gennaio 2014

AngularJS: primi approcci

Recentemente ho avuto modo di provare AngularJS
Devo dire che, dopo i primi momenti di smarrimento, sono rimasto veramente colpito.
L'approccio da cui questo framework parte è "la tela bianca". HTML non è più un linguaggio con tag fissati, ma diventa veramente estensibile.
Ma partiamo dall'inizio: le prime due lettura da fare sono il tutorial e "10 ragioni per cui usare AngularJS"
E proprio quei 10 punti fanno capire le vere potenzialità del framework

Il modello MVC è implementato pesantemente, ma talmente bene che alla fine risulta veramente comodo. All'inizio è un po' complesso, specialmente capire che tutto si basa sulla Iniezione di Dipendenza. Si creano servizi e Controller, li si inietta nell'applicazione e poi si usano.

Il Data Model è implementato molto bene. Il Data Binding è un modello 2-Way, quindi ogni variazione agli oggetti nello scope si ripercuote immediatamente sulla pagina HTML. Insomma, non bisogna proprio fare niente (vedi esempio).

Service Providers: l'idea di dividere in maniera netta la parte di presentation (Controllers + HTML) e i servizi di recupero dati (con chiamate asincrone Ajax fatteattraverso gli oggetti $http e $resource) permettono sia una scrittura di codice molto snella che una grande riusabilità del codice stesso. Ad esempio un servizio per la gestione di anagrafiche clienti (l'esempio più banale che mi viene in mente) esporrà i metodi query() (eventualmente con filtri), get() per la singola anagrafica save() per creare/modificare un'anagrafica esistente e delete() per eliminare. Questo servizio può essere usato ovunque nell'applicazione, senza ridondanza di codice. Lo so, sono concetti banali per chi ha esperienza di programmazione strutturata lato server, ma applicato ad un'applicazione web HTML/Javascript suonano quasi rivoluzionari. Impostare il progetto con un'architettura del genere, fatta son JavaScript puro, prevede un gran controllo ed un grande sforzo.

Altra idea folgorante sono, a mio avviso, le direttive. Permettono sostanzialmente di scrivere componenti da inserire nel codice semplicemente con un tag, senza dover fare workaround particolari.
Pensiamo ad esempio all'evento di click su un pulsante e confrontiamo l'approccio ad esempio di JQuery con quello AngularJs.
In JQuery (vedi esempio JQueryUI Button)si dichiara un tag button, e nello script di startup lo si manipola con una direttiva $("button").button().click( function()..... per linkare l'evento di click.
In AngularJS invece, tutto è già contenuto nella dichiarazione

Particolare attenzione poi è stata posta al test delle applicazioni. Essendo le applicazioni ben divise nei vari aspetti, risulta più facile testare i vari servizi, controller e quant'altro.

Questa è solo una prima panoramica sul mondo AngularJS. Spero di poter approfondire la mia conoscenza del framework, mi sembra che abbia grandi possibilità.

lunedì 13 gennaio 2014

Windows 9 arriverà ad Aprile 2015

Sembra che in casa Microsoft abbiano fretta di aggiornare i sistemi, dopo lo scarso risultato di vendite di Windows 8 (che, lo ricordo, è preinstallato su qualsiasi dispositivo, e anche così non riesce a sfondare sul mercato)
Leggendo l'articolo sembra che l'orizzonte sia sempre più quello dei dispositivi connessi, e quindi mi chiedo: chi usa il pc come me, anche per sviluppare, o un povero ragioniere che deve fare contabilità, che cavolo se ne fa di un o.s. per i dispositivi mobile?
Spero quindi che mantengano un desktop umano, altrimenti non vedo grossa diffusione negli ambienti di lavoro.

http://www.repubblica.it/tecnologia/2014/01/12/news/windows_9_arriver_ad_aprile_2015_e_quest_anno_aggiornamento_importante_per_l_8-75725577/?ref=HRERO-1