Ci sono Metriche e metriche? o metriche e basta?

Nel mese di giugno non so se qualcuno si è accorto della mia "assenza".

In realtà ero alle prese con delle questioni abbastanza complicate (per me) che mi hanno fatto imparare tante belle cose su diversi fronti.

Ad esempio ho capito che, prima o poi, dovrò mettermi anch'io a studiare un po' di più le "bassezze" del CLR.

Ma veniamo al dunque.

In questi giorni sto utilizzando NDepend per fare delle analisi su un grosso progetto alla quale lavoro (in solitario) da un anno (il 16 luglio :D).

Lo strumento mi sembra davvero molto ben fatto e completo e da oggi, accantonate le prime analisi lanciate puramente per "vedere il risultato", ho cominciato a studiarmi un po' tutte le informazioni.

Il progetto (formato da 8 assembly custom) è risultato altamente instabile (beh, sono pur sempre un sviluppatore che ogni tanto si avventura in terreno architetturale...) ma quello che più mi han fatto riflettere sono alcune metriche.

Tipo: metodi con più di 30 righe sono troppo lunghi e devono essere splittati.

Oppure: metodi con meno del 20% di commenti non vanno bene, e ancora: oggetti troppo grandi sono da evitare, ecc, ecc...

Al di là del fatto che mi rendo conto che non sono cose su cui passare troppo con leggerezza, mi chiedevo queste sono da considerare Metriche o metriche (la differenza, per chi non l'avesse notato, sta nella maiuscola e, quindi, nell'importanza).

Voglio dire: un architetto (o chi per lui) in quanto tale SA quali sono, nel suo progetto le occasioni in cui una metrica può essere trascurata o deve per forza mirare alla perfezione (=in tutti i membri, di tutte le classi, di tutti i namespace di tutti gli assembly, le metriche Devono essere Rispettate)?

Faccio un esempio, poi vi lascio alle vostre considerazioni: nel mio Domain Model ho una classe del tipo NomeOggettoView che ha un metodo GetColonne che ritorna un IList di DataColumn per comporre correttamente la griglia quando viene utilizzata come DataSource.

E' più lunga di 30 righe perchè deve ritornare circa 10 DataColum, e per ognuna delle quali definisco: nome del DataItem, se dovrà essere centrato o meno, la larghezza, ecc...

Va da se che splittarlo non ha molto senso...

Applicando però questo ragionamento all'infinito si corre il rischio di non fare nessun intervento e quindi...?

Tecnologie e distanze

Mi è capitato spesso di pensare alla comodità che le tecnologie ci "regala" per quanto riguarda il fatto di far diminuire (per non dire eliminare) le distanze.

Mi sono sempre reputato un pioniere nell'utilizzo di tali tecnologie (un pioniere certo non mondiale, ma almeno per quel che riguarda il mio contesto).

Ricordo che anni fa, avrò avuto si e no 18 anni, quando ancora chattavo con ICQ, mi capitò di conoscere un professore di spagnolo (ho sempre avuto un debole per le lingue straniere, mi piace sentir parlare un'altra lingua) alla quale chiesi informazioni ecc...alla fine lui oltre alle informazioni, mi diede anche un consiglio: "non mettere tutte quelle informazioni su internet, nome, cognome, indirizzo, numero di telefono...non si sa mai cosa può succedere".

Io ho sempre vissuto internet come lo specchio della realtà e non ho mai temuto la mia identità, così come non la temo nel reale.

Così me ne sbattei e continuai per la mia strada.

Fino ad oggi, con i vari siti di Social Networking ed affini.

Bellissimo quando riesco a contattare, i pochissimi minuti uno dei tre programmatori sperduti cinesi di un aereo per Flight Simulator X o quando riesci a contattare un reduce della seconda guerra mondiale che è stato bombardiere su un bombardiere (scusate il gioco di parole) B-17, un po' triste quando poi una tua vicina amica d'infanzia si sposa e tu lo vieni a sapere solo dopo che è successo solo perchè quel giorno eri ad Atene o se due tuoi cari amici ti comunicano che si sposano ma sei l'ultimo a saperlo solo perchè lavori troppo, sei troppo stanco per uscire la sera e al massimo bazzichi solo per Milano.

E tutto questo perchè, per qualche motivo che accomuno più alle credenze del secolo scorso e alle superstizioni che alla logica, anticiparlo o quanto meno farlo capire con queste tecnologie è ritenuto poco bello.

Per dirla come la direbbe Terim (ct della nazionale Turca a Euro 2008) una volta qualificato per la semifinale: "meglio qui con tutti i problemi, piuttosto che a casa".

Certo non è un filosofo ma rende l'idea.

Non ho mai pensato di sostituire il virtuale con il reale, ma per me è un valido aiuto piuttosto che aspettare di trovarsi di persona, nel caso in cui sia complicato.

Logico che se non è necessario, è meglio trovarsi di persona.

Io non ho mai ritenuto un problema la lontananza fisica forse per il lavoro che faccio, ma più probabilmente per un'attitudine: dal cellulare (o dal messenger, o da qualsiasi altra rubrica) non ho mai cancellato un numero o un contatto. E non certo perchè vado d'accordo con tutti, ma perchè ogni persona che ho conosciuto e che mi conosce merita il poter essere contattato da me o merita di contattarmi. E' uno scambio. Di vita ed esperienze anche, non serve necessariamente essere vicini fisicamente.

Una volta mi è capitato di trovare lavoro per un amico che non sentivo da mesi e questo solo perchè ricordavo le sue capacità e avevo ancora il suo numero.

Non voglio che il virtuale sostituisca il reale ma nemmeno che per questi preconcetti ancora nel 2008 si rischi di rimanere isolati, distanti.

Io non mi sono mai isolato. Non sono andato nel Tibet, e se anche fossi andato la, di certo sarei sempre connesso alla Rete, non ho certo bisogno di Carrambà che Sorpresa, non mi va di sentire di persone che non si vedono/sentono da anni, solo per un problema di distanza fisica. Non al giorno d'oggi.

Ci tenevo a dirlo. E ci tenevo che fosse stasera.