个人介绍
iOS 程序员一枚,从业期间,涉及过 ReactNative 跨平台开发和 Android 开发,一直推崇不做重复无意义的事情,工作中喜欢用脚本来帮助自己完成重复的事情,喜欢探究原理,不光要做到知其然还要做到知其所以然。目前在研究 iOS 端架构, APP 内日志收集系统协助测试更好的定位 BUG, 如何高效率的解决 BUG。
工作经历
2019-10-24 -2020-06-10苏州比可科技有限公司iOS开发工程师
任务职责:负责技术选型,团队沟通,任务分配,攻克技术难点,高质量完成产品提出的需求。从 2020 年 1 月开始保持两周发一版的迭代速度。 - 完成产品的核心功能:音视频直播 - 使用 Socket 技术实现直播间礼物,直播间广播,直播间红包,直播间 PK等低延时的同步策略。维护用户心跳,确保用户可以正常使用。 - 使用多线程技术维护 Socket 以及动态圈的图片、小视频上传。 - 利用 wechat 开源的 mars 和 CocoaLumberjack 搭建日志监控系统,线上监测直播卡顿 - 提出并制定礼物动态化配置方案,可以让 APP 做到无需升级便能获得符合当前时间的特色礼物。 - 利用 Runtime 监控并防护 APP Crash,尽量保证线上不出现Crash,同时还要将 Crash防护日志定时回传给后台服务器。 - 页面路由跳转,统一页面跳转入口,减少因需求而带来的代码改动 - 利用Clang,规范团队代码风格 - 持续化集成,利用Jenkins + fastlane,将重复的劳动交给机器,减少错误发生的概率
2018-07-28 -2019-10-10苏州梅氏健康管理股份有限公司iOS 开发工程师
独立负责憨妈妈 C端 APP 开发 该项目包含了资讯,商城,知识问答等模块。 - 架构方面从最基本的 MVC 到后期慢慢过渡到 MVVM - 采用了离散型的网络设计方案对 AFN 进行二次封装,并且定义了一个协议用于网络层交付数据时的处理,通过实现这个协议,你可以选择交付网络响应体中原封不动的数据,你也可以选择交付某个 View 需要的数据,你甚至可以选择交付一个 View 对象,这样就可以做到同一个数据源,你可以适配多种展现方式。并且编写脚本搭配离散型网络框架使用,因为该离散型网络框架是一个 Manager 对应一个请求,所以每一个接口对应一个 Manager,通过脚本加template模板,传入接口名,类名等相关参数即可自动创建一个 Manager 提高工作效率 - 使用 ReactiveCocoa 代替通知,代理等使代码高内聚 - 利用 Runtime 来 Hook NavigationController,AOP统一处理拦截侧滑手势和返回点击事件,并利用代理的特性,来达到需要拦截的 ViewController 只需实现对应的代理,进而实现产品在某些页面当点击返回或者侧滑返回
2016-11-04 -2018-07-13上海博为峰软件技术股份有限公司iOS中级开发工程师
从 0 开始构建了整个项目,负责从开发到上线各个环节
教育经历
2013-09-01 - 2016-06-24无锡科技职业学院计算机科学与技术大专
蓝桥杯编程大赛二等奖