Perchè non mi piacciono i generatori di codice

Ci sono tanti motivi per non usare wizard per la generazione del codice ma c'è un motivo per cui veramente a me non piacciono.

Un wizard che genera (ad esempio) delle classi partendo da uno schema del database considera tutte le classi aventi la stessa importanza il suo compito è puramente meccanico: prende una tabella e la traduce in una classe.

Il suo pregio è che evita a noi di consumare i tasti CTRL, C e V e ci fa risparmiare sulle tastiere.

Il problema è che il modello ad oggetti che noi vogliamo costruire, che è una astrazione di una situazione reale, non ha oggetti aventi tutti la stessa valenza.

Se vogliamo modellizare una macchina per un simulatore di gare automobilistiche la classe TrazioneAnteriore non ha la stessa "importanza" della classe Autoveicolo, questo si traduce nel fatto che la classe TrazioneAnteriore non potrà esistere da sola e non sarà una "banale" proprietà della classe Autoveicolo ma il suo accesso sarà nascosto e controllato dalla classe che lo contiene (Autoveicolo).

Questa sensibilità non la può avere un generatore di codice ma solo il programmatore che conosce il contesto in cui le classi opereranno (perchè è dal contesto che si deduce l'importanza di una classe).

Questo ci porta a pensare che "l'industrializzazione" del software di cui oggi si parla molto non sia cosi facile da raggiungere e che il design di un modello ad oggetti è ancor oggi un lavoro da artigiano.

Print | posted on Saturday, February 10, 2007 1:25 PM