Category Archives: Programmazione

Clean Code: codice pulito… e profumato!

Cover

Uno dei temi tra quelli più frequentemente discussi in questo periodo tra gli sviluppatori è quello del Clean Code, che tradotto letteralmente significa appunto codice pulito.

Ma cosa si intende con questo termine? A prima vista è facile pensare che si tratti di una nuova buzz word in voga al momento, ma in realtà la definizione nasconde molto di più.

Che cos’è il Clean Code?

Posso rassicurarvi sul fatto che Clean Code non è un nuovo marchio di fabbrica dietro il quale si nasconde un capitolato di rigide norme sulle quali non si può transigere pena la perdita del “bollino di qualità” o di una qualsivoglia certificazione ISO.

Tutto nasce dal libro di Robert “Uncle Bob” Martins, Clean-Code: A Handbook of Agile Software Craftsmanship, la cui prima pubblicazione risale al 2008. Sebbene il libro sia in circolazione già da qualche anno, sento parlare pochissimo di questa tematica, che invece – a mio avviso – è estremamente importante e rappresenta un must have, o meglio un must know per chiunque voglia definirsi uno sviluppatore professionista.

Il libro contiene consigli e suggerimenti che aiutano lo sviluppatore a scrivere codice pulito, ovvero codice che risulti chiaro e leggibile, e di conseguenza facilmente mantenibile, sia da altri sviluppatori sia dal “se stesso” del futuro, che ne sarà molto grato. Come direbbe Marco Montemagno, «That’s it!». 🙂

Uncle Bob espone in modo chiaro le pratiche da seguire nella scrittura del codice, e anche le trappole da evitare, fornendo anche numerosi esempi di codice a corredo, scritti in linguaggio Java e fondamentali per fissare i concetti. Se utilizzate un linguaggio di programmazione differente, non temete: gli esempi saranno comprensibili comunque senza alcuna difficoltà.

Io la considero una lettura imprescindibile, alla pari del celebre Design Patterns: Elements of Reusable Object-Oriented Software della mitica Gang of Four, e anche un bagaglio culturale indispensabile, come lo sono i principi SOLID o la misurazione e limitazione della complessità intrinseca del codice espressa dalla Cyclomatic Complexity.

I principi in breve

Gli argomenti trattati dal volume sono molteplici e affrontano diversi ambiti della scrittura del codice. Si inizia dalla valutazione del costo intrinseco che le software house sostengono per la manutenzione di codice confusionale, o per riscrivere progetti “nati male” che finiscono inesorabilmente per diventare una nuova Big Ball of Mud.

Clean Code - Meaningful NamesSi prosegue con le regole di buona condotta per scrivere codice che abbia invece un futuro roseo, spaziando dalla scelta di nomi corretti per gli identificatori, che siano intelligibili e ricercabili, alla dimensione e struttura dei metodi, al numero di azioni che compiono, fino al numero ideale di parametri che dovrebbero avere. Si passa poi alla scrittura di commenti che siano efficaci, alla corretta gestione (e generazione) degli errori durante l’esecuzione e così via. Si termina infine con l’approccio giusto per suddividere i contesti applicativi che influiscono direttamente sull’organizzazione dei moduli software.

Mi fermo qui, inutile spendere altre parole: la gamma di problematiche affrontate dal testo sono così estese che qualunque sintesi non le rende giustizia.

Parliamone assieme…

Se siete interessati all’argomento, ne parlerò (in modo approfondito) nel seminario che si terrà a Piacenza il prossimo 6 giugno, in occasione del Delphi Day 2018.

Potete partecipare seguendo il link, anche se utilizzate un linguaggio differente: sebbene gli esempi siano scritti ovviamente in Delphi, i concetti che rappresentano la parte più sostanziosa saranno esposti in modo comprensibile a chiunque.

Mi raccomando quindi… da oggi, fate risplendere il vostro codice rendendolo pulito, e anche profumato! 😜

Cyclomatic Complexity: il colesterolo del codice sorgente

In questo articolo parleremo del colesterolo del codice sorgente, ovvero ciò che viene definito come Cyclomatic Complexity.

Ebbene sì, hai letto bene: anche il codice sorgente potrebbe avere problemi di trigliceridi. 🙂

