libri Archives - Compila Quindi Va https://www.compilaquindiva.com/tag/libri/ Il blog tecnico di Marco Breveglieri, Software and Web Developer Fri, 09 Oct 2020 16:19:21 +0000 it-IT hourly 1 https://wordpress.org/?v=6.1.1 https://i0.wp.com/www.compilaquindiva.com/wp-content/uploads/2021/05/cropped-favicon.png?fit=32%2C32&ssl=1 libri Archives - Compila Quindi Va https://www.compilaquindiva.com/tag/libri/ 32 32 149404468 DelphiMVCFramework Official Guide: la recensione https://www.compilaquindiva.com/2020/10/09/delphimvcframework-official-guide-la-recensione/ Fri, 09 Oct 2020 15:00:00 +0000 https://www.compilaquindiva.com/?p=1266 E' finalmente stata pubblicata la DelphiMVCFramework Official Guide: la guida ufficiale di Daniele Teti su DMVCFramework per lo sviluppo di soluzioni REST/JSON-RPC. In questo articolo, tutti i dettagli e la mia recensione.

Pubblicato da Marco Breveglieri sul blog Compila Quindi Va e ripubblicabile solo citandone la fonte.

]]>
DelphiMVCFramework Official Guide - Cover

Negli ultimi mesi sono piacevolmente usciti molti libri sulla programmazione Delphi. Le tematiche spaziano dall’ottimizzazione di algoritmi all’incremento delle performance, dai design pattern alle pratiche per velocizzare al massimo la scrittura di codice in Delphi. Tra queste pubblicazioni ne troviamo una decisamente interessante e molto attesa: la DelphiMVCFramework Official Guide.

L’autore del libro oltreché principale mantainer del progetto è Daniele Teti (CEO di bitTime Professionals). Si tratta della guida ufficiale all’uso di DelphiMVCFramework, una delle librerie più conosciute e utilizzate per lo sviluppo di server REST in Delphi.

Se i termini utilizzati sino a ora ti sembrano completamente nuovi oppure oscuri, ecco una premessa che dovrebbe colmare questa lacuna.

Delphi e il Web

Nel corso della sua lunga vita, Delphi ha conosciuto (spesso prima di altri tool di sviluppo) le tecnologie che sarebbero diventate poi il fondamento delle future applicazioni.

Già dalla versione 3, Delphi includeva librerie per realizzare architetture multi-tier (MIDAS) e per la produzione di pagine HTML (WebBroker). Col tempo si sono affiancate soluzioni per lo sviluppo RAD di applicazioni Web (come IntraWeb). Esse erano del tutto simili alle idee proposte dalla concorrenza (es. ASP.NET Web Forms) per ottenere il medesimo risultato finale, ovvero esporre una GUI fruibile da qualsiasi browser in grado di collegarsi a una base dati.

Lo scenario tuttavia oggi è cambiato. L’approccio client/server, o n-tier, ovvero l’accesso a dati in rete locale non è più sufficiente. Lo stesso vale per le suddette applicazioni Web, troppo “pesanti” poiché incentrate sulla generazione lato server dell’intera GUI e poco efficaci nel presentare all’utente una esperienza simile a quella che può fruire lato desktop.

Brevemente, la necessità odierna è quella di disaccoppiare i database da qualsiasi tipo di interfaccia utente, sia essa una applicazione Web o un programma desktop, inserendo tra questi due elementi un server con lo scopo di fornire “mobilità” ai dati.

Let’s get some REST!

I linguaggi e le piattaforme con cui è possibile sviluppare un programma client sono molteplici: per questo è necessario che il server utilizzi un protocollo standard, ovvero HTTP, e adotti formati standard per il trasferimento dei dati, ad esempio XML.

Prima erano i Web Service…

Se pensi io stia parlando dei Web Service, stai sbagliando. Essi sono l’incarnazione del primo (e ancora molto diffuso) tentativo di realizzare API standard. L’uso del protocollo HTTP è però marginale poiché limitato al trasporto dei pacchetti. I pacchetti sono basati su uno standard quale è SOAP che, sebbene abbia la parola “Simple” nel nome, può diventare estremamente ostico se si ha a che fare con le sue estensioni. Usare un Web Service richiede inoltre la conoscenza delle operazioni che implementa: è necessario recuperarne la struttura documentata con un altro standard, il caro WSDL. Tutto troppo complicato, e soprattutto troppo rigido per le esigenze di oggi.

