E anche quest'oggi i miei 20 km hanno colpito. Mentre
tranquillamente transitavo in località Albaredo, e la radio gracchiava il
notiziario di Radio Radicale, tra me e me ragionavo su quello che trovo
veramente faticoso nella realizzazione di un software. A mia del tutto personale
opinione, l'attività di gran lunga più tediosa e densa di sottili problematiche
è interrogare il database.
Spesso, anzi, quasi sempre, quando mi trovo nella necessità di scrivere uno
spezzone di codice che lanci l'ennesima query sul database, mi vedo costretto a
fermarmi e a ragionare su quello che veramente voglio ottenere. Mentre il più
delle volte, il design dell'applicazione a livello di logica, nasce quasi
spontaneamente, è nel punto di contatto con la base dati che sento il più
profondo stridore e che avverto la più gravosa fatica. E non è una questione di
ignoranza, perdonate l'immodestia, lavoro da parecchio con le basi dati, e ormai
l'SQL ha ben pochi segreti per me.
L'impressione, per intenderci, è quella che si può provare cercando di far
entrare un mondo tridimensionale in una immagine bidimensionale. Ecco, questo
veramente spiega bene quello che provo. Solitamente sono abituato ad fidarmi
parecchio del mio istinto nella creazione della logica. Ormai il mio modo di
ragionare è object-oriented e da un po' di tempo trovo sempre con più frequenza
casi in cui applicare i mai troppo elogiati Design Pattern. Ma, davvero,
credetemi se dico che questo è un mondo tridimensionale, che sempre evidenzia
con l'armonia l'applicazione di tali concetti.
E invece scccrrreeeeeeecchhh. Il database! Questa maledettamente piatta
rappresentazione dei dati, così efficace, ma così difficile da ricondurre alla
terza dimensione. Non spaventatevi, non sto mettendo in discussione la teoria
relazionale, me e guardo bene, solo trovo che questo modo di gestire i dati,
razionale se volete, ma indiscutibilmente piatto, mal si colloca in una realtà
object oriented. Già so che molti di voi diranno che mi serve un buon ORM, che
devo astrarre la logica dai dati, e tutte queste belle cose. Ma il problema a
mio umilissimo parere è più profondo.
E' davvero un mapping quello che ci serve? Oppure è giunto il momento di
ripensare al nostro modo di concepire il database?
powered by IMHO 1.1