dicembre 2017 Blog Posts
Mi capita troppo spesso di osservare implementazioni di CQRS prese troppo alla leggera, con conseguenti (tanti tanti) buchi che fanno acqua da tutte le parti. Soprattutto quando, spesso senza che ve ne sia una vera necessità, l’implementazione comporta consistenza eventuale tra modello in scrittura e modello in lettura. Quello che spesso osservo è un pastrocchio di concetti che tendono a fare di tutta l’erba un fascio e una soluzione che deve per forza portare con se concetti e pattern architetturali che nessun dottore ha mai detto debbano andare per forza insieme. Stanno bene insieme, ma nessuno ci...
Stamattina leggevo questo interessante post di Alessio Biancalana, e sebbene mi trovi d’accordo con le premesse non condivido le conclusioni e men che meno l’unico commento presente al momento della lettura. UX e UI sono l’unica cosa che vedono È indubbio che l’interfaccia utente sia l’unica cosa che un utente normale è in grado di percepire, ne consegue quindi che se UI e UX sono pietose per l’utente l’applicazione sarà pessima e poco utilizzabile, a prescindere dal dettaglio che sia efficace. Ci sono ovviamente, ad oggi, delle eccezioni a questa regola. Ma sono sempre...
È un periodo, fortunatamente breve, in cui sto avendo a che fare con un paio di personaggi che nonostante sulla carta dovrebbero fare i miei interessi in realtà fanno di tutto solo ed esclusivamente per fare i loro. E ovviamente lo fanno a mero scopo economico, la loro mission è quindi solo ed esclusivamente portare a casa la provvigione. Come? Irrilevante, basta portarla a casa. È il modo peggiore per poter gestire un cliente, in particolare se il cliente è il sottoscritto che sia per indole che per esperienza di questi ultimi anni è abituato ad un...
Una delle cose “scomode” di passare un parametro ad una funziona per reference è che la funzione a questo punto può liberamente modificare il parametro in ingresso con il rischio di produrre side-effect indesiderati. Una cosa del tipo: struct Person { … } static void DoSomething( ref this Person ) { … ...
In un modello basato su una struttura fluida, e non basato su una gerarchica forte, modello che potremmo definire teal o holacracy, i valori sono uno dei mattoni fondanti, se non il più importante. I valori sono alla base di qualsiasi organizzazione sana, che voglia potersi distinguere e avere una sorta di “morale”. I valori, in coppia con la mission aziendale, sono la costituzione dell’organizzazione Sembra una cosa quasi scontata e un po’ lapalissiana, ma non c’è nulla di più difficile che costruire un’organizzazione solida intorno ad un insieme di valori che non siano ispirati al...
Chiudiamo la settimana del rant sulla sicurezza che è meglio :-) Mi sono già sfogato con quelli che non ti lasciano incollare la password. Ho ribadito che le mie password io non le voglio conoscere. Oggi vorrei chiudere in bellezza riprendendo un commento di Andrea: Spesso e volentieri incontriamo siti che impongono una lunghezza massima della password. Ogni volta che li incontriamo dovremmo esserne spaventati. Che cosa ci stanno dicendo? Se il sistema in questione impone una lunghezza massima c’è un elevatissimo rischio che la password sia salvata in...
La domanda che in tanti si fanno è: come posso avere delle password sicure? ma soprattutto perché non devo mai riutilizzare la stessa password? Abbiamo già accennato a come rendere efficace una password, e la risposta è una sola: 2FA. La password sicura è quella che non conosco Continuiamo ad utilizzare l’analogia chiavi di casa, conoscete la forma delle chiavi? Sapete a memoria come sono posizionati i denti? No, semplicemente vi affidate ad un portachiavi in cui conservate con cura le chiavi. Allo stesso modo non ha nessun senso conoscere una password, non è...
Sempre per quella storia della sicurezza. Sapete quella cosa noiosa che in molti la fuori ignorano, pensando stupidamente che sia un dettaglio. Ho un fastidio profondo per quei siti che in fase di registrazione non ti lasciano fare copia incolla della password nel campo conferma password. Credono forse che sia più sicuro impormi di scriverla due volte? no spiegatemi, perché io sinceramente le vostre stupidate non le capisco. Le mie password sono tipicamente cose del tipo: *I^%RT FC p97tgn 9ouvb$E%^ Pensate davvero che facendomela scrivere sia più sicura? o cos'altro? Quando...
In C# 7 questo non era possibile: public static class Extensions { public static void Something( ref this ExtendedStruct es) { } } Non era cioè possibile passare ad esempio una struct ad un extension method per reference, pagando quindi pegno se volevamo usare extension method su strutture. Con C# 7.2 adesso è possibile, ci sono altre novità che riguardano “ref”, forse più interessanti ancora. Novità tutte orientate...
Una delle cose “noiose“ quando si scrive un’applicazione, ad esempio, Console è quando nel metodo Main si deve avere a che fare con codice asincrono, si finisce per scrivere una cosa del tipo: public void Main(string[] args) { MainAsync(args).GetAwaiter().GetResult(); } public Task MainAsync(string[] args) { return Task.CompletedTask; }...
Abbiamo già detto che esiste solo oneway-messaging e che exactly-once delivery è una chimera, per continuare la mia carrellata di buoni motivi per non impelagarsi in un sistema distribuito oggi vorrei introdurvi al magico mondo delle poison queue. Quando un messaggio viene inviato possono succedere le seguenti cose: L’infrastruttura non riesce a consegnarlo alla coda di destinazione Il messaggio arriva alla coda di destinazione malformed Il destinatario riceve il messaggio ma fallisce nel processarlo Come più volte ho ribadito in un sistema basato su messaggi...