Con tutto il rispetto per tutti i programmatori, sottolineando che conosco le condizioni di produzione e che faccio parte di questa categoria, mi permetto di scrivere questo racconto per un piccolo sorriso.
Buonasera,
siete seduti comodi? Bene! Siete davanti al Visual Studio e state per premere new ClassLibrary?
Siete proprio sicuri? E va bene, allora fatelo.
Quanto tempo avete a disposizione? Poco? Allora iniziate col chiamare il vostro lavoro "Insieme di classi" e non "Libreria". Se invece ne avete un po' di più allora ve lo permetto . Ma questo insieme di classi serve a voi per seguire un certo pattern o serve per distribuirlo a qualcun altro? Per gli altri? Allora cercate di prendere un bel respiro...
Che bellooo!!! Una nuova avventura... e ora? Vedete quel Class1 creato automaticamente? Vi serve? No? Allora cancellatelo, perchè lasciarlo lì a marcire?
Ora cominciate pure a scrivere del codice, a includere eventuali reference esterni. Perfetto.
Avete aggiunto qualche namespace del tipo System.Web.UI.WebControls? Si? State per caso sviluppando una libreria di controlli? No? Allora perchè lo avete fatto? Per poter utilizzare un controllo che verrà passato? Ma siete davvero sicuri che vi serve tutto il controllo? Non è che per caso vi basta una proprietà? Magari elaborandola e poi restituendola al mittente?
Bene... proseguite pure... perchè state includendo System.Configuration? Dovete impostare delle configurazioni sulla libreria? Non vorrete mica leggerle dall'esterno!!! Settings e parametri sui costruttori non vi sembrano una soluzione migliore?
State scrivendo qualche query? Avete pensato di configurare una connectionstring o qualche parametro in più per poter configurare il database di destinazione?
Avete cablato delle stringhe o dei messaggi di errore? Perchè? E se io volessi far diventare l'applicazione multilingua? Devo aprire la libreria con il Reflector e copiarmi i metodi relativi?
Ma quante belle classi avete scritto... ma non ci sono un po' troppi metodi uguali? Mai sentito parlare di ereditarietà? Provate a semplificare.
Avete finito? Di già? Mai sentito parlare del "virtual" per permettere a chi utilizza la vostra libreria di personalizzarla?
E infine... presente quelle righe verdi? Non sono inutili... perchè non commentate tutti i vostri metodi public e protected? Vi richiede troppo lavoro? Ma state consegnando qualcosa di completo, nei tempi giusti ma incompleto, che rallenterà comunque qualcun altro.
State compilando? Sicuri di non aver dimenticato ancora niente? Che ne dite di generare il file xml relativo ai commenti? Vi richiede 10 secondi del vostro tempo.
Ora, forse, avete prodotto qualcosa di accettabile, che se compilato in Release potrà essere utilizzato da qualcun altro. Una valutazione da FxCop vi richiede un altro minuto, perchè non darci un'occhiata?
Applausi...
Technorati tags:
Csharp