追赶着的2019 | 掘金年度征文

637 阅读7分钟

「2020」 其实第一眼看到这个年份的时候,我很吃惊,也很恐惧,因为这标志着我已经来到这个世上快 30 个年头了,毫不夸张说上次有印象中的年份还是 2015 年,现在的你是否还意气风发,毫不畏惧。

2019 年 12 月 11 号是我来马蜂窝 365 天的日子,由衷的说一句,很开心能加入马蜂窝,尤其是搬到公司附近住了以后,忙的时候在公司有组内的朋友一起加班,不忙的时候能愉快的跟组内附近的小伙伴,一起吃火锅,在家做饭,巴适滴很~,但是团队带来的我的技术成长,是我这一年来最宝贵的财富。对而我言,这里有多具有挑战性的工作,业务,也有机会去实践自己的一些想法。2019 年我的工作主要在笔记业务部分和几个平台的小项目:

业务部分:

  1. 笔记视频编辑2. 5 」20 几张设计图,整个视频编辑,模版逻辑产品重构,叫 “2.5” 其实有点欺负我们了。经过了一个多月的加班到深夜,我们由落后 IOS 一周的开发量,到如今超前 IOS 一周的进度,摆脱了趣拍 SDK 的限制,新版本上线后效果流畅度和 bug 也少了很多。也添加了之前我们 Android 视频编辑客户端缺少的,画中画模式,视频的倒播等其他编辑功能。之间还定义了 android 这边特有的视频贴纸生产过程,为了命名方便,还做了一个 jar 包的重命名工具提供给运营小哥和UI使用。

  2. 相册页面重构 」 作为笔记发布的第一步,相册页面的体验以及承载业务逻辑的能力尤为重要,得益于知乎开源项目 Matisee 的灵感,采用 CursorLoader 封装的替换原来的 HashMap 二次遍历方式,并增加预览页面的因此一个流畅度,加载速度,承载业务能力 max 的笔记相册页面诞生了,目前已经承载了笔记,sayhi,足迹,mdd,酒店等业务线。

  3. 视频编辑贴纸,字幕可拖动缩放」改版后的视频贴纸需要用户自定义位置大小,这个功能一直是我们所欠缺的,能够很好的实现这个功能,得益与虫神的精诚合作,使用虫神为笔记图片编辑页面重构后的 StickersLayout ,并拓展了视频贴纸和字幕的相关的 Sticker 子类增加与 SDK 贴纸操作封装,很好的实现了现在的贴纸和字幕的交互并有很好的拓展性。原理是采用矩阵变幻和手势绑定。不要脸点说在缩放拖拽贴纸上表现其实都已经超越了市面上大多数非专业编辑软件(如小红书,知乎,B站)。哈哈~

  4. 地点相册功能 」采用 google S2 算法进行本地收集相册数据,服务端聚合 mdd。数据展示上采用了数据库缓存,自定义 CursorLoader 方式,并采用高效增量更新数据的地点相册服务(由O(n2) → O(2n)),采用分步事务写入的方式有效的保证了数据的可靠性以及展示效率,测试证明,3w条数据均可以在300ms内展示出数据,在500ms内比较完成增量(自己的一加6t 测试),理论上,再多的数据在第一次写入的时候,总时长会增加,但是整体的展示效果不会有所变化。

基础平台:

  1. MFW 资源下载框架 」下载框架开始是为了支持 Hybrid 框架的资源下载,解压,校验,升级作出的一系列约定规范的下载资源步骤过程。此次下载大胆的采用了 Melon 与 kotlin 协程组合高效的进行下载,解压,校验等步骤,现在已经应用于 hybrid 线上 mdd 的资源下载,作为独立的模块包,具有很高的拓展性能,在下一年打算为普通的资源下载提供支持,并且增加断点下载,优先级配置的下载队列。

  2. 网络诊断 」为解决线上用户网络情况的排查上报,打算在设置页面增加网络端内网络诊断功能。功能包含:用户设备,APP 基本信息收集,域名 ping,trace road 跟踪,https 接口诊断(收集具体的错误码),复制,邮件分享功能。

  3. 下线的 Sp 工具 」当时为了收集本地 Sp 记录,自己想要利用 AOP 做一个 Sp 工具,也做了本地已有 sp 目录下文件读取。添加方便外部修改用来测试引导本地标志位控制的逻辑的功能,之前在笔记组建包中有展示,后续功能单一 hook 不全,并且与光神做的工作有所冲突所以就下掉了。不过过程还是很有收获复习了 AOP 和 SharePerences 原理。

回顾 2019 年随着笔记视频业务的迭代,整个过程中对业务的参与和对代码如何承载负载逻辑有了更深的理解。对于平台和项目的技术虽然没有特别突出的贡献,也没有承载什么重点项目,但是对于个人而言还是有很多成长的。希望接下来的一年,能够有更多机会在业务和平台中挑战自己,提高自己的水平。

这一年也算是犯了一些错,有些小的需求,或者有写改版重构,但是由于自己没有仔细研究重构后的代码对原有业务的兼容性导致了一些小问题,终究还是用心不够。希望以后自己能改正,对自己经手的事情更加负责,避免虎头蛇尾。对每件事情能产出一个更优的结果。


渴望力量么?少年!

众所周知,总结完上一年工作后,该到了立 flag 的时候了。面对崭新的一年,对于自己我还是有很多期许:

质疑,优化,提升

新的一年希望自己能学会应用更多的 Android 知识。首先会从自定义视频轨道开始,自定义一个视频轨道,比现在的体验更好的轨道,Android 的博大精深,其实还有很多可以探索,希望自己能做一个都给你下的想的更多一些,不为了需求而实现,是为了需求而提升效率。这也是马蜂窝教会我的,质疑,优化,提升。

做行动上的巨人

算法,设计模式,性能优化高级工程师必备的三大功能。去年我也立下了flag,一年来不能说毫无长进,但是毕竟没有持之以恒的提高。接下来的一年希望自己在工作的同时,能够多思考尝试在合适的使用这些技能来提高自己。

学一门新的语言

我发现对于优秀的人来说,他们都不指会一种语言,也许现在看学一门语言并没那么难。想要利用业务时间重新捡起大学的学的C++,嗯,这可能是个flag。加油!


最后

希望在新的一年,与我相伴十年的那位能够顺利找到工作,能够顺利毕业。然后结婚。也祝大家能够在新的一年,美好幸福相伴。

掘金年度征文 | 2019 与我的技术之路 征文活动正在进行中......