Se anche tu sviluppi software come me, ti sarà senz’altro capitato di avere a che fare con il cosiddetto Spaghetti Code: è un termine usato per indicare quel tipo di codice che diviene incomprensibile poiché pieno zeppo di condizioni, cicli, salti e rimandi, a tal punto da sembrare una palla appiccicosa di spaghetti stracotti come quelli delle peggiori mense aziendali.

La programmazione a oggetti (OOP) ci viene in aiuto consentendoci di strutturare meglio il codice, magari suddividendolo in layer, ovvero strati impermeabili ciascuno dedicato a una funzionalità specifica. Con diligenza, si creano livelli su livelli, ciascuno con singola responsabilità, fino a quando il numero di strati non diventa tale per cui gli spaghetti si trasformano e assumono la forma di una gigantesca lasagna, ed ecco a voi il Lasagna Code.

Spaghetti CodeSe cerchiamo un compromesso tra i due, possiamo scrivere famiglie di classi finalizzate a un particolare scopo e cercare di farle dialogare tra loro: è il Ravioli Code, ma non è un compito facile stabilire in seguito le relazioni tra queste famiglie. Se poi si adottano anche tecnologie e linguaggi di programmazione diversi, ecco che ci troviamo allora con un Maccaroni Code.

Tutto questo parlare di pasta mi ha fatto venire una gran fame, ma anche sorgere una domanda: non c’è uno strumento rapido ed efficace per poter misurare quanto “fa male” alla nostra salute il codice che siamo scrivendo?

Cyclomatic Complexity

Quando ho letto questo termine la prima volta, ho pensato «che diamine è questa roba?». Se vi capiterà di leggere qualcosa sul Clean Code oppure sui principi SOLID, troverete un sacco di termini simpaticamente complicati che, in realtà, nella maggior parte dei casi si riferiscono a concetti semplici e alla portata di chiunque. La Complessità Ciclomatica non fa eccezione, sebbene sembri il titolo di una puntata di The Big Bang Theory.

Ma quindi di cosa si tratta? Niente paura, non ci metteremo di sicuro a enunciare e analizzare formule complesse, anche perché ai tempi delle superiori io avevo 4 in matematica: immaginatela come un indice, un punteggio che viene dato al vostro codice, e tante più sono le strade che il vostro codice può percorrere durante l’esecuzione, maggiore è il valore attribuito a questo indice.

Ad esempio, se abbiamo un codice fatto solamente di istruzioni di assegnazione, o semplici chiamate ad altri metodi (o procedure, o funzioni che siano), il valore sarà quello più basso, ovvero 1 (uno). Se introduciamo una istruzione if, ecco che stiamo creando un “bivio”, ovvero due strade distinte che si possono intraprendere potenzialmente, e il valore aumenta quindi di due punti passando a un totale di tre. E se introduciamo uno switch? Ecco che l’indice della complessità incrementerà di una unità per ogni alternativa che introdurremo all’interno del costrutto. Lo stesso vale per cicli for. In conclusione, più sono i cammini indipendenti che il nostro software potrà percorrere, maggiore sarà il valore della complessità ciclomatica.

Possiamo quindi dire che la Cyclomatic Complexity è un po’ come il colesterolo nel codice: non si può azzerare, ma più il valore è basso meglio è, e bisogna sforzarsi di mantenerlo tale.

Quali sono i rischi?

In genere, i metodi con indice di complessità elevato tendono a essere eccessivamente lunghi, con molteplici righe che potrebbero essere isolate in metodi distinti, poi hanno una incidenza negativa sulla leggibilità e numerose variabili che sottraggono tante scelte dalla rosa dei nomi intelligibili da utilizzare. Insomma, se il software non può rischiare l’infarto, lo sviluppatore che dovrà manutenere quel codice sì.

Per coloro poi che praticano il salutare sport dello Unit Testing, la faccenda si complica: più sono le vie percorribili dal software, maggiore è la quantità di test da scrivere per coprirle tutte in modo da verificare tutte le possibili condizioni.

Misurare la complessità

Il primo passo per ridurre la complessità del codice è dotarsi degli strumenti appropriati per poterla “diagnosticare”. Non serve lo stetoscopio, né gli esami del sangue, ma è sufficiente controllare che l’ambiente di sviluppo in uso possa misurare la cyclomatic complexity del codice. Vediamone alcuni come esempio.

