Code Quality

Comunicare le intenzioni di un metodo attraverso la sua signature

Ieri stavo debuggando un componente per risolvere una serie di bugs, quando, dopo un buon numero di F11 arrivo a un metodo che prende in input una collection e restituisce una collection dello stesso tipo. La signature è più o meno come questa: private static List<int> ApplyCustomFilter1(List<int> ints) E questo assomiglia al codice che lo usa: List<int> ints = new List<int> { 0, 1, 2, 3 };var filteredInts = ApplyCustomFilter1(ints);// altro codice che lavora su ints e filteredInts Ok, quelle tre righe mi hanno fatto perdere mezz'ora :( Il problema è che non posso assumere nulla sulla lista ‘ints’ dopo che il...

posted @ lunedì 3 agosto 2009 21:22 | Feedback (0)

Learn by Reading (code) #2 – StructureMap, the Registry DSL

StructureMap è un maturo (apparentemente il più vecchio) IoC tool per .Net. Non è mia intenzione in questo post dimostrare come usarlo o spiegarne le funzionalità e neppure parlare di IoC o DI…per quello c’è Google. Piuttosto, mi interessa analizzare l’implementazione di un suo componente, il Registry DSL – riporto dal sito ufficiale: “The Registry DSL is the recommended way to configure StructureMap, and creating Registry classes is the recommended way of using the Registry DSL.  The Registry DSL is mostly a Fluent Interface with some Nested Closure usage.  The intent of the Registry DSL is to make the configuration process...

posted @ sabato 4 luglio 2009 01:19 | Feedback (0)

Learn by Reading #1 - Funq

Questo è il primo post di una serie dove proverò ad analizzare come progetti più o meno famosi sono stati implementati. Parto con Funq, che come descritto dall’autore “provides a high performance DI framework by eliminating all runtime reflection through the use of lambdas and generic functions as factories. Developed entirely in C# using TDD, it's a container you can crack open and actually understand to the core.” Ho colto l’invito e l’ho crack opened. La prima cosa che si nota è quanto la libreria sia compatta e minimalista, meno di 15 files in tutto, di cui: ...

posted @ lunedì 22 giugno 2009 02:08 | Feedback (2)

sbagliare è umano…

…ma perseverare...arghhh E dire che mi ero anche riletto questa interessante discussione pochi mesi fa :( Giusto così poi magari me lo ricordo, riporto qui, velocemente, la cronaca dei fatti. mi viene richiesto di modificare un componente di un grosso sistema implemento la modifica (correttamente) e mi stupisco di aver fatto anche abbastanza in fretta chiacchiero con un collega e gli dico: sai, ho già finito quella modifica…pensavo peggio funziona a dovere, ma voglio...

posted @ mercoledì 10 giugno 2009 00:44 | Feedback (0)