Faa(m)s - Fuffa as a microservice [seconda parte]
Dopo aver esplorato in maniera pressoché esaustiva nel post precedente la potenza del Serverless Cloud Computing, in questa seconda puntata ho pensato di orientarmi verso altre 2 tematiche-totem dell'informatica contemporanea: la cross-platformitidune e l'architettura a microservizi.
Qualunque progetto che ambisca ad essere al passo con i tempi non può prescindere da queste buzzwords!
In realtà il punto cross-platform era già stato smarcato mentre preparavo il materiale per il primo post: grazie all'avvento di .NET Core è stata M$ stessa a risolvere la questione alla radice.
L'unico problema era portare la libreria TinyGrammar da .NET Framework a .NET Core (anzi a .NET Standard per essere precisi), per fortuna la cosa si è rivelata molto semplice seguendo questa guida.
Libreria e unit test non hanno praticamente richiesto nessuna modifica, la console app l'ho dovuta riscrivere, nel senso che ho dovuto fare copia e incolla dentro il progetto vuoto di VS2017:
A breve pubblicherò su GitHub il progetto completo, appena gli avrò dato una sistemata, giusto quel tanto che basta per non essere citato nel gruppo Facebook "I peggiori programmatori di merda".
Avendo quindi agevolmente fatto il porting su Linux/Mac non restava che imboccare con tracotanza la strada verso una modernissima architettura a microservizi, stuzzicato dalla critica del mio fratellino professore: "Divertente, ma manca una versione international, almeno in inglese..."
Come dargli torto!
A quel punto ho deciso di stare sulle spalle dei giganti (spiegone):
Qualunque progetto che ambisca ad essere al passo con i tempi non può prescindere da queste buzzwords!
In realtà il punto cross-platform era già stato smarcato mentre preparavo il materiale per il primo post: grazie all'avvento di .NET Core è stata M$ stessa a risolvere la questione alla radice.
L'unico problema era portare la libreria TinyGrammar da .NET Framework a .NET Core (anzi a .NET Standard per essere precisi), per fortuna la cosa si è rivelata molto semplice seguendo questa guida.
Libreria e unit test non hanno praticamente richiesto nessuna modifica, la console app l'ho dovuta riscrivere, nel senso che ho dovuto fare copia e incolla dentro il progetto vuoto di VS2017:
A breve pubblicherò su GitHub il progetto completo, appena gli avrò dato una sistemata, giusto quel tanto che basta per non essere citato nel gruppo Facebook "I peggiori programmatori di merda".
Avendo quindi agevolmente fatto il porting su Linux/Mac non restava che imboccare con tracotanza la strada verso una modernissima architettura a microservizi, stuzzicato dalla critica del mio fratellino professore: "Divertente, ma manca una versione international, almeno in inglese..."
Come dargli torto!
A quel punto ho deciso di stare sulle spalle dei giganti (spiegone):
- usare il servizio di traduzione di Google
- usare il linguaggio nativamente orientato ai servizi, Jolie
Per fortuna qualcuno aveva già trovato il modo di utilizzare le API di Google Translate senza passare per il servizio business, va bene la modernità, ma meglio se aggratis.
Seguendo l'approccio monolith first ben descritto da Fabrizio in salsa Jolie, ho scritto una manciata di righe (scopiazzate da qua) per redirigere l'output di TinyGrammar al servizio di traduzione:
Se la sintassi di Jolie vi risulta poco familiare, scaricatelo e studiatelo, in un paio d'ore sarete dei maestri :-P
Questo incoraggiante esempio di fast software prototyping mi ha portato al secondo step, ovvero la realizzazione di un elegante microservizio HTTP che trovate qua.
Nessun container, nessun host, just works!
Per chi obiettasse che non c'è la benché minima traccia di fault handling rispondo che si tratta di throwaway prototyping :-P
E per sfregio ritorno un vetusto XML che solo a vederlo si sente puzza di legacy.
Ovviamente per il corretto funzionamento avrete bisogno di Jolie e di .NET Core
Questo incoraggiante esempio di fast software prototyping mi ha portato al secondo step, ovvero la realizzazione di un elegante microservizio HTTP che trovate qua.
Nessun container, nessun host, just works!
Per chi obiettasse che non c'è la benché minima traccia di fault handling rispondo che si tratta di throwaway prototyping :-P
E per sfregio ritorno un vetusto XML che solo a vederlo si sente puzza di legacy.
Ovviamente per il corretto funzionamento avrete bisogno di Jolie e di .NET Core
Commenti
Posta un commento