febbraio 2017 Blog Posts
La tecnologia è importante, ma da sola non risolve nulla. Allo stesso modo l’architettura è importante ma da sola risolve veramente poco. Una volta compreso il dominio, i problemi che vogliamo risolvere e come li vogliamo risolvere concettualmente ha molto senso capire quali siano le scelte tecnologiche perfette per quei casi d’uso. Durante il workshop discuteremo molto di tecnologia, spingendoci a prendere in considerazione graph database, ad esempio, o ad approfondire perché in certi scenari avere Elastic Search o un database che supporti atomic increment/decrement possa essere la scelta vincente. È solo a questo punto che...
Mercoledì avrò il piacere di essere ospite nella nuova sede Microsoft come uno dei moderatori, insieme ad un bel gruppo di personaggi, della Azure Chat Talk, meetup in stile unconference organizzato da DotNetLobardia. Lo scopo è molto semplice: una chiacchierata molto informale sul mondo Azure. Domande, risposte (speriamo) e tante discussioni. Gli argomenti possono spaziare dall’architettura a questioni tecniche molte di nicchia. Venite attrezzati di domande, tante domande. Basta e avanza :-)
Quale è il vantaggio di adottare Semantic Versioning? Abbiamo fatto una brevissima e del tutto non esaustiva introduzione a SemVer, ma la domanda è comunque valida. Il cliente ha sempre ragione Detto a cui siamo più o meno tutti, dalla nascita, assuefatti e che man mano cresciamo ci rendiamo conto di quanto sia deleterio. Proverbi a parte, SemVer è solo ed esclusivamente un “favore” che state facendo al vostro cliente. A noi fornitori complica solo la vita ;-) Perché si I vantaggi per l’utilizzatore finale di una libreria sono notevoli perché garantire...
La documentazione di Radical è stata finalmente migrata dal Wiki di GitHub ad uno strumento pensato per gestire la documentazione: GitBook. Il risultato è disponibile qui: https://docs.radicalframework.com/. I sorgenti sono invece su GitHub: https://github.com/RadicalFx/documentation. Perché migrare. Tre motivi principali: Il Wiki di GitHub è molto limitato in termini di feature, struttura della documentazione stessa e gestione degli asset L’aspetto collaborativo tipico di un progetto open source è monco. Ad esempio non c’è supporto per le PR, limitando quindi di fatto la possibilità che la community partecipi ...
Semantic Versioning (SemVer) è un modello di gestione del versioning finalizzato a rendere esplicito, grazie al modo in cui il numero di versione di una dipendenza evolve, quale sarà l’impatto che il fruitore deve aspettarsi installando una nuova versione della dipendenza. Non sto qui a raccontarvi i dettagli del funzionamento, semver.org descrive tutto molte bene e in maniera sufficientemente concisa da non poter addurre la lunghezza come scusa. TL;DR; Per farla breve se sviluppate un libreria non potete non adottare SemVer, è una questione di buon costume e di rispetto degli altri. Quello che volete evitare...
Sono sempre stato un gran fan e pure un po’ talebano di IoC e DI tant’è che già nel 2008 ne parlavo ampiamente ai Community Days con una sessione introduttiva su IoC e i vari pattern di contorno. Ho sempre pensato che usare ServiceLocator equivalga ad andare in vacanza portandosi dietro tutta la casa, ma proprio tutti mobili compresi, come bagaglio. Neanche mia moglie che è un gran visir del bagaglio esagerato ci riesce. Abbiamo costruito Radical con la convinzione che ServiceLocator non serva, e ci siamo riusciti senza fare pressoché nessun magheggio particolare. Mi rendo conto...
L’edizione romana del workshop “Microservices development deep dive” punta a rivoluzionare il vostro modo di pensare ad un aggregato, introducendo il concetto di componente autonomo. Una delle cose che affronteremo nel dettaglio, con anche tante demo, è proprio cosa significa modellazione di dominio quando si parla di servizi e componenti per SOA. Se siete quindi curiosi di capire perché come abbiamo immaginato gli aggregati fino ad oggi non è detto che sia il sistema migliore questo è il workshop che fa per voi :-) Se invece è la prima volta che sentite parlare di questo workshop, qui di...
Un paio di settimane fa sono stato ad Amsterdam per DDD Europe, non per mia scelta. La spinta ad andarci è stata l’opportunità di aiutare Udi durante il workshop su Microservices. Per uno annoiato a morte dalla tecnologia trovare nuovi stimoli non è facile e la frizione ad accettare di stare lontano 5 giorni dalla famiglia è molto alta. L’opportunità era comunque ghiotta e la scelta finale è stata restare ad Amsterdam anche per i due giorni di conferenza, oltre ai due di workshop. Così così. Avere a che fare con uno annoiato è molto...
Sabato sono stato al mini Agile Day a Vimercate, è stata una giornata molto piacevole che mi ha dato l’opportunità di conoscere persone molto interessanti. Nel mio piccolo ho avuto il piacere di raccontare come siamo organizzati in Particular. Holacracy è morto Nelle cosiddette chiacchiere da corridoio ho avuto l’onore e il piacere di scambiare un po’di opinioni con Angela Sanger e una delle domande che sono emerse è: non hai la sensazione che holacracy sia in una sorta di declino? (vado molto a memoria) Non avevo una risposta sabato e non ho una risposta adesso, il...
In Radical abbiamo un interessante problema: tutto, ma proprio tutto, è basato su Dependency Injection e Invertion of Control. Questo in soldoni significa che concetti come DI e IoC devono essere ben chiari al nostro utente finale. Falso. L’assunzione è semplicemente falsa, Radical è stato disegnato con l’intenzione di nascondere la necessità di DI e IoC semplicemente perché per un uso tradizionale del framework non sono necessarie, non lo sono veramente. Al fine di semplificare ulteriormente la barriera d’ingresso facciamo largo uso di convenzioni. Ne abbiamo parecchie, sia per la fase di boot che...
Che è un po’ come andare dagli amici e dire che finalmente sei un uomo ;-) Scherzi a parte. Git è uno strumento molto interessante, allo stesso tempo molto potente e la potenza si accompagna con i rischi. Git ha inoltre una caratteristica interessante: è possibile pressoché fare “undo” di tutto e quando non è possibile c’è sempre Gian Maria. Conoscere a fondo i propri strumenti quotidiani è il metodo migliore per non farsi controllare dagli strumenti ma per controllarli; ecco che Git da linea di comando è un ottimo modo per avere piena conoscenza dello strumento...
Ho già parlato a lungo dei 4 macro argomenti che compongono il workshop “Microservices development deep dive”: UI-Composition Pub/Sub Saga IT/Ops Ho anche già detto che l’edizione romana sarà molto rinnovata rispetto a quella precedente. Quali novità? Uno dei nuovi argomenti che tratteremo durante lo svolgimento dei 4 temi principali è che impatto hanno le scelte tecnologiche sull’architettura e viceversa. Cercheremo di capire a fondo perché scegliere una tecnologia piuttosto che un’altra. Discuteremo scelte tecnologiche estreme e a volte...
Fate un favore a voi stessi, non fate la corsa al nome (parafrasando la corsa all’oro). Torno sull’argomento importanza del linguaggio perché mi sto rendendo conto che noi tecnici siamo governati dalla frenesia del mettere in ordine, dalla necessità di trovare nel più breve tempo possibile il posto giusto per le cose. Questa stessa frenesia ci spinge, quando modelliamo, a dare molto rapidamente un nome alle cose anche se spesso non abbiamo ancora compreso a fondo. Mai errore fu più grave Modellare, o per dirla in termini Domain Driven Design identificare i boundary, è l’attività più difficile...