Cyclomatic Complexity in DelphiRAD Studio, l’IDE prodotto da Embarcadero per lo sviluppo con Delphi e C++Builder, include strumenti per l’analisi del codice e la visualizzazione di diversi parametri, incluso un coefficiente di tossicità dei metodi. Una volta aperto il progetto su cui lavorare, basta selezionare il menu [Project|Method Toxicity Metrics] per richiamare una finestra che mostra istantaneamente gli indici calcolati in base alle metriche disponibili.

Cyclomatic Complexity in Visual StudioPer gli sviluppatori .NET che utilizzano Visual Studio con i linguaggi C# o Visual Basic.NET, suggerisco una estensione di terze parti – CodeMaid – che offre diverse funzionalità interessanti (tutte descritte nel sito ufficiale), inclusa una finestra denominata Spade che mostra i tipi definiti nel file sorgente aperto nell’editor, la loro struttura (campi, metodi, proprietà, ecc.) indicando per ciascun metodo l’indice della Cyclomatic Complexity aggiornato a ogni salvataggio. In alternativa, se siete felici possessori di ReSharper, un tool che non dovrebbe assolutamente mancare in qualsiasi installazione di Visual Studio, potete scaricare una estensione gratuita che calcola la complessità dei metodi e visualizza un warning quando questa supera le soglie di tolleranza prestabilite.

Qualunque sia il tool di sviluppo che state utilizzando, verificate quanto prima l’esistenza di un prodotto o di una estensione (gratuita o a pagamento che sia) in grado di fornirvi questa misura, ancora meglio se in tempo reale e con la possibilità di tenere d’occhio costantemente i valori.

Come “curare” il codice?

Quando il dottore ci diagnostica una complessità elevata nel codice, come possiamo intervenire per ridurla?

Lo slogan sarà pure molto inflazionato, ma anche in questo caso prevenire è meglio che curare: quando si scrive il codice, è necessario monitorare l’indice di complessità e accertarsi che non oltrepassi il limite della dignità. Se ci si accorge che il valore inizia a diventare troppo alto, questo è un chiaro segnale che il codice implementato sta divenendo troppo complesso e intricato ed è necessario quindi eseguire un refactoring per ottimizzarlo o suddividerlo in metodi più piccoli, molto più gestibili e ricollocabili anche in altre strutture, se necessario. Molti tool di refactoring incluso il già citato ReSharper sono dotati di una funzione “Extract Method” per isolare un pezzo di codice all’interno di un metodo lasciando al suo posto la chiamata a quest’ultimo.

E ancora, quando la presenza di uno switch (o di un case del Pascal) fa esplodere il valore dell’indice, è necessario sostituire il costrutto con una implementazione che potrebbe apparire più complessa da realizzare, ad esempio creando un dizionario di associazione tra i valori dello switch e l’implementazione da eseguire, usando funzioni lambda o delegati, oppure sfruttando la programmazione a oggetti e in modo particolare il polimorfismo per delegare a ciascuna sottoclasse derivata la specifica implementazione dei singoli rami logici dello switch.

Conclusioni

Una delle domande che mi viene rivolta più frequentemente è questa: «Come faccio a scrivere codice manutenibile e soprattutto testabile. Ecco, non esiste specificatamente una qualità che attribuisce in automatico, a qualsiasi porzione di codice, la caratteristica di “testabilità” a prescindere: occorre impegnarsi ed esercitarsi nel tenere innanzitutto sotto controllo le metriche di tossicità del codice e applicare le metodologie adeguate, primi fra tutti i principi SOLID, per ridurla drasticamente equilibrando i fattori di modularità e separazione degli ambiti tra i vari moduli software, e a quel punto il codice apparirà manutenibile e testabile come per magia. 🧙

Sebbene esistano tantissimi prodotti, anche complessi e costosi, in grado di compiere analisi molto approfondite del codice, generando indici e report dettagliati rivolti ai soli esperti, l’obiettivo di questo articolo è quello di sottolineare che esistono anche strumenti e tecniche semplici da usare, globalmente diffusi e immediati nella comprensione che permettono allo sviluppatore di tenere sotto controllo la complessità del codice scritto con poco sforzo, indipendentemente dal proprio livello di esperienza.

