Stiamo lavorando su un codebase molto grande. È fondamentalmente un sistema operativo basato sul web, con un proprio file system e applicazioni. Le interfacce utente del sistema sono generate dinamicamente con Javascript.
Abbiamo deciso di introdurre Google Analytics per tenere traccia delle varie attività degli utenti.
La nostra preoccupazione è che, al fine di inviare dati ai server di Google Analytics su questi eventi, dovremmo distribuire il codice di analisi in tutti i gestori di eventi. Anche se avvolgere le chiamate di analisi in un modulo, dovremmo comunque chiamarlo. Per esempio. codice abituale:
$(importButton).on('click', function() {
// ... call import module to do import stuff
})
diventa, approssimativamente parlando
$(importButton).on('click', function() {
// ... call import module to do import stuff
analytics.registerEvent('import')
})
E così il codice analitico diventa strettamente accoppiato alla logica dell'interfaccia.
Come introdurre l'analisi in modo modulare, senza dispersione delle chiamate di analisi su tutte le funzioni del gestore di eventi?