Dopo la provocazione di
Gianluca non potevo esimermi dal rispondere ;-).
A quale età hai cominciato a programmare?
Quinta elementare: lessi un libro della casa editrice Jackson (qualcuno la ricorda?) la quale introduceva agli elementi di base sulla programmazione
Come hai cominciato a programmare?
Su un foglio di carta. Scrivevo il listato rigorosamente in basic e poi lo simulavo manualmente.
Qual’è stato il tuo primo linguaggio di programmazione?
Basic del Commdore64.
Qual’è stato il primo programma vero che hai scritto?
Un gestionale in Foxpro per il mio professore di elettronica in quinta superiore.
Quali linguaggi hai usato da quando hai cominciato a programmare?
Turbo Pascal, Basic (nelle varie incarnazioni GWBASIC, QuickBasic, ...), Assembler, C, C++, Prolog, VB, C# e tanti altri che nemmeno ricordo
Quando è stato il tuo primo vero lavoro da programmatore?
Vedi sopra
Con il senno di poi, rifaresti lo stesso il programmatore? Ricominceresti a programmare?
Certamente. What else? :-)
Se ci fosse una cosa che hai imparato nella tua carriera e che vorresti dire ai giovani programmatori, cosa diresti?
Studiate, leggete e soprattutto imparate dal codice scritto da altri. Un'ultima cosa è grazie ai clienti se pagate l'affitto quindi non trattateli troppo male.
Qual’è la cosa più divertente che hai programmato?
Alcuni videogiochi realizzati con il mitico S.E.U.C.K. (anche se non si può dire verà programmazione) e la gestione multiplayer di un videogioco tramite le DirectPlay
Chi tirare in ballo ora?
Papo
Roberto Valenti
Pierre Greborio
Rosalba Fiore
Ho letto il post The Flawed Theory Behind Unit Testing di Michael Feathers e mi ha fornito alcuni spunti interessanti di riflessione. In particolare:
John Nolan, gave his developers a challenge: write OO code with no getters. Whenever possible, tell another object to do something rather than ask. In the process of doing this, they noticed that their code became supple and easy to change.
Ho rivolto la questione al team con cui sto lavorando ed il coach ha posto la seguente domanda:
Una cosa che continuo a chiedermi a proposito dell "tell, don't ask" è la maniera in cui vengono normalmente realizzate le pagine web: tu hai un template a cui passi oggetti a cui chiedi varie informazioni. E' tutto un "ask, don't tell", che fa sì che gli oggetti che passi alla view siano, alla fine, oggetti di dominio, i quali finiscono per essere poco più che contenitori di dati estratti dal DB. Questo è quello che si fa di solito. La domanda che vi pongo è: come si potrebbe fare altrimenti? A partire dalla view: come puoi fare una view che applica il "tell, don't ask"?
Un altro link interessante su questo concetto è Tell, Don't Ask.
Alla domanda di prima non ho una risposta, ma ci sto riflettendo. Inoltre voglio approfondire l'argomento e verificare se l'approccio è efficace. Questo implica ragionare con gli oggetti in funzione di cosa fanno piuttosto che dipendere da quale stato siano.
In termini di TDD significa prediligere i test d'interazione piuttosto che quelli di stato e quindi l'utilizzo intensivo dei mock objects.
Cosa ne pensate?