E voi, quali sono le strategie e gli accessori che utilizzate per mantenere sano il vostro codice? 😉

ITDevCon 2017: slide e sorgenti su Clean Code e Information Radiator con Delphi

Badge di ITDevConSi è conclusa da qualche giorno l’appuntamento annuale imperdibile per gli sviluppatori Delphi, ITDevCon 2017 – European Delphi Conference, la conferenza europea dedicata agli sviluppatori Delphi.

L’evento si è tenuto anche quest’anno nella sede di bitTime Software a Roma, tra le verdi colline che adornano la città di Frascati, con un tempo metereologico da fare invidia all’estate.

Dopo la parentesi primaverile della Spring Edition è tornata quindi la “sorella maggiore” della conferenza, con due giornate piene di interessanti speech, sia in italiano ma anche in inglese, per non far mancare nulla agli ospiti venuti da fuori Italia, che sono certo avranno gradito parecchio anche le prelibatezze servite nei coffee break e nel pranzo durante il giorno, raggiungendo il top con i piatti della tradizione locale serviti all’agriturismo per cena, inclusi i tipici Saltimbocca alla Romana (che Fabrizio Bitti, CEO di bitTime, ha prontamente tradotto per i non italiani in «Jump in Mouth at the Roman Way»). 😄

Anche questa edizione ha mantenuto lo spirito che la contraddistingue: contenuti tecnici di elevata qualità, a giudicare dai feedback positivi lasciati dai presenti al termine di ogni singolo speech, con una buona dose di humour che non guasta mai.

La caratteristica più apprezzabile di ITDevCon, a mio avviso (e dopo anni di partecipazione come speaker e come attendant posso dirlo) è che non ti lascia mai tornare a casa senza una buona dose di spunti e ispirazioni da cui trarre nuove idee e tecniche per il nostro lavoro. Questo è dovuto al fatto che tutti gli speaker cercano sempre di trasmettere le proprie esperienze, e non solo di raccontarle asetticamente, una tendenza che non sempre si trova negli eventi di questo tipo, a cui si aggiunge l’accoglienza esclusiva dei padroni di casa.

Slide e codice sorgente

Quest’anno ho partecipato come speaker (ormai è una tradizione) proponendo due talk.

Nel primo talk, intitolato ironicamente «Non Aprite Quella Unit!», ho presentato esempi di “codice orrorifico” tratti dalla mia esperienza di “code revision” presso clienti, sia per farsi quattro risate, sia per introdurre l’argomento principale della sessione, ossia la scrittura di “codice pulito” (Clean Code) e i benefici che porta nel team di sviluppo, in termini di chiarezza e manutenibilità del codice, partendo dalle regole più banali e intuibili fino ad arrivare agli accorgimenti più sconosciuti e difficili da attuare.

Nel secondo talk, intitolato «Crea un Information Radiator con Delphi», ho spiegato innanzitutto cosa si intende con questo strano termine: si tratta di un pannello che distribuisce informazioni alle persone nelle vicinanze, collocato e dimensionato affinché sia visibile con facilità. Ne avrete sicuramente visti in aeroporto, per mostrare le informazioni sul volo in partenza, oppure negli autogrill, per diffondere informazioni sul traffico e le ultime notizie. Si tratta di una nuova tendenza, che sta dilagando al punto tale che pure i team di sviluppo li stanno adottando per tenere sotto controllo l’andamento delle attività sui progetti aperti e gestiti con metodologie agili (es. Scrum). Per realizzare il nostro pannello, abbiamo scelto Raspberry Pi 3 come hardware e Delphi (con FireMonkey) per creare un’applicazione Android nativa e ultraveloce (rispetto alle soluzioni più comuni basate su pagine Web a rotazione e browser pesanti).

Potete scaricare i sorgenti dal mio repository su GitHub, assieme alle slide pubblicate nel mio profilo su SlideShare a questi indirizzi:

Conclusioni

In breve, se non avete mai partecipato o se mancate da qualche anno, non mi farei sfuggire la prossima edizione, magari la Spring se ci sarà. 😉

ITDevCon SE 2017: Web API e applicazioni Web con Vue.js e Delphi

Logo ITDevCon 2017 Spring EditionQuesto mese di maggio si conclude con un appuntamento inedito: ITDevCon 2017 Spring Edition.

