
guide
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Si può fare Javascript senza i framework! Creiamoci la nostra piccola libreria standalone
Nel mio precedente articolo intitolato Framework vs Script standalone, avevo elencato tutti i vantaggi che uno sviluppatore Javascript può trarre dall’uso e dal non uso di un particolare framework. Nello specifico, se è vero che tramite una libreria famosa e collaudata possiamo creare applicazioni di nuova generazione senza avere conoscenze profonde del linguaggio, è anche corretto affermare che non sempre riempire le pagine di kb per poche mansioni risulta essere una buona abitudine.
Ci sono davvero tanti esempi di ottimi script standalone che circolano in rete e che riescono a sostituire egregiamente la presenza di un framework quando la mansione è di dimensioni ordinarie: un esempio classico sono i plug-in di Michael Leigeber ( http://www.leigeber.com/): DropDown Menu, Table Sorter, Accordion, TinyBox e cosi via.
Tuttavia, realizzare molti script standalone potrebbe portare ad un inconveniente da non sottovalutare: l’impossibilità dell’interoperabilità degli stessi. È difficile infatti integrare nella stessa applicazione o nella stessa pagina script che utilizzano sintassi differenti, che ripetono le stesse operazioni o che, peggio ancora, moltiplicano il quantitativo di risorse da utilizzare da parte del browser.
Per questo motivo, è opportuno crearsi una propria metodologia di sviluppo che segua sempre le stesse regole e la stessa sintassi, e che faccia in modo che questa raccolta di script standalone possa essere integrata senza creare problemi: in questo modo, otterremo una piccola (nel nostro caso semplicissima) libreria Javascript personale.
Realizzare una libreria Javascript, per quanto semplice possa essere, richiede delle competenze piuttosto elevate da parte dello sviluppatore, prima tra tutte la buona conoscenza del linguaggio Javascript. Sono moltissimi infatti, i possibili problemi di incompatibilità che potrebbero presentarsi. Per ovviare a questo e ad altri problemi, e per fare in modo che le spiegazioni siano accessibili a tutti, negli esempi che mostrerò in questo articolo utilizzeremo i seguenti accorgimenti:
Fatte queste precisazioni, è il momento di passare ad analizzare le regole fondamentali da seguire quando ci accingiamo a realizzare una libreria personale.
La prima, fondamentale regola necessaria alla costruzione di una libreria personale, è assolutamente quella di utilizzare una sintassi ed uno schema di scrittura comune nel corso di tutto il progetto. Per capire meglio questo concetto, proviamo a pensare a due dei maggiori framework presenti in circolazione: jQuery e MooTools. Il primo utilizza una sintassi abbreviata e molto “compatta”, mentre il secondo presenta getter e setter ben definiti:
// jQuery code
$('#myEl').attr('href');
$('#myEl').css('color', 'blue');
// MooTools code
$('myEl').getAttribute('href');
$('myEl').setStyle('color', 'blue');
Se si mischiassero questi modelli, si otterrebbe una API incomprensibile, sia da leggere che da utilizzare. È bene dunque porsi, prima di iniziare la fasi di scrittura, delle regole precise. Nel nostro caso, a scopo illustrativo, utilizzeremo una sintassi piuttosto estesa, che non bada a risparmiare kb.
Quando si crea una libreria (in un qualsiasi linguaggio), ciò che non può assolutamente mancare è la documentazione. Nel caso delle librerie Javascript, raramente gli sviluppatori scrivono le documentazioni delle loro API in modo esterno, ma tendono a basarsi sui commenti lasciati nell’applicazione, oppure posizionati in appositi file esterni. Sarà poi compito di particolari engine server-side tramutare il tutto in XHTML comprensibile.
Ciò che interessa a noi, è fare in modo di capire quello che abbiamo scritto nella nostra applicazione, negli utilizzi futuri della stessa. Tutto questo si ottiene grazie alla presenza dei commenti. I commenti non devono assolutamente essere sottovalutati, la loro importanza è notevole.
Per questo motivo, anche nel caso dei commenti, sarà opportuno utilizzare una sintassi comune, oltre che esplicativa ed esaustiva (una buona abitudine è quella di inserire snippet di codice direttamente nei commenti, per esemplificare in modo diretto l’utilizzo delle funzioni o dei metodi). Ecco un esempio di commento ad una funzione Javascript:
/*
Function Name: setStyle
Description: imposta una proprietà css inline di un elemento ad un determinato valore.
Arguments:
[DOMElement] element : l'elemento DOM
[string] style : la proprietà css da impostare
[string] value : il valore css della suddetta proprietà
Demo:
setStyle($('myEl'), 'color', 'blue');
*/
function setStyle(element, style, value) {
// ...
}
Come ho scritto nella sezione PHP nell’articolo Codice procedurale vs OOP, non esiste un modello unico di programmazione. Quelli più comuni sono sicuramente il modello procedurale e il modello OOP. È assolutamente sconsigliato mischiare più approcci nel corso della medesima applicazione Javascript: questo porterebbe i seguenti svantaggi:
Per chiarire al meglio questo concetto, sempre a titolo esemplificativo, prendiamo ancora una volta in considerazione i framework jQuery e MooTools. Il primo usa un approccio più procedurale e basa tutto sulla centralizzazione del DOM e degli elementi. Il secondo segue decisamente un approccio più Object Oriented, ponendo come parte fondamentale l’uso ed il riuso delle istanze delle classi:
// jQuery code
$('#myEl').animate({color: 'red'}, 2000);
// MooTools code
var fx = new Fx.Morph('myEl', {duration: 2000});
fx.start({color: 'red'});
Il risultato è pressoché il medesimo, entrambi sono altamente estensibili, ma… con un approccio totalmente differente.
È dunque di fondamentale importanza scegliere un modello di programmazione da seguire nel corso di tutta l’applicazione, tra quelli più vicini alle nostre metodologie di programmazione e ai nostri gusti. Nei nostri esempi utilizzeremo una sintassi Object Oriented basata sulle classi, o meglio, su contenitori di metodi.
Lo scopo principale di una libreria è quello del riutilizzo delle risorse in essa contenute, senza la necessità di riscrivere ogni volta la stessa procedura. Per questo motivo, nel corso degli script che si avvalgono della nostra realizzazione, sarà una buona norma utilizzare e riutilizzare le risorse ogni volta che si presenti la necessità, senza l’aggiunta di snippet o codici nativi.
// funzione setStyle
function setStyle(element, style, value) {
// ...
}
// buona pratica
for(var i = 0; i Un'altra ottima possibilità offerta dalla presenza di una libreria è quella di fare in modo che la mole di codice da scrivere da parte dell'utente finale si riduca drasticamente. Per questo, possiamo modificare lo snippet precedente aggiungendo una più performante funzione setStyles, che imposti lo stile ad una collezione di elementi in un'unica riga di codice:
[code lang=js]
// funzione setStyles
function setStyles(elements, style, value) {
// ...
}
setStyles(elementsCollection, 'color', 'red');
Per quanto possiamo migliorare, per quanto il nostro codice possa essere di qualità, sarà sempre una buona regola dare un'occhiata agli approcci utilizzati dagli esperti del settore e, cosa fondamentale, capirne il perchè.
Se viene dichiarato deprecato un metodo, se viene preferito un determinato approccio ad un altro, se vengono introdotte tecniche e concetti nuovi, se vengono modificate le API: capire il perchè di queste strategie è di fondamentale importanza per la propria evoluzione personale in quanto sviluppatore. Una volta capito il punto di vista di uno sviluppatore esperto, allora la nostra opinione ed il nostro livello di qualità ci consiglieranno se essere d'accordo con lui o meno (magari il tutto può essere condito e supportato da qualche buon test). Promuovere o bocciare immediatamente questi concetti basandosi sul "sentito dire" è assolutamente l'approccio più errato da seguire.
Tra gli esperti del settore che offrono periodicamente consigli, pareri, opinioni e snippet Javascript in rete troviamo:
In questa prima parte dell'articolo abbiamo affrontato l'aspetto puramente teorico. Le regole fondamentali presentate sopra tuttavia, non vogliono rappresentare un punto da seguire alla lettera, ma rappresentano i consigli spassionati che costituiscono le basi di un progetto di qualità, scritto in Javascript.
Nella prossima parte affronteremo l'aspetto pratico e passeremo alla fase di realizzazione della nostra piccola libreria, che avrà una struttura modulare ed integrabile con altri moduli della stessa applicazione.
Se vuoi aggiornamenti su Creare una piccola libreria standalone - La teoria inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
Abbiamo ricevuto la tua richiesta di iscrizione. Se è la prima volta che ti registri ai nostri servizi, conferma la tua iscrizione facendo clic sul link ricevuto via posta elettronica.
Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali.
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
Tutti i linguaggi per diventare uno sviluppatore di app per Android.
Come creare applicazioni per il Web con PHP e MySQL per il DBMS.
Tutte le principali tecnologie per diventare uno sviluppatore mobile per iOS.
I fondamentali per lo sviluppo di applicazioni multi piattaforma con Java.
Diventare degli esperti in tema di sicurezza delle applicazioni Java.
Usare Raspberry Pi e Arduino per avvicinarsi al mondo dei Maker e dell’IoT.
Le principali guide di HTML.it per diventare un esperto dei database NoSQL.
Ecco come i professionisti creano applicazioni per il Cloud con PHP.
Lo sviluppo professionale di applicazioni in PHP alla portata di tutti.
Come sviluppare applicazioni Web dinamiche con PHP e JavaScript.
Fare gli e-commerce developer con Magento, Prestashop e WooCommerce.
Realizzare applicazioni per il Web utilizzando i framework PHP.
Creare applicazioni PHP e gestire l’ambiente di sviluppo come un pro.
Percorso base per avvicinarsi al web design con un occhio al mobile.
Realizzare siti Web e Web application con WordPress a livello professionale.
Come creare database e collection, inserire, estrarre, aggiornare e rimuovere dati da una base di dati MongoDB con Python
Impariamo ad utilizzare Takamaka, una blockchain Java Full Stack, per scrivere codice Java installabile ed eseguibile su una blockchain
StandardJS è uno strumento in ambiente Node.js, per la definizione ed il controllo di uno standard di codifica in JavaScript.
Android è il sistema operativo mobile più diffuso attualmente sul mercato. Imparare a sviluppare app per Android è quindi la chiave d’accesso ad uno dei mercati più attivi nello sviluppo mobile. Questa guida completa e dettagliata fornisce tutte le informazioni necessarie per imparare a progettare ed implementare app moderne e funzionali per Android.