我正在研究一個沉重的電子商務應用程序。在這樣的應用程序跟蹤是一個巨大的關切關鍵是要知道用戶是使用功能x還是點擊按鈕y等。應該如何抽象一個跟蹤代碼?
例如,假設您可以通過單擊標題上的搜索按鈕或應用程序寬鍵盤命令CTRL + S
來調出搜索。
現在,如果我們想跟蹤這樣的事情,最好的方式是如何處理它。我思考和(使用僞JavaScript
在這裏,但語言並不重要)之間的抖動:
1.只要做到其中,動作發生的直接追蹤:
function searchButtonClicked{
//this event will be raised anyway to be catched somewhere else to bring up the search
raiseEvent('searchButtonClicked');
//now directly track the stuff here
trackingService.trackEvent('searchButtonClicked');
}
而且......
2.就提高了操作事件,然後趕上那些在trackingService
function searchButtonClicked{
//this event will be raised anyway to be catched somewhere else to bring up the search
raiseEvent('searchButtonClicked');
}
...在trackingService
onEvent('searchButtonClicked', function(){
track('searchButtonClicked');
});
所以乍看之下某處2.似乎有點更好的以我爲這些組件還需要對trackingService
的依賴。他們甚至不知道跟蹤存在。另外一些現有的事件可能會被重用。然而,只有對於一小部分事件纔是真實的。爲了追蹤,大多數事件將會或多或少地被提高。所以我想知道這個抽象層是否真的有必要?
這種跟蹤與日誌記錄沒有太大區別,我認爲直接登錄事件發生的地方是可以接受的做法,不是嗎?