A furor di popolo, come si suol dire, la conferenza europea dedicata a Delphi ITDevCon torna il prossimo venerdì 26 maggio a Roma per una edizione speciale primaverile, in forma ridotta (solo una giornata prima del weekend) e in lingua italiana, ma come sempre molto ricca di argomenti interessanti per gli sviluppatori Delphi.

Affrettatevi ad acquistare i biglietti per partecipare alla conferenza, perché stanno per terminare sia i biglietti che i giorni a disposizione. 🙂

L’agenda completa dell’evento la trovate sul sito ufficiale. Fra i tanti speaker presenti ci sarò anche io con due talk orientati all’integrazione di Delphi con il Web.

REST API e Vue.js

Come usare REST API fantastiche e dove trovarle

Nel mondo là fuori c’è un intero universo di Web API interessanti e curiose, tutte da esplorare. Dopo una breve introduzione, utile a fissare bene determinati concetti di base, in questo talk vedremo come è possibile “consumare” queste API con Delphi, costruendo applicazioni client anche molto accattivanti e di sicuro impatto.

Applicazioni Web ultra-performanti con Vue.js e Delphi

Vue.js è una libreria JavaScript per creare interfacce utente estremamente performanti, che può essere introdotta gradualmente nelle vostre applicazioni Web, nel modo meno invasivo possibile. In questo talk vedremo come utilizzare la libreria per costruire passo passo un frontend fino alla sua integrazione con un backend realizzato in Delphi.

Slide e codice speech ITDevCon 2016 su Delphi con React e Telegram

Articolo - ITDevCon 2016 - Slide e codice sorgente

Ho reso pubblici slide e codice sorgente degli esempi relativi ai talk tenuti alla conferenza ITDevCon 2016 – European Delphi Conference.

Codice sorgente

Il codice sorgente può essere scaricato dalla mia pagina su GitHub, che contiene anche il materiale utilizzato nelle conferenze passate. I sorgenti degli esempi di ITDevCon 2016 li trovate precisamente in questa cartella, che include anche i documenti PDF con le slide.

Per scaricare gli esempi, potete clonare il repository usando il vostro client Git preferito, oppure scaricare lo ZIP del repository con tutti i sorgenti.

Slide

Le slide mostrate durante l’evento le trovate sulla mia pagina SlideShare.

Potete visualizzarle direttamente online e scaricarle a questi link:

ITDevCon 2016: riepilogo e qualche foto

Articolo - ITDevCon 2016 - Recap

Sono tornato già da qualche giorno dalla “gitarella” a Roma per ITDevCon 2016 (sito ufficiale), la conferenza europea dedicata a Delphi. Ecco qui una breve recensione dell’evento.

Dopo le esperienze di Verona e Milano, quest’anno l’evento si è svolto per la prima volta a Roma, nel quartier generale di bitTime Professionals, gli organizzatori dell’evento: oltre al beneficio del valore tecnico, la conferenza è sempre un’ottima occasione per spostarsi e vedere posti nuovi.

Questa edizione ha visto la partecipazione di una sessantina di persone, un vero “sold out” con la room principale piena: unito al dato di partecipazione del Delphi Day dello scorso giugno, il risultato conferma il desiderio di fare community da parte degli sviluppatori, che è uno degli aspetti di maggiore risalto in questo tipo di eventi, nonché il vivo interesse verso Delphi e le novità che riguardano il prodotto.

Dal punto di vista dei contenuti, non sono mancati gli approfondimenti relativi alle tecnologie assodate ma anche a quelle emergenti.

Si è parlato di sviluppo di applicazioni Web e SPA (Single Page Application), usando le librerie Angular2 e React lato client, ovviamente con backend in Delphi, approfondendo ben due librerie free e Open Source, DelphiMVCFramework e MARS Curiosity, che si affiancano a quelle già disponibili “out of the box” in Delphi.

Non sono mancate le sessioni maggiormente orientate agli “smanettoni”, con un approfondimento di tecniche avanzate per il debugging delle applicazioni e gli “internals” del memory manager FastMM4.

