Post

Visualizzazione dei post da febbraio, 2013

Inversion of Control e Dependecy Injection fatti in casa (1)

Qualche giorno fa stavo lavorando ad un piccola applicazione con un collega e ci siamo dovuti subito confrontare con una scelta architetturale che mi ha ispirato la scrittura di questo post. Prima di mettere troppa carne al fuoco, meglio spiegare i requisiti di questo mini-sistema; chiaramente lo spoglierò di tutte le cose che "fanno solo volume", e che non sono significative in questo frangente. Problema: data una bellissima GUI (WPF, Windows Forms, fate voi...) con una casella di ricerca "Google style", è richiesto che l'applicativo esegua una ricerca di tutti documenti, di un formato definito, che contengono nel nome del file oppure nel contenuto del documento stesso, il testo digitato. La richiesta particolare è che la ricerca debba essere fatta sia sul computer locale, che in una locazione remota utilizzando un servizio web (opportunamente disegnato per l'occasione) in grado di erogare le informazioni. Sembra tutto facile, quindi mettiamo un bel pu

Perchè applicare un "Design Pattern"

"Nell'ingegneria del software, un design pattern (schema di progettazione) può essere definito una soluzione progettuale generale a un problema ricorrente.". Questa è la prima frase che riporta Wikipedia quando si cerca la voce "Software Design Pattern". I più arguti avranno già capito che questo post non è di natura empirica (quindi condito da tanto "succoso" codice); più che altro è l'ennesima "sbrodolata" concettuale-filosofica a tema informatico. Si, perchè essere appassionati di informatica è un po' essere filosofi e teorici della materia, capire i principi ispiratori, farli propri ed applicarli alla pratica quotidiana. Ritengo che il nostro mestiere sia una di quelle professioni che più richiedono dedizione e passione. Si studia per anni ciò che hanno fatto quelli che sono venuti prima di noi; si fa esperienza sul campo, versando sangue e lacrime ogni giorno. Alla fine ci si sveglia una mattina convinti di sapere (più o meno