Recentemente ho avuto un progetto in cui dovevo ottenere alcuni dati da un particolare sistema software a un portlet. Il software usava un database, e ho passato un bel po 'di tempo a modellare i dati che volevo e quindi creare un servizio web in modo che il mio portlet potesse afferrare le informazioni.Segnalazione e codifica - pensieri?
Poi improvvisamente mi ha colpito che stavo sprecando il mio tempo. Ho afferrato BIRT, l'ho gettato in un portlet e poi ho appena scritto alcuni rapporti che hanno afferrato direttamente i dati necessari dal database. Avevo finito in un pomeriggio.
Capisco che la segnalazione è una strada a senso unico, ma questo mi ha fatto riflettere. Gli strumenti di reporting possono essere molto efficaci per creare report (duh) dai tuoi dati reali, ma quando lo fai, stai bypassando il tuo modello che, tranne nei casi semplici, non è una rappresentazione diretta dei tuoi dati così come esiste nel tuo database.
Se si sta scrivendo un'applicazione ad alta intensità di dati e si richiede la possibilità di eseguire report non banali, si ignora l'applicazione e si utilizza qualcosa come BIRT o Crystal Reports? Come gestisci questi strumenti come parte del tuo processo generale? Ritieni che i rapporti che scrivi siano parte della tua domanda e li tratti come tali? Un rapporto è una vista, un modello e un controllore (se vuoi) tutto in un unico grande pasticcio, come gestisci e interpreti e pianifichi per quello?
Domanda riveduta: è possibile e anche comune che un report esegua alcuni calcoli aziendali che in un mondo perfetto si desidera siano contenuti nella propria applicazione. Ciò può portare a una mancata corrispondenza delle informazioni restituite all'utente. D'altra parte, gli strumenti di reporting rendono così facile raccogliere e visualizzare informazioni che è difficile adottare l'approccio di un purista e fare tutto dall'interno dell'applicazione. Esistono buone tecniche per garantire che i dati nei report corrispondano ai dati che potrebbero essere visualizzati nella GUI normale?