Ricerca in FOLBlog

[SdSM] One Size…

 Scritto da alle 01:15 del 20/03/2010  Aggiungi commenti
Mar 202010
 
closeQuesto articolo è stato pubblicato 7 anni 8 mesi 28 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.

Siamo di nuovo a parlare delle peripezie webbistiche di J. La web-programmatrice di cui avevo gia’ detto qui, qui e per finire (speravo io) qui.

Questa volta la volpe (o la gatta?) si e’ cimentata in una fetecchia di web-applicazione che dovrebbe presentare una serie di informazioni relative ai dati di vendita di una serie di negozi per scopi statistici.

Tutto bello, se non che:

  1. Ha selezionato un ben noto database con la scusa che "e’ semplice da usare"
  2. Ha deciso che le informazioni nel database arrivano da un "export" dei dati usati da una applicazione contabile.
  3. Ha deciso che la sua applicazione deve essere "database-independent"

E qui gia’ abbiamo una serie di problemi. In primo luogo, il famoso database sara’ anche facile da usare ma quando gli scarichi sopra un paio di milioni di records entra in coma.

In secondo luogo, le informazioni che lei dovrebbe presentare sono totalmente diverse da quelle che si trovano nel database di origine.

Per ovviare al secondo problema ha deciso che la cosa migliore e’ di mettere tutta la logica di ri-analisi dei dati nel front-end.

Arriviamo quindi al succo del problema: la famosa applicazione e’ stata consegnata ed il cliente (che guardacaso e’ anche cliente nostro) e’ rimasto traumatizzato dalla lentezza abominevole della cosa. Dato che J non sa che pesci pigliare (non fate battute sui "pesci") siamo stati chiamati in causa noialtri.

Io ho dato un’occhiata alla cosa ed ho notato che:

  1. la procedura di importazione dei dati ci impiega 3 ore per svolgere il suo lavoro e funziona nottetempo, quando i negozi sono chiusi
  2. i dati di origine sono tanti, nell’ordine di milioni di records al giorno.
  3. quando il front-end e’ chiamato in causa il carico della macchina schizza a 70
  4. il tempo medio di elaborazione e’ di circa 8 minuti

Una volta visto cio’, ho riportato le mie impressioni, che si possono riassumere in: dato che il problema e’ la lentezza del front-end, facciamo fare la pre- elaborazione dei dati durante l’importazione (nottetempo) e togliamo la logica dal front-end. Anche se ci mette 8 ore lo fa di notte ed i dati sono pronti per essere presentati a richiesta.

Ovviamente la cosa non e’ garbata molto, e ne e’ scaturita la seguente discussione.

J – Se cambiamo la funzione di importazione l’applicativo diventa legato al database!
IO – E chi se ne frega? Tanto e’ un applicativo fatto appositamente per uno scopo specifico.
J – Ma la regola e’ di tenersi indipendenti dal database!
IO – Se ti interessa portare l’applicazione su una piattaforma diversa si’. Ma in questo caso a nessuno interessa fare una roba simile.
J – E se un domani decidessero di cambiare il database?
IO – In tal caso ci sara’ probabilmente da rifare l’applicazione o adattare la funzione di importazione. Ma dovrai farlo comunque dato che l’applicazione attuale e’ scritta per una struttura di database specifica.
J – Ma la logica dell’applicazione dovrebbe essere nell’applicazione e non nel database!
IO – Guarda, la logica puoi metterla in vari posti, dato che nell’utente non ci entra (purtroppo), la puoi mettere nell’applicazione o la puoi mettere nel database. Al momento e’ nell’applicazione ed i risultati sono pessimi. Che ne dici di metterla nel database e vedere che succede?
J – Ma quando ho fatto le prove sul mio laptop funzionava tutto perfettamente, ci metteva un niente a visualizzare i dati.
IO – Con quanti dati hai fatto le prove?
J – Tanti.
IO – Tanti quanti?
J – Un paio di centinaia…

Ecco la differenza tra il fare delle prove e fare delle prove con dati reali o quantomeno realistici.

IO – Ottimo, e adesso che abbiamo un paio di milioni di records nel database ci rendiamo conto che con un volume di dati "normali" il sistema non regge. Quindi perche’ non pensi a rielaborare quei dati in modo diverso?

Come al solito, quando si cerca di fare le cose con il principio di "one size fit all", si finisce con lo scoprire che "one size fit one". E qualche cosa mi dice che J non seguira’ il mio consiglio.

Davide

legenda personaggi

Technorati Tags: Storie dalla Sala Macchine,humor

Articoli simili:

  • Facebook
  • Twitter
  • Delicious
  • StumbleUpon
  • Wikio
  • Reddit
  • Technorati
  • Segnalo
  • Live
  • Add to favorites
  • Email
  • RSS

 Lascia un commento

Puoi usare questi tag e attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(richiesto)

(richiesto)

Pinterest
EmailEmail
PrintPrint
%d blogger hanno fatto clic su Mi Piace per questo: