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