La tematica dell’accesso ai dati non è stato senz’altro trascurata: si è parlato del movimento NoSQL e delle caratteristiche di uno dei database NoSQL più diffusi, MongoDB, per il quale la libreria FireDAC offre un driver già da qualche versione. A questi argomenti si è aggiunto un approfondimento di Firebird 3.0 e delle novità portate dalla nuova versione, assieme a una sessione di tips per incrementarne le performance.

Screenshot Io ho tenuto uno speech su un argomento particolarmente in voga al momento, ovvero i Bot e il loro possibile impiego nelle proprie soluzioni business, spiegando come realizzarne uno sfruttando la piattaforma messa a disposizione da Telegram, realizzando a titolo di esempio un bot ad hoc per la conferenza, in grado di fornire informazioni sempre aggiornate sulle sessioni e sugli speaker, oltre ad avvisi organizzativi (con una punta di “british humour”).

Ho trovato particolarmente interessanti le sessioni su Arduino e sugli spunti di integrazione con Delphi: basta davvero solo la fantasia per immaginare uno scenario di possibile utilizzo della scheda assieme ai tanti moduli ordinabili in rete per costruire qualcosa di concreto da cui potrebbe scaturire un’interessante idea.

Infine, sono stati molti i tool e le librerie analizzate nel corso dei vari talk, tutti in buona prevalenza gratuiti e open source, in grado di ricoprire la totalità delle problematiche di sviluppo di qualsivoglia tipo di applicazione Delphi.

Il tutto contornato da un’ottima cena e da abbondanti buffet pomeridiani che hanno reso ancora più gustosi i coffee-break di condivisione e chiacchiere con gli altri partecipanti.

Promossa quindi a pieni voti anche questa edizione romana di ITDevCon, per la generosa ospitalità e l’ottima organizzazione, per la quantità e qualità dei contenuti tecnici proposti, per la ricca premiazione e per la simpatia dei partecipanti e dello staff che ci ha gentilmente ospitati.

Arrivederci quindi a presto, si spera, a una nuova edizione di ITDevCon!

Vi pubblico qui di seguito qualche foto e i tweet in diretta.

Continue Reading

Delphi Boot Camp: scarica e impara Delphi gratis!

Sei uno sviluppatore software che ama conoscere ogni giorno nuove tecnologie, strumenti e linguaggi di programmazione? Questa è senz’altro una occasione che non puoi assolutamente lasciarti sfuggire: il Delphi Boot Camp!

Delphi Boot Camp - dal 5 al 9 settembre

Cos’è il Delphi Boot Camp?

Il Delphi Boot Camp prevede 5 giornate di training online gratuito, dal 5 al 9 settembre (2 ore al giorno), con cui potrai scoprire la magia della programmazione con Delphi, le funzionalità di sviluppo rapido delle applicazioni (RAD) offerto dall’ambiente, l’uso del moderno ed elegante linguaggio Object Pascal, le potenzialità del framework crossplatform FireMonkey.

Per il tuo “training”, puoi scegliere se iniziare a usare gratuitamente il prodotto completo scaricando la versione di prova, oppure approfittare di una eccezionale promozione limitata: ottenere una licenza gratuita di Delphi Starter Edition (del valore di € 395,28) e scaricare anche una copia di Object Pascal Handbook, il libro di Marco Cantù sul linguaggio Object Pascal (aggiornato con le novità di Delphi 10.1 Berlin) con il quale potrai seguire meglio il corso.

Il training si rivolge sia a coloro che hanno sentito parlare di Delphi e aspettavano un’occasione buona per provarlo sia a chi non lo conosce assolutamente oppure a chi lo ha già usato in passato e vuole vedere quali sono state le migliorie apportate all’ambiente e al linguaggio di programmazione, tenendo presente che con la prossima versione in arrivo (nome in codice Godzilla) un nuovo compilatore per Linux affiancherà quelli già esistenti per Windows e Mac (32 e 64 bit), per Android e Apple iOS, come indicato nella nuova roadmap aggiornata ad agosto 2016.

Agenda delle giornate

Qui di seguito riporto gli argomenti di ciascuna giornata del training. Le sessioni sono in lingua inglese.

  • Giorno 1 – Introduzione a Delphi: l’IDE e la tua prima applicazione
  • Giorno 2 – Conoscere il linguaggio Delphi
  • Giorno 3 – Costruire interfacce utente efficaci con FireMonkey
  • Giorno 4 – Game Development con Delphi
  • Giorno 5 – Sviluppo Mobile e Database

