我的 2018

Posted by Matt Reach on December 29, 2018

2018 年回顾

工作

今天是 2018 年的最后一个班了,原本计划 mac 影音 2.16 版发布的,因为公司有规定,所以只能先封板,下周再上线。

哦,是的,我现在是一名 macOS 开发者了,今年 11 月初公司人员优化后转行过来的,边开发边学习到现在基本算是 2 个月了。经过实战,我对于 macOS 开发有了一定的了解,不过还没有 iOS 开发那么熟练,毕竟桌面应用开发跟移动端是有些区别的。

再往前说的话,我学习了两个前端框架:Angular 和 React,分别写了两个小应用,部署在公司内网,部署时简单学习了 Nginx 配置。

然后就是在做小游戏开发了,去年年底一直做到今年 10 月份左右,很遗憾没有像样的产品拿出来,对于公司而言,又投入没回报;对于本人而言,无非是对微信小游戏开发 API 有些了解,cocos2d 小游戏引擎的简单使用,还有 JavaScript 语言的深入学习,以及前端开发环境搭建,前端代码调试等方面的学习罢了。

除此之外,还创建了技术 WIKI 站点,方便使用 Markdown 编写 WIKI。还有很多个Jenkins项目,实现了自动化打包发布,节省了很多时间,避免了很多人为错误。

生活

以上是有关工作的,而生活上快乐的事情有以下:

  • 4 月份我女儿如期而至,给家庭带来了很多欢乐;
  • 7 月份买到了二手房,紧接着开始简单装修买家具家电,那阵子挺忙的;
  • 10 月份又回了趟老家,回来后搬进了新家,从此结束了北漂生活;

也有让人悲伤的事情:

  • 爷爷在 6 月份老去,享年 84 岁…

2019 年规划

影音项目最近这两个版本的迭代,主要是我发起的,除了产品简单更新外,主要做了下面四件事情:

  • 源码管理方式从 SVN 迁移到 Git: 没有用过 Git 的时候,可以忍受 SVN,可是当我在使用了 3 年 Git 之后,再回去用 SVN 却发现没有暂存处,真的很不适应,这设计简直反人类!SVN 用着实在是太蹩脚了,用了 2 天之后决定迁移,迁移完成后,之前的记录还在!

  • Jenkins 自动化打包: 今年跟 Jenkins 打了很多交道,因此我迫不及待地要去编写调试脚本,为影音项目配置 Jenkins 自动化打包;现在可以一键打出 dmg 渠道安装包(发布到测试服务器->上传符号文件->发送邮件)也支持打用于上传到 AppStore 的 pkg 包,并备份符号文件。之前版本有的没有上传符号文件,导致线上崩溃如法符号化!因此我用脚本实现了备份功能!

  • 内存管理使用 ARC: 原本项目是 MRC 的,这是遗留问题了!忍了一期之后,第二期第一件事就是转换成 ARC !懒惰的开发者可不能把时间浪费在写 release 上!况且 weak 特性是那么的友好!

  • 使用 CocoaPods: 为了方便使用三方库,集成了 CocoaPods;本人写的网络框架和 JSON 转 Model 框架也都因此适配了 macOS 平台,并且已经集成了进来,后续需要三方库,集成就简单并且快速了!

经过这两个版本的迭代,大体上已经符合我的口味了,剩下的就需要稳着来了,下面五件事是我想做的:

  • API 需要配合着 SCNetworkKit 重构: 因为现在的网路请求封装的不是很友好,网络着陆使用的是代理模式,并且没有很好的处理解析,最大的问题是一个类里发多个请求如何区分是哪个请求着陆了!

  • 集成开源播放器: 比如使用 VLC,MPV 播放器替代系统播放器;但还没找到一个说服领导的理由,但无论如何也是要学习的,哪怕是自己做个项目玩玩也行!

  • 优化 HttpServer: 项目里自己起了一个 HttpServer 来给系统播放器提供数据,做本地缓存;现在对这部分逻辑不是很熟悉,存在的问题也不是很明确,等熟悉后,发现了问题,做个优化!

  • 使用 Swift 混编: 现在项目使用的是 Objective-C 语言,我觉得是时候尝试下 Swift 语言了,明天开发新功能时就开始边学边用吧,之前说要学下的,由于转行了也就没去学。

  • 大改版: 改头换面,版本以 3.0 为开始;但是产品那边还没有规划好,毕竟时间+成本能换来多少收益呢?!如果不大改版,那我就一直 2.x 发版吧!

这几个 Flag 都不大,只要我明年一直在做 macOS 开发,我想这些都不是问题,应该是水到渠成的事情!