实习记录(一)
实习记录(一)
月底就要离职了,从五月中旬入职到现在,已经三个半月了,时间过得真快啊,特开此贴记录一下在此期间的一些学习与收获吧。
ps:预计将撰写三篇文档从整体到技术细节来回顾我的FiT实习之旅。
一、业务参与
1.1 开发要求
三个多月的过程中,首先让我熟悉了组内亦或者说大厂严谨的开发流程与标准。
从需求评审到概要设计,从方案评审到需求开发,从埋点上报到CR体验,从监控发布到值班监控。这一系列的流程从懵懂到熟悉,让我收获良多。
1.2 开发重点
组里的业务围绕于微信服务下九宫格中的信用卡还款业务,模块众多:还款、借款、超V,我的需求多数围绕于超V下的用卡领域,也发现其拥有与其他业务不同的特殊点:页面迭代快、活动模块多、外部依赖高。
1.3 问题挖掘
不知道是不是我的运气问题,开发需求总会发现一些线上问题,被迫让我开发周期延长/需求从易到难,不过确实在一定程度上能快速提升我的开发能力。
二、地图定制化
2.1 场景描述
我们围绕的是超V业务,那么用户在申请超V卡后,可能会处于未激活状态,这个时候会提示用户“在线激活”或“查看附近网点”,那么若用户点击查看附近网点,会根据用户的定位,从近到远展示对应银行的线下网点,同时会展示定制化地图,上面会标记对应的银行logo等。
我从0到1完成了整个定制化地图的设计与开发。
2.2 整体逻辑
整体的逻辑设计与开发其实分为了两个阶段,第一阶段其实只考虑实现,第二阶段进行了搜索效率的优化。
2.1.1 第一阶段
- 获取当前用户定位
- 初始化地图、搜索半径(初始化为5KM)
- 根据定位、搜索半径、目标银行来进行搜索
- 没有搜索到,则扩大半径范围继续搜索
- 搜索结果过少(少于推荐数量8),则扩大半径继续搜索
- 由于api不会一次性返回所有结果,是分页返回,没有拿取所有结果,则翻页搜索+结果拼接
- 进行信息过滤,剔除ATM、证券等杂乱信息
- 结果数量判断,若不满足推荐数量,再次查询
- 对结果进行距离排序
- 给地图加上mark(其实就是将结果添加到地图上),扩展边界来容纳所有结果
- 对每个marker进行配置(替换图标、设置大小等)
- 调整地图视野,使得用户的定位为地图中央
基于上述逻辑,最终完成了地图的定制化工作,但是还没有结束! - 最后一步是,完成地图导航工作,用户点击某个网点,传入两点的经纬度、默认交通方式等,调用routeplan
2.1.2 第二阶段
其实通过第一阶段,我们可以发现搜索效率并不高,通过后台的搜索api调用量统计,单次展示,需要调用搜索api为5-10次,耗时1700+ms。
刚好遇到腾讯地图api升级,于是通过对文档的仔细研读,发现了新的实现思路。
腾讯地图提供了全新的搜索api,我对其关键的属性进行了整理:
通过对应设置相关属性,能够仅仅使用一次调用,就可以完成基于用户所在位置,自动扩大范围进行地点搜索,返回排序后的结果,同时基于POI分类表,能自动剔除无用信息。
由于推荐数量是8,自动扩大范围搜索得到的结果必然是超过8的,所以也无需翻页递归搜索操作,直接选取第一页前8个结果即可。
效果:每次搜索api调用量为1次,耗时降低到500ms以下,搜索效率提升70%。
三、性能优化
在完成需求和技术债解决的过程中,我也对对应业务的超V用卡小程序进行性能现状梳理和对应的可优化项的实践,也取得了一定成果,在实习的第二篇笔记进行详细介绍。