Per approfondire il contenuto delle lezioni e i dettagli dell’iniziativa, guarda il filmato di introduzione di Jim McKeeth, Evangelist di Embarcadero Technologies.

Ora che conosci tutti i dettagli, non ti resta che iscriverti subito all’evento.

Iscriviti subito

Buon addestramento! 😉

ITDevCon 2016: creare Bot e applicazioni React con Delphi

Articolo - ITDevCon 2016

Questo autunno ritorna l’appuntamento con ITDevCon, la conferenza europea dedicata agli sviluppatori Delphi che quest’anno si terrà il 6 e 7 ottobre, per la prima volta a Roma.

Per questa edizione di ITDevCon ho proposto due talk su un paio di argomenti che in questo periodo sono interessati da un discreto hype, a parer mio giustificato.

Creare un Bot con Delphi

Articolo - ITDevCon 2016 - Speech su BotNel primo talk si parlerà del fenomeno dei Bot, uno strumento sicuramente non nuovo ma molto in voga al momento, anche grazie a Telegram che ha fatto il primo passo introducendone il supporto nella propria piattaforma di messaggistica.

Con il termine Bot ci si riferisce a una categoria di software che sono in grado di svolgere automaticamente una serie di operazioni, facendo le veci di un utente in carne e ossa e interagendo attraverso gli stessi canali (ossia Internet), e sono spesso interfacciati ad algoritmi di intelligenza artificiale (AI) che contribuiscono a candidarli ancora di più come perfetti sostituti di una persona nello svolgimento di determinati compiti. Si pensi ad esempio al loro impiego nei giochi di ruolo online, al posto di giocatori reali, oppure ai casi relativamente più semplici dei software che rispondono automaticamente a messaggi su IRC per gestire canali, o a messaggi e-mail per fornire informazioni su una mailing list e consentire agli amministratori di gestirne tutti gli aspetti.

Il diffondersi di sistemi di messaggistica in grado di raggiungere un elevato bacino di utenti, nell’ordine dei milioni, come Whatsapp, Facebook Messenger e il già citato Telegram, hanno fatto letteralmente esplodere la “Bot Mania” con diversi enti pubblici, aziende e altre realtà che li hanno integrati nel proprio processo produttivo, grazie anche alla facilità con cui è possibile interfacciarsi alle API utilizzando protocolli standard e alla presenza di piattaforme e librerie di alto livello, come il Microsoft Bot Framework, per citarne una.

Nel corso di questo speech, vedremo quali sono i vantaggi derivanti dall’uso di Bot all’interno di diversi contesti reali e analizzeremo i passi necessari per costruirne uno con Delphi sfruttando la piattaforma fornita da Telegram.

Applicazioni Web con Delphi e React

Articolo - ITDevCon 2016 - Speech su ReactNel secondo talk parleremo dello sviluppo di applicazioni Web in Delphi utilizzando uno dei framework JavaScript più in voga del momento: React.

React è la libreria creata da Facebook per gestire l’interfaccia utente del social network più conosciuto e utilizzato al mondo.

Grazie alle numerose soluzioni disponibili per la creazione di server REST in Delphi, sia integrate nel prodotto (come DataSnap e RAD Server) sia di terze parti e Open Source come Delphi MVC Framework (ne ho parlato anche in un episodio di Delphi Podcast) e MARS Curiosity, sviluppare un backend per le proprie applicazioni Web è diventato un gioco da ragazzi, peraltro con performance di tutto rispetto, mentre dal lato frontend abbiamo a disposizione una quantità infinita di framework e librerie JavaScript che possiamo utilizzare, e React è una fra quelle più usate e diffuse.

Cosa rende React così innovativo? Sicuramente il fatto che sia basato sull’uso e sulla creazione di componenti, un concetto molto familiare agli sviluppatori Delphi (benché non vada confuso con l’approccio RAD offerto dalla libreria RTL/VCL, né tantomeno confrontato con IntraWeb!) e che è stato ripreso da altri framework concorrenti, oltre alle prestazioni elevate nella manipolazione della pagina Web che lo rendono la soluzione ideale per tutte quelle interfacce utente particolarmente ricche, interattive e “affollate” che devono rimanere il più possibile responsive.

