美文网首页
关于打点

关于打点

作者: nuannuan_nuan | 来源:发表于2016-05-25 10:59 被阅读1828次

对于项目来说都会有业务打点,传统的业务打点是:创建一个工具类,将打点的相关请求操作封装,业务方在需要打点的业务界面使用该工具类进行打点记录。这样做的缺点是:高耦合、工作量大、复用性差、引用脏代码等一系列问题。为了解决这一问题,我们可以通过hook的方式进行改善,同时将打点页面的相关信息配置到plist文件中,用plist进行管理和维护打点记录,同时加之以单元测试。三管齐下,让我的业务打点变得可维护、易更改、降低出错的概率等。

常规的交互有两种:1、页面统计,包括页面停留时间、页面进入次数;2、交互事件统计,包括单击、双击、手势交互等。

1、运用运行时埋点,在viewWillAppear方法中插入需要执行的打点代码段,用plist文件配置对应页面的pageId等打点信息,字典的key值可以用对应的类名来标识。

2、对于交互埋点,(控件点击、手势交互点击等),控件打点可以在UIControl的- (void)sendAction:(SEL)action to:(nullable id)target forEvent:(nullable UIEvent *)event;注入打点代码,也可以用plist文件来管理打点方法名和交互事件ID。

单元测试之前在项目中没有用到过,现在觉得真的是一本万利的一个方法,有了单元测试可以根据测试用例来快速验证项目中的一些改动可能会引起的bug。比如上面的打点需求,如果某个页面的类名或者事件打点方法名发生了变化,对应的plist文件如果没用对应的更改的话,打点记录就会失效。除非每次改动时你都没有忘记更改plist文件,对于多人合作的项目而言,这样的风险会更大,所以测试用例的单元测试是非常有必要的。

参考链接:iOS动态性可复用而且高度解耦的用户统计埋点实现

但是这样的应用虽然管理起来方便,也规解决了传统方式打点的缺点,但是还是有一些应用限制的,比如对于打点如果传递的参数不仅仅只是事件ID,还有其他业务耦合度很高的记录数据(比如用户对“打电话”按钮操作,可能会传递对方的电话号码等)这种方式还是会有问题的。

*************************

刚又想到了对应的解决方案,可以设置一个打点配置协议,在打点事件触发前,从协议中获取所需的业务打点参数。(对应的demo会在空闲时间给出)

综上:利用运行时打点是首选的推荐方案。

相关文章

  • 关于打点

    对于项目来说都会有业务打点,传统的业务打点是:创建一个工具类,将打点的相关请求操作封装,业务方在需要打点的业务界面...

  • iOS打点

    1.iOS 关于统计打点2.使用runtime 实现iOS自动打点统计3.iOS 统计打点那些事4.Aspects

  • iOS 关于统计打点

    之前到别人的一篇博客上评论了下他的打点统计方法,后来很多人来问我,,所以还是决定写下这篇文章。第一次写博客,不...

  • 春节将近,打点打点

    年关将近,各行各业都在加班加点的忙碌着,想多赚点钱,以便过个好年。 听各行业的生意人说,这两三年一年不如一年,生意...

  • 打点

    1,怀着忐忑的心情,我拖着沉重的脚步,缓慢的歩向前面不远处的红色桑塔纳小轿车。站在驾驶位门前的人看见我后,摇摇头叹...

  • 打点

    农民种地需要施肥,工厂机床高速运转需要润滑油,这同我们人类要维系繁衍需要食物一样,这是天经地义的事,谁都不会质疑。...

  • 关于打点系统(选型介绍篇)

    打点系统的价值 说到打点系统,我们先要梳理一下为什么打点系统要存在,也就是一个系统的ROI在哪里。 那么我们先看在...

  • 关于百度地图打点

    1.添加百度地图framwork;2.添加依赖库 //初始化BMKMapViewmapObj = [MapObj ...

  • iOS 使用AOP统计打点

    统计打点是 App 开发里很重要的一个环节,App 的运行状态、用户的各种行为等都需要打点,有不少关于统计的第三方...

  • jQuery获取元素宽高

    (1)、打点 width()获取元素的宽 (2)、打点 height()获取元素的高 (3)、打点 innerWi...

网友评论

      本文标题:关于打点

      本文链接:https://www.haomeiwen.com/subject/kbqtdttx.html