工作成绩
2017年主要参与了SDK的维护与升级,H5SDK的开发与维护,聚合SDK的开发与维护,说说英语的相关功能的参与。
经验教训
SDK的维护与升级,从第一版到第二版有很大的改进。第一是用户体系的升级:经历了从用户名登录到用户名或手机登录的的过程。这一功能的改进,主要是为了解决用户名密码注册流程繁琐,随机注册容易忘记账号的问题。通过手机直接注册,一来可以省去输入密码的环节,二来可以解决用户忘记账号的情况。我觉的在实现过程中出现了一些状况,主要是用户名和手机两个字段的冲突问题。应该一开始就区分注册的来源与登录的来源,比如通过验证码的话,必然是通过手机号进行的操作,那么与之对应的唯一标示字段就是mobile,如果是通过密码进行的操作,与之对应的唯一标示就是用户名。执行这一策略也许会在操作流程上引入一些环节,但是可以避免在系统中引入bug的可能。第二是新增游戏盒子的功能,盒子的定制功能的引入,如果要贯彻下去,应该是要有很大的技术资源投入的,否则不足以支撑比较广泛的定制需求,而基础的定制功能对需求方来说会比较鸡肋。所以现在盒子基本上是只有自己在使用的一个功能。第三是关于SDK后台的问题,随着项目的扩大,功能的增多,后台集成的功能越来越多,对于非技术的使用者来说,不一定了解每一个功能如何使用,对于新进来的管理员来说,需要重复的教。从角色的功能的角度出发,可以按照每个角色的权限范围来做一套系统的使用说明文档。
H5SDK基于SDK已有的功能来进行。由于一开始对目标与需求的不明确导致后续的一系列问题。第一是h5的回调通知与原有游戏App的回调通知格式不一致,导致在与游戏厂商对接的过程中需要做两份不同的文档,给对接的过程增加困扰。第二是一开始没有考虑到h5游戏同时会有App包的情况,在分发的环节出现两个入口的问题,一个apk下载入口,一个web在线入口,并且在对接的时候游戏方要对接两套文档。而且现在已经累积了很多上线的H5游戏,从根本上来解决这个问题变得比较困难了。
在开发H5SDK的过成功,使用到了前端框架VUE,掌握了基本的使用。VUE适用于前端驱动的项目,需要分离前后端,与App的通讯类似,但是由于浏览器端的开放性,在浏览器端做比较复杂的加密并不现实,需要引入其他的安全保障机制。关于VUE的一些使用心得,有一下几点
- 比较轻量级,有比较全面的中文文档支持,入门比较方便。
- 在项目构架层面没有做出太多规范,如果使用者在这一方面的能力不足,会随着项目规模的扩大变得越来越难维护。
- 建议在一些小的项目中做尝试,累积经验。
在做聚合SDK的开发前期,对这一项目的目标与流程有一个完整深入的了解,结合前期SDK开发过程中的经验,规避了一下可能会踩到的坑。项目开发过程中,始终贯彻的一个理念是解构。解构整个流程分为两大部分,与渠道的对接和与CP的对接。两个过程由两个相互解耦的模块负责:AgentSdk
/PSdk
。AgentSdk
负责平台与渠道的对接过程中的签名、验签、参数转换等功能。PSdk
负责与CP对接过程中的签名、验签、参数转换等功能。开发过程中先按照思路整理出必要的文档,随着项目的推进不断对文档进行修改与完善。最终开发完毕,重复使用文档到内部对接、外部对接的过程中去,是一次比较愉快的编程体验。
由于前期需求中有web聊天的功能,找到了一些开源的框架来完成,期间接触到Angular。Angular与VUE是统一类框架。关于Angular的一下使用心得:
- Angular新版本是基于TypeScript来实现,对开发者更友好。
- Angular框架本身包含了很多模块与组件,功能非常强大。
- Angular框架本身在项目构架层面做了很多的工作,开发过程中参考文档来实现,可以是项目进展更顺利,对于大型的前端项目来说是比较好的选择。
在工作之余了解了一下laravel,并阅读了部分模块的源码,对laravel有了一个比较基础的认识。laravel借鉴了很多其他语言的优秀框架的实现,包括container,provider这些概念,以及依赖注入的实现等等。laravel的编码非常规范,用到的一些设计模式和一些编程技巧,用很大的使用价值。即使不能使用到项目中,也建议有时间去了解一下,是非常好的学习资料。
今后打算
多学多看多动手,敢于尝试,从各个方面积极寻找可以提升工作效率的更好的手段。
个人建议
- 线下小组分享的内容要讨论提取精华后运用到工作中去。
- 可以尝试将前后分离的实践
- API通讯过程中可以采用其他的安全措施,目前RSA的加密方式,对于带参数调试的情况支持不够。
- API版本与文档的管理