Come iscriversi e partecipare a ITDevCon 2016

Questa edizione si prospetta più ricca che mai di argomenti ed è un’occasione unica per approfondire anche le ultime novità introdotte nelle release più recenti di Delphi: in poche parole, non potete mancare.

Tutte le informazioni si trovano come sempre sul sito ufficiale dell’evento, compresa la pagina per la registrazione.

Arrivederci quindi a ottobre a ITDevCon 2016! 🙂

React: guida alla libreria JavaScript di Facebook

Guida React E’ iniziata la pubblicazione a puntate della guida a React sul portale HTML.it, il periodico che raccoglie guide, articoli ed esempi sui linguaggi per il Web e non solo.

Che cos’è React?

React è una libreria JavaScript per la costruzione di interfacce utente, realizzata e mantenuta da Facebook e impiegata nell’omonimo social network oltreché su Instagram.

La libreria possiede interessanti caratteristiche peculiari: grazie al supporto del Virtual DOM, è in grado di aggiornare la pagina Web in modo estremamente veloce; consente inoltre di creare componenti che rappresentano una parte specifica dell’interfaccia utente, permettendo la loro configurazione in base ai dati contenuti in un modello, con la possibilità di combinare uno o più componenti per realizzare quella che è l’interfaccia completa dell’applicazione, semplificando la scrittura del codice e l’utilizzo delle funzioni della libreria qualora si utilizzi la sintassi JSX basata sul compilatore JavaScript Babel.

Nella guida esamineremo i punti di forza della libreria e scopriremo come sfruttarla al meglio per creare interfacce utente performanti, partendo dagli elementi fondamentali che la costituiscono e approfondendo man mano la sua architettura interna per imparare a padroneggiarla a fondo con l’obiettivo di realizzare applicazioni complete e soddisfare le esigenze più avanzate.

Per iniziare a leggere la guida, ecco l’indice delle lezioni, e non dimenticare di iscriverti per ricevere gli aggiornamenti. 😉

Masonry: layout a griglia flessibili in JavaScript

Articolo - Masonry: crea layout a griglia flessibili con JavaScript In lingua inglese, il termine Masonry significa “muratura”, ed è lo stile da cui prende spunto l’omonima libreria JavaScript Masonry, che permette di implementare un layout a griglia nel proprio sito Web in cui gli elementi vengono disposti in automatico per ottimizzare lo spazio occupato in verticale all’interno della pagina, allineandoli in modo del tutto simile al processo di costruzione di un muro di mattoni, da cui il nome della libreria.

Come funziona Masonry

E’ possibile pensare al layout come un “float ruotato” dove gli elementi sono affiancati lungo il senso verticale della pagina, quindi dal basso verso l’alto (o viceversa), piuttosto che in senso orizzontale, come avviene normalmente quando si utilizza la proprietà float dei fogli di stile CSS per allineare gli elementi. Articolo - Masonry - Layout prima e dopo

La libreria Masonry fornisce altre funzionalità interessanti, come la possibilità di definire lo spazio libero da lasciare tra un elemento e l’altro, o tra due colonne di elementi affiancati; inoltre, è possibile chiedere a Masonry di spostare in automatico gli elementi a fronte di un ridimensionamento della finestra del browser, utilizzando opzionalmente un’animazione di transizione.

L’uso di questo layout è particolarmente indicato nella costruzione di siti Web che devono essere fruiti da dispositivi eterogenei, con schermi aventi dimensioni tutte differenti tra loro, o dove gli elementi mostrati (una galleria di immagini, ad esempio) non hanno tutti la stessa dimensione, per cui l’ottimizzazione dello spazio vuoto consente di ridurre lo scorrimento necessario nella pagina e di presentare i contenuti con un aspetto visualmente più ordinato.

La libreria Masonry supporta inoltre funzionalità avanzate, come la possibilità di definire elementi “fissi”, ossia che non potranno essere spostati durante la composizione del layout ottimale, con il resto degli elementi che si andranno a disporre di conseguenza attorno a quelli fissi.

Approfondisci

Per conoscere tutto ciò che la libreria Masonry può fare per voi, leggete questo articolo pubblicato sul portale HTML.it.

Copyright © 2018. Powered by WordPress & Romangie Theme.