HTTP come protocollo “principe”

Proviamo ora a fare una ricetta. Prendi il protocollo HTTP. Immagina ora che, al posto di pagine Web tradizionali, si trasferiscano dati di clienti, fornitori, fatture e così via. Sostituisci poi il linguaggio HTML con documenti XML semplici (non SOAP!) o con strutture ancora più rastremate come JSON. Pensa poi all’indirizzo URL come alla locazione universale e parlante di una “risorsa” (un cliente o una fattura) invece che di una pagina Web. Ora i comandi HTTP: oltre ai più noti GET e POST, includi almeno anche PUT e DELETE trasformando questi “verbi” nella classica tavola CRUD. Ora pensa ai codici di stato che HTTP fornisce in risposta: ad esempio, il più conosciuto, il classico “errore 404”, non indicherà l’impossibilità di trovare una pagina, bensì una delle tue risorse. Amalgama il tutto ed ecco che avrai qualcosa di molto simile a un (goloso e fumante) server REST!

Tutto ciò però ha una implicazione: non possiamo fare finta che HTTP non esista e trattarlo come un mero veicolo di dati, ma dobbiamo padroneggiarlo come si deve. Nel fare questo, dobbiamo anche rispettare scrupolosamente le convenzioni che gli sviluppatori di eventuali client per la nostra API si attendono. Idealmente, dovremmo puntare al livello più alto del Richardson Maturity Model, il cosiddetto “Glory of REST”.

Delphi e il suo ecosistema ci offre diverse alternative. Potremmo decidere di lavorare a basso livello usando direttamente WebBroker. Oppure potremmo beneficiare di un minimo di astrazione in più con i componenti Indy. Ridurremmo ulteriormente lo sforzo se adottassimo una delle tante librerie ad hoc disponibili per Delphi; ad esempio, RAD Server è una soluzione “chiavi in mano” già disponibile dall’edizione Enterprise. Perché non pescare invece tra le tante librerie open source? Ne possiamo scegliere una popolare, semplice, flessibile e – grazie al libro oggetto di questa recensione – anche ottimamente documentata: DelphiMVCFramework!

Prima di passare a parlare della DelphiMVCFramework Official Guide, partiamo dall’ABC… o meglio, da MVC. 😄

Il pattern MVC

MVC (Model View Controller) è un pattern architetturale in uso da parecchi anni. Esso è stato creato con lo scopo di separare la logica di presentazione da quella di business.

Il pattern è tornato in voga soprattutto nell’ambito dello sviluppo Web poiché costituisce la colonna portante di librerie e framework particolarmente noti e apprezzati, sia lato client (come AngularJS) sia lato server (ad esempio Ruby On Rails o ASP.NET MVC).

Il suo successo deriva dalla semplicità con cui permette di creare soluzioni software altamente disaccoppiate. Questo benefit deriva sia dall’adesione stretta al pattern, ma anche dagli strumenti (classi base, attributi, decoratori, convertitori, ecc.) apportati dai framework che vi si appoggiano. Questi elementi combinati con l’efficacia del pattern consentono di implementare agevolmente le feature dell’applicazione. Ciò avviene non solo aggiungendo la propria logica di business, ma creando estensioni agli stessi framework. L’intera architettura rimane sempre e comunque perfettamente mantenibile, quasi un tributo al Clean Code! Ciò vale per tutti i framework citati, e ovviamente anche per DelphiMVCFramework.

DelphiMVCFramework alla riscossa!

Se non conoscete minimamente DelphiMVCFramework, dovete rimediare subito!

Vi sono diverse risorse che permettono di acquisire una panoramica veloce su ciò che potete realizzare con il framework. Ad esempio, potete guardarvi questo corso introduttivo di un paio d’ore (in lingua italiana) tenuto dallo stesso Daniele. Se siete di fretta, ci sono i filmati della recente DMVC Week su YouTube. Se siete in macchina o state correndo all’aria aperta, potete ascoltare l’intervista a Daniele Teti in questo episodio di Delphi Podcast.

