Errata corrige?

Ho ricevuto un commento al mio post da parte di Zio (???) che mi critica per non aver usato la programmazione object oriented in Borland Delphi.

Due considerazioni al riguardo:

1. Non mi sono autoflaggellato abbastanza?

2. Non ho mai detto che Delphi (che comunque ho molto amato, visto che ho iniziato ad usarla dalla versione 1 e mi sono fermato alla 7 che tutt'ora uso) non fosse oo, e mi dispiace se ho dato ad intenderlo tra le righe. Piuttosto sono io che l'ho usato in modo procedurale e che per le cose già dette, mi sono svegliato solo ora.

Precisazione dovuta non tanto a Zio, che comunque ringrazio, quanto alla Borland/Delphi (oddio quanto mi sento... politically correct!).

Saluti a tutti.

Bang! E luce fu...

Anche se è tardi, prima di andare a nanna voglio dirvi che sono davvero grato ad UGIdotNET (cioé a tutta la comunità di bloggers che lo compongono) per gli spunti di stimolo/riflessione che traggo leggendo i vari post. In particolare a Emanuele DelBono per il suo post sul Test Driven Development, che ha fatto letteralmente esplodere la mia testa.

Da quando ho lasciato Borland Delphi e mi sono rimesso a studiare (C#, .NET 2.0) ho letteralmente ingurgitato nozioni sul linguaggio e sul framework che mi hanno convinto ad accettare come obsolete tutte le mie abituali metodologie di sviluppo, assolutamente inadatte perchè ancora fortemente ancorate alle mie origini di sviluppatore procedurale. Sino ad ora infatti ero riuscito a driblare il mondo della programmazione ad oggetti, e per circa un anno ho vissuto la frustrante sensazione di vuoto, di panico da pagina bianca, ogni volta che ho tentato di scrivere applicazioni (anche piccole) utilizzando Visual Studio / C#.

Poiché per una serie di vicissitudini non sono più uno sviluppatore per professione ma solo per passione, ho sempre rimandato (ad ovvia eccezione delle micro applicazioni di prova riportate nei vari compiti di fine capitolo dei vari libri di testo) pensando che questo senso di vuoto fosse dovuto ad una non ancora sufficente preparazione.

Quindi sotto con le Interfacce, Collections, Generics, da una parte, e dall'altra ADO.NET perchè una qualsiasi applicazione (almeno di quelle che interessano me) necessita in un modo o nell'altro di collegarsi ad una fonte di dati (Access, MS SQL, ecc.).

E la pressione (l'urgenza di produrre qualcosa, qualsiasi cosa) che sale, come in una pentola a pressione, ma che non sibila mai. Azz, mi son detto, forse sono troppo vecchio, 'sta roba é per la nuova leva, ma si possono passare nottate e nottate per non concludere niente?

Poi, d'un trattto... BANG!

E via col TDD, e poi NUnit, quindi una introduzione alla metodologia TDD e all'uso di NUnit.

Cavolo, finalmente capisco che non ho capito niente! Ho rincorso e ingurgitato nozioni sul come fare (implementazione), ma ho dato per scontato di saper cosa fare (disegno) mentre questo é proprio ciò che mi manca. Ecco perché TDD mi ha fatto vedere la luce, perché non solo "suggerisce" (a chi conosce la OOP) le interfacce e le classi da realizzare per soddisfare i requisiti (o meglio le eXtreme Programming "stories") ma finalmente rende chiaro anche a un capatosta come me la necessità di usare interfacce, loosely-coupled design, l'Inversion of Control Containers and the Dependency Injection pattern da cui ho finalmente capito che cavolo sono i patterns, la GOF, etc. etc, come un filo di Arianna o meglio come un puzzle di cui conoscevo parecchi pezzi di cui però non capivo l'interconnessione, la valenza, la necessità.

Quindi, per iniziare, ho installato sul mio sistema:

NUnit, NMock, e il favoloso TestDriven.NET.

Poi ho incominciato a smanettare seguendo il buon articolo (anche se utilizza la vecchia versione di NMock): Mock Objects to the Rescue! Test Your .NET Code with NMock .

Infine, preso dal sacro fuoco, ho ordinato su Amazon:

Items shipped on December 13, 2006:
Delivery estimate: January 2, 2007 - January 16, 2007
1 package via International Shipping

  • Head First Object-Oriented Analysis and Design: A Brain Friendly Guide to Ooa&d (Head First) [Illustrated]
  • Extreme Programming Adventures in C# (DV-Microsoft Professional)
  • Test-Driven Development in Microsoft .NET (Microsoft Professional)
  • Pragmatic Unit Testing in C# with NUnit (Pragmatic Programmers) [Illustrated]
  • Object Thinking (DV-Microsoft Professional)
  • Head First Design Patterns (Head First) [Illustrated]

Che ne sarà di me?

Mahhhhh....

Per adesso, buona notte!

«dicembre»
domlunmarmergiovensab
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456