首页 > 解决方案 > 我应该在函数的开头还是结尾添加跟踪

问题描述

假设我们有自定义分析库来跟踪屏幕视图和用户操作。考虑以下选项。

// Option A
func buyButtonTap() {   
    doSomething()
    doSomethingElse()
    Analytics.track(event: .buy)
}

// Option B
func buyButtonTap() {   
    Analytics.track(event: .buy)
    doSomething()
    doSomethingElse()
}

您更喜欢哪个选项?这有关系吗?我们必须考虑以下几点:

1) 我们的应用程序和分析库都使用实时网络和数据流。
2) “做某事”的程序可能既复杂又昂贵。

就个人而言,我认为跟踪应该在程序结束时进行。原因是,当资源稀缺时,在开始时添加跟踪可能会给应用程序增加一点延迟。

标签: swiftanalytics

解决方案


跟踪与主线程无关,它是一个忘火任务。我认为你应该在后台线程中调用跟踪函数,不要担心主线程滞后。

func buyButtonTap() {
    DispatchQueue.global(qos: .background).async {
        Analytics.track(event: .buy)
    }
    doSomething()
    doSomethingElse()
}

推荐阅读