Il codice sorgente del framework può essere scaricato direttamente dal repository ufficiale di GitHub, nel quale trovate anche un elenco delle funzionalità presenti nell’ultima versione (nel momento in cui scrivo), la 3.2.1 codename “carbon.

Solo per dare una idea delle potenzialità, guardate quanti tipi di oggetti si possono restituire ai client usando un solo metodo, Render():

DelphiMVCFramework Official Guide - Tutti gli overload del metodo Render
Tutti gli overload del metodo Render

Non mi dilungherò a elencare nel dettaglio l’elenco impressionante di feature che il framework vi mette a disposizione. Farlo richiederebbe un libro intero per descriverle tutte minuziosamente.

Aspetta un momento… un libro c’è già. E’ la DelphiMVCFramework Official Guide! 🙂

DelphiMVCFramework Official Guide: una guida imperdibile!

La DelphiMVCFramework Official Guide è il testo indispensabile per creare il tuo server ed esporre la tua API sfruttando la potenza di REST o di JSON-RPC e usando uno dei framework più popolari e completi per Delphi.

La prima pubblicazione completa della guida risale a metà settembre, e può essere acquistata sul sito LeanPub. Oltre al classico PDF, è disponibile anche nei formati EPUB (per telefoni e table) e MOBI (per Kindle).

Si tratta di un testo imperdibile per qualsiasi sviluppatore Delphi, e ora ne illustro tutti i motivi.

Innanzitutto, non si tratta di una banale guida introduttiva al framework DMVC: essa esplora nel dettaglio tutte le sue caratteristiche in modo approfondito. E’ pertanto una preziosissima risorsa per imparare a usare come si deve il framework e ottenere il massimo potenziale dallo stesso.

Il pattern MVC spiegato bene

Nell’illustrare tutti gli strumenti che il framework mette a disposizione, Daniele spiegherà MVC e tutti gli attori che fanno parte di questo paradigma. Imparerai quindi a conoscere il pattern MVC in modo approfondito. Oltre a DelphiMVCFramework, queste nozioni ti consentiranno di usare con sicurezza tutti gli altri framework disponibili per altre piattaforme e linguaggi che si basano sullo stesso pattern (ad esempio, ASP.NET MVC, oppure NodeJS Express, Angular, RoR e tanti altri ancora).

REST a regola d’arte

La guida ti darà inoltre un ulteriore valore aggiunto: la spiegazione dettagliata di come creare una API REST perfetta. Apprenderai i segreti per implementare i verbi HTTP nel modo corretto, definire gli URL di accesso alle risorse. E ancora, quale formattazione usare nella ricezione e restituzione dei dati, i codici numerici di risposta e così via. Insomma, la tua sarà una API che implementa REST (o JSON-RPC, se lo preferite) rispettando tutte le convenzioni. Con questo bagaglio di conoscenze, potrai creare agevolmente anche qualsiasi applicazione client, dialogando magari con server sviluppati da terzi, ma aderenti alle stesse regole. Oppure ancora potrai riusare queste nozioni nella creazione di server REST con altre librerie e altri linguaggi su ecosistemi differenti (es. ASP.NET Core Web API).

DelphiMVCFramework non ha più segreti

Riguardo DMVC nello specifico, il libro fornisce una panoramica chiara, esaustiva e completa del framework. Si parte dalla sua installazione e configurazione, creando quasi da subito il primo progetto. Dopo aver mosso i primi passi, si aggiungono nuovi scenari e requisiti aumentando la complessità. Questi espedienti permettono di scoprire gradualmente gli strumenti che il framework mette a disposizione per risolvere ciascun problema. I requisiti presi in esame, pur trattandosi di esempio, sono comunque sempre concreti e pratici, mai astratti o surreali.

Tanti tool aggiuntivi, piccoli ma potenti

Per testare il tuo server REST e svolgere tante altre operazioni di contorno, oltre al classico browser, farai uso di interessanti tool specifici (ad esempio, cURL). Daniele ti spiegherà anche come usare Python per invocare la tua API. La conoscenza di questi programmi può tornare utile nel caso si voglia adoperarli anche in altri contesti differenti.

