ILazy Vs. ISmartLazy

E' universalmente risaputo che tutti gli sviluppatori software implementano l'interfaccia ILazy, ossia sono pigri per definizione. Dopo due giorni di Community Days, mi sono convinto dell'esistenza di due diversi modi di essere pigri:

  • ILazy
  • ISmartLazy

Alcuni esempi di implementazione ILazy:

  • Scrivo il codice senza fare testing, e schedulo il debugging il più tardi possibile, possibilmente facendolo fare a qualcun altro;
  • Documentazione? No grazie, tanto io lo so quello che ho scritto...
  • Studiare TDD, OR/M, IoC, Design Patterns... Non ho mica tempo da perdere, io!
  • Refactoring di ciò che "puzza". Ma perchè? Se funziona, non lo tocco.

Alcuni esempi di implementazione ISmartLazy:

  • Ogni elemento dell'applicazione dev'essere corredato della sua suite di tests, così non faccio le 3 di mattina di domenica perché lunedì devo consegnare...
  • Documento oggi, per non impazzire (o non far impazzire qualcun altro) domani
  • Se uso un framework di IoC, posso faticare mooooolto meno dopo, perchè posso iniettare logica di logging, testing e quant'altro senza toccare il codice testato, anche se non abbiamo necessità architetturali di più alto livello (applicazioni  estendibili e configurabili "a caldo").
  • Se studio NHibernate (o un altro OR/M), e imparo a usarlo bene, mi risparmio una montagna di lavoro per persistere il domain model sul database relazionale.
  • Scrivere secondo i principi OO, per gestire il cambiamento senza dover ricominciare tutto da capo, sapendo che non basta usare un framework e un linguaggio object oriented per scrivere applicazioni object oriented!

Chiaro no?

Il mio primo "Community Days"

CDays2008
«luglio»
domlunmarmergiovensab
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789