Quali tecniche fanno parte della tua Arte di Programmare?

Henry David Thoreau quote - Library Way - NY City


Quali tecniche, quali invenzioni e quali scoperte fanno parte della tua Arte di Programmare?



Dargli un nome, renderle esplicite e consapevoli, condividerle e confrontarle è più utile e vantaggioso di quanto potessi immaginare.  Comincio con il condividere le mie e aspetto di conoscere nei comments anche quelle degli altri.







Alcune tecniche che in passato ho "inventato" e usato e ora vedo che anche altri hanno sviluppato e gli hanno dato un nome:

  • Delta debugging
    Una ricerca dicotomica sulla history del codice per trovare la modifica che ha causato il bug
    • L'ho pensato e usata dal 1998, con la diffusione dei repository versionati di codice (VSS, cvs, svn, ...), come pratica manuale di debugging.
  • Latent Code Patterns
    Un modo per fare check-in continui e frequenti di codice rilasciabile senza bisogno di branch nel repository
  • Event Sourcing
    La tecnica di catturare tutti i cambiamenti di stato di un sistema registrando la sequenza di eventi che la provoca per poterne fare il Replay a piacere.
    • Abbiamo utilizzato estensivamente questa tecnica nel 2008 i colleghi Nadia, Andrea e Giancarlo ed io durante la modifica di 2 componenti critici di middleware che comunicano con sistemi esterni complessi e con molti client interni diversi e di diverse versioni. E' stata indispensabile per fare i test regressivi e funzionali dei sw pur in assenza dei sistemi esterni ( a meno di non far girare una macchina di F1 per fare i nostri test :D ).

    • Questa tecnica l'ho sentita descritta per la prima volta da Fowler in una conferenza qui a Stoccolma un paio di mesi fa e l'ho trovata descritta nel documento on-line risalente al 2005




Due "scoperte" che ho fatto e che non ho ancora ritrovato da nessuna parte:
  • Mockist-TDD Generative rules
    Applicando il mockist-TDD (aka interaction-based o behavior-based) si ottiene codice che aderisce ai principi di design S.O.L.I.D.
    • Nel 2006 ho osservato dai corsi di OO fatti al team che sono rimasti argomento per discussioni teoriche mentre nel 2007 i colleghi Paolo e Gerri si sono uniti al team e hanno insegnato la pratica del mockist-TDD ad alcuni membri del team e da subito il codice prodotto è risultato aderente ai principi S.O.L.I.D.



  • La simmetria dei Design Patterns
    Per ogni design pattern che si applica alla composizione ne esiste uno equivalente per l'editarietà e vivecersa



Print | posted @ Saturday, December 5, 2009 2:20 PM

Comments have been closed on this topic.