Esempi chiari

Una scelta che ho particolarmente apprezzato è quella di riportare esempi di codice mirati. Gran parte dei libri in circolazione rimanda solamente al codice di esempio a corredo, da scaricare e aprire mentre si legge. Ritengo invece encomiabile che ogni trattazione di uno specifico argomento riporti sul libro la parte di codice interessata, privata di tutto ciò che è estraneo. Questo consente di seguire tranquillamente il testo senza avere lo schermo con il codice aperto davanti. Potrai quindi esplorare le feature di DMVCFramework leggendo il libro a letto prima di dormire. Quando ti alzerai il giorno dopo, e sarai davanti al PC, potrai esercitarti su quanto imparato. Il codice sorgente completo è comunque disponibile per il download sul sito LeanPub.

La cura dei dettagli c’è (e si vede)

Un altro pregio credo sia quello di aver istituito un preciso vocabolario tecnico. Il framework è molto vasto, quindi dare un nome preciso a ogni cosa che contiene è senz’altro di aiuto. Non vi è confusione o ambiguità su ciò che fa un Controller, una System Action o una Strongly Typed Action, o su cosa sono gli URL Mapped Parameters. L’adozione di termini specifici per determinati strumenti aiuta la formazione, ma anche la descrizione circostanziata di eventuali problemi quando si ha bisogno di supporto. A tal proposito, se sei in difficoltà o ti piace aiutare gli altri sviluppatori della community, iscriviti al gruppo Facebook.

Infine, laddove gli elenchi puntati sarebbero stati sufficienti, al loro posto spesso vengono usate delle tabelle riepilogative. Questo permette di “espandere” la definizione di ciascun elemento con note ed esempi chiarificatori.

DelphiMVCFramework Official Guide - Esempio di tabella
Esempio di tabella dati riepilogativa

Nel testo vi sono inoltre svariati diagrammi e grafici. Queste decisioni stilistiche vanno a tutto vantaggio della comprensione dei concetti. Si tratta forse di piccolezze, ma la cura dei dettagli si vede e porta i suoi benefici.

DelphiMVCFramework Official Guide - Esempio di diagramma del workflow di richiesta/risposta
Diagramma di esempio che mostra il workflow richiesta/risposta

Conclusioni

Qualora non sia ancora del tutto chiaro, DelphiMVCFramework Official Guide è un testo che non deve assolutamente mancare nella tua libreria tecnica!

Che tu voglia iniziare a usare DMVC o che tu abbia intenzione di usare un’altra libreria, il libro può esserti comunque di estremo aiuto per capire MVC, REST, JSON-RPC e altri tasselli del mondo in cui stai per addentrarti.

Se invece usi già DMVC nei tuoi progetti, il libro ti servirà per approfondirne la conoscenza a 360° ed esplorare nuovi modi per estendere e “carrozzare” la tua API.

Ora non hai più scuse per rottamare la tua vecchia soluzione client/server e portarla (finalmente) nel nuovo millennio. Ciò è ancora più giustificato dalla pletora di strumenti che DMVC ti rende disponibili per esporre risorse con un’attenzione particolare al riuso del codice eventualmente già esistente, come da tradizione Delphi.

Il framework c’è, e ha raggiunto una invidiabile maturità. Ora che c’è pure il manuale d’uso. Cosa aspetti ad accaparrartelo e iniziare a programmare? 😉

Pubblicato da Marco Breveglieri sul blog Compila Quindi Va e ripubblicabile solo citandone la fonte.

]]>
1266
Delphi Cookbook Second Edition: la mia recensione https://www.compilaquindiva.com/2016/09/07/delphi-cookbook-second-edition-recensione/ Wed, 07 Sep 2016 13:00:35 +0000 https://www.compilaquindiva.com/?p=669 Riporto qui la mia recensione del libro Delphi Cookbook Second Edition di Daniele Teti, che riprende e integra quella rilasciata in lingua inglese su Amazon. «Delphi Cookbook Second Edition» è un ottimo libro estremamente utile. Devo premettere che io sono un fan dei cosiddetti “libri accademici”, quei lunghi tomi che ti introducono a un linguaggio di programmazione o a una tecnologia e ti dicono tutto quello che c’è da sapere su di esso, partendo dai concetti basilari e andando in profondità sviscerando ogni dettaglio e fornendo una conoscenza completa a 360 gradi. Delphi Cookbook Second Edition non appartiene a questa categoria di libri, ma questo non deve essere considerato un aspetto negativo: occorre tenere conto che al giorno d’oggi il

