swift - 我应该在函数的开头还是结尾添加跟踪
问题描述
假设我们有自定义分析库来跟踪屏幕视图和用户操作。考虑以下选项。
// Option A
func buyButtonTap() {
doSomething()
doSomethingElse()
Analytics.track(event: .buy)
}
// Option B
func buyButtonTap() {
Analytics.track(event: .buy)
doSomething()
doSomethingElse()
}
您更喜欢哪个选项?这有关系吗?我们必须考虑以下几点:
1) 我们的应用程序和分析库都使用实时网络和数据流。
2) “做某事”的程序可能既复杂又昂贵。
就个人而言,我认为跟踪应该在程序结束时进行。原因是,当资源稀缺时,在开始时添加跟踪可能会给应用程序增加一点延迟。
解决方案
跟踪与主线程无关,它是一个忘火任务。我认为你应该在后台线程中调用跟踪函数,不要担心主线程滞后。
func buyButtonTap() {
DispatchQueue.global(qos: .background).async {
Analytics.track(event: .buy)
}
doSomething()
doSomethingElse()
}
推荐阅读
- java - 带有 Angular 5 的 Spring Boot Websocket 安全性
- windows - 如何使用 powershell 禁用防病毒和启用 Windows Defender
- python - 如何使用 Scikit-Learn 在 Python 中实现斐波那契数列?
- marklogic - MarkLogic REST PUT 添加文档返回 500 内部服务器错误
- c++ - 缺少 PIMAGE_DOS_HEADER 上的 MSDN 文档?
- wordpress - WooCommerce 结帐“错误处理结帐。请重试。”
- r - R中的数值错误
- ios - 快速语音识别
- docker - Linux 托管和 .NET Core Docker:PlatformNotSupportedException:此平台不支持 System.DirectoryServices.AccountManagement
- asp.net - 通过 Webservice 和 Restful API 与 SQL Server DB Online 通信