Pubblicato da Marco Breveglieri sul blog Compila Quindi Va e ripubblicabile solo citandone la fonte.

]]>
Riporto qui la mia recensione del libro Delphi Cookbook Second Edition di Daniele Teti, che riprende e integra quella rilasciata in lingua inglese su Amazon.

Copertina di Delphi Cookbook Second Edition
Copertina del libro
«Delphi Cookbook Second Edition» è un ottimo libro estremamente utile.

Devo premettere che io sono un fan dei cosiddetti “libri accademici”, quei lunghi tomi che ti introducono a un linguaggio di programmazione o a una tecnologia e ti dicono tutto quello che c’è da sapere su di esso, partendo dai concetti basilari e andando in profondità sviscerando ogni dettaglio e fornendo una conoscenza completa a 360 gradi. Delphi Cookbook Second Edition non appartiene a questa categoria di libri, ma questo non deve essere considerato un aspetto negativo: occorre tenere conto che al giorno d’oggi il tempo è una cosa preziosa, e il software – in particolare se si tratta di uno strumento di sviluppo – si evolve molto velocemente, e leggere dei “volumi senza fine” richiede parecchio impegno quando noi programmatori dobbiamo invece iniziare a lavorare al nostro progetto nel più breve tempo possibile, altrimenti partiremmo già in ritardo.

Da questo punto di vista, Delphi Cookbook Second Edition si presenta in un forma molto comoda da usare: quando si incontra un problema specifico nel processo di creazione dell’applicazione, è possibile partire dall’indice del libro e cercare il capitolo relativo, ottenendo quei bit di informazioni essenziali che permettono di sbloccare la situazione e proseguire nel completamento del task. In fondo, un “tip” è spesso tutto ciò che serve a uno sviluppatore.

Ma non vorrei essere frainteso: non stiamo parlando di una raccolta di quei vecchi e banali trucchetti di cui tutta la community Delphi ormai è già a conoscenza: il libro affronta casi d’uso aggiornati e al passo con i tempi, spiegando per ogni “ricetta” (una sorta di design pattern) come procedere e soprattutto il perché della soluzione proposta, in modo da consentire al lettore di cogliere la logica che vi sta dietro, consentendogli di riapplicarla anche in altri contesti differenti da quello affrontato.

All’interno del libro scoprirete inoltre che molte delle soluzioni proposte sfruttano le caratteristiche del linguaggio Object Pascal e si basano su classi e componenti che sono già presenti in Delphi: questo dimostra come il linguaggio e il tool siano uno strumento del tutto moderno e adatto alle esigenze di sviluppo odierne. Vi sono però anche ricette basate su componenti di terze parti e open source, come Delphi MVC Framework, con una spiegazione completa del loro utilizzo, dall’installazione al deploy, fornendo così anche dei tutorial aggiuntivi rispetto a quelli che si trovano nella documentazione ufficiale di questi interessanti progetti.

Le tecniche mostrate spaziano dall’interfaccia utente (come il supporto ai temi e l’owner-drawing) alla logica di business (come l’uso della Extended RTTI per la meta-programmazione), passando per l’esposizione dei dati tramite server Web HTTP al consumo di servizi REST, coprendo in breve tutti gli aspetti salienti della costruzione di una soluzione software completa, sia per desktop sia per piattaforme mobile.

Concludendo, se sei uno sviluppatore Delphi e vuoi utilizzare questo tool di sviluppo come merita, devi per forza leggere questo libro. 🙂

Acquista su Amazon

Pubblicato da Marco Breveglieri sul blog Compila Quindi Va e ripubblicabile solo citandone la fonte.

]]>
669
Delphi Succinctly: un e-book gratis per conoscere Delphi https://www.compilaquindiva.com/2016/03/03/delphi-succinctly-e-book-gratis-delphi/ https://www.compilaquindiva.com/2016/03/03/delphi-succinctly-e-book-gratis-delphi/#comments Thu, 03 Mar 2016 00:00:19 +0000 https://www.compilaquindiva.com/?p=555 Introduzione E’ uscito il mio primo e-book, Delphi Succinctly, un libro composto da 100 pagine dal taglio prettamente pratico, veloce da leggere, per conoscere il linguaggio e l’ambiente di sviluppo Delphi e muovere i primi passi per creare sia applicazioni desktop tradizionali (per Windows e MacOS) sia applicazioni mobile (per Android e iOS). Il libro è stato pubblicato da Syncfusion Inc., società che si offre come technology partner per la creazione di prodotti software, fornendo una gamma completa di soluzioni per le aziende e gli sviluppatori, dalle librerie ai componenti pronti all’uso, ai servizi di consulenza che ricoprono l’intero ciclo di sviluppo dell’applicazione. La collana Succinctly comprende già numerosi altri e-book (oltre al mio), quasi 100 libri che si prefiggono

Pubblicato da Marco Breveglieri sul blog Compila Quindi Va e ripubblicabile solo citandone la fonte.

]]>
Articolo - Delphi Succinctly

Introduzione

E’ uscito il mio primo e-book, Delphi Succinctly, un libro composto da 100 pagine dal taglio prettamente pratico, veloce da leggere, per conoscere il linguaggio e l’ambiente di sviluppo Delphi e muovere i primi passi per creare sia applicazioni desktop tradizionali (per Windows e MacOS) sia applicazioni mobile (per Android e iOS).

Il libro è stato pubblicato da Syncfusion Inc., società che si offre come technology partner per la creazione di prodotti software, fornendo una gamma completa di soluzioni per le aziende e gli sviluppatori, dalle librerie ai componenti pronti all’uso, ai servizi di consulenza che ricoprono l’intero ciclo di sviluppo dell’applicazione.

La collana Succinctly comprende già numerosi altri e-book (oltre al mio), quasi 100 libri che si prefiggono di trattare un argomento in modo sintetico e mirato, come suggerisce il nome, volto a fornire nel più breve tempo possibile le conoscenze sufficienti a valutare un prodotto, un tool o una tecnologia, lasciando al lettore la possibilità di approfondire l’argomento se lo ritiene necessario.

E’ gratis!

La cosa più bella? Tutti gli e-book sono scaricabili gratuitamente e disponibili in due diversi formati, PDF e Kindle.

Delphi Succinctly è un e-book in lingua inglese che si rivolge a chi non conosce Delphi oppure a chi ne ha solo sentito parlare, magari al passato. Il libro contiene i passaggi essenziali e pratici per sviluppare applicazioni complete in pochi minuti e dare un’idea delle potenzialità e della produttività del tool e del linguaggio di programmazione. Ci si può mettere subito all’opera.

Il testo è aggiornato all’ultima versione di Delphi rilasciata (al momento in cui scrivo) da Embarcadero, ossia Delphi 10 Seattle, ma le informazioni contenute sono perfettamente utilizzabili sia per versioni precedenti (nel caso ne possedeste una copia) e probabilmente anche per le versioni che seguiranno, al netto delle novità previste nell’interessante roadmap per il 2016.

Argomenti di Delphi Succinctly

Questo è l’indice degli argomenti trattati nel libro:

  1. A First Glance at Delphi
  2. Your First Application
  3. Exploring the IDE
  4. The Object Pascal Language
  5. Object-Oriented Programming with Delphi
  6. Making Real-World Applications
  7. Cross-Platform Development with FireMonkey

Download

Scarica subito il libro e, se ti piace (o anche se non ti piace), condividilo! 😉

Pubblicato da Marco Breveglieri sul blog Compila Quindi Va e ripubblicabile solo citandone la fonte.

]]>
https://www.compilaquindiva.com/2016/03/03/delphi-succinctly-e-book-gratis-delphi/feed/ 6 555