一年又一年——2016

历法这个东西,规定了年与年之间的界限。一年就这样过去了,在这一年中,从相机到物联网;从《图说天下》到《欧洲1453以来的争霸之途》;站到场外,仰望了一下楼市的风云变幻;回到家中,了解了一些土地的收成和玉米的行情;随行就市的跟着声讨一下支付鸨的高端圈子;也特立独行的搞了台Pixel、体验了一把谷歌的真亲儿子。翻了一眼年初时对上一年风轻云淡的总结,才想起原来自己定的目标是“习惯”,总体看来效果还好,不过这样慢性子似的成长,似乎已经被变化莫测的世界甩在了后面。

工作

今年的工作重心从以直接对用户为中心的相机类工具软件转移到了物联网方案客户端软件上。这两者之间的技术重点还是有差异的,直接的结果就是在android技术上的积累更加全面,至于细节方面道理上应该同样有所增益,但过于碎片化的知识在缺乏记录的前提下会遗忘的比较快,并且技术的发展也会使得一些曾经的知识变的不适用。这里在大方向上列一些今年的重点。

公版与打包平台

大半年都在折腾这个东西。客户的需求多种多样,公版化的、定制化的,对于我们的期待而言,是尽量的高效的实现这些需求,将工作最大程度的自动化,解放技术人员的开发时间。从最初的抽象可配置项、代码埋下各项配置支持、到参与整个打包平台的方案确定和android部分的实现。这期间的收获主要是加深了对android本身一些可配置attr、style等的理解;粗浅学了一些的python语法,大概能够实现一套解析服务端发来的配置消息到打好apk的流程脚本;另外对apk的结构、appt的打包流程、gradle的打包思路有了一点浅显的认识。

坦率的说,目前卡在android打包部分的主要问题有:

  1. 配置参数不合法导致的打包失败;
  2. 冗余参数与部分参数效果同IOS的实现可能存在不统一问题;
  3. 打包速度过慢;

第一个问题可以在发现问题的过程中,优化前台的参数配置检查来解决;第二个问题需要拿出时间,三端厘清楚最新的需求、解决一些历史问题之后也可以轻松的搞定;第三个问题是个难点,虽然有一些腹稿,但也需要投入时间,是今年需要攻克的主要问题。

另外,一切能提高工作效率的方法都是值得尝试的。感谢高小僧搭建的JINKENS平台,完成Android部分的环境部署后,对日常提测预发/线上的打包的效率的提高是有帮助的;并且还以半吊子python的水平写了一些诸如重新签名、重命名UI提供的图片文件之类的脚本,感觉颇有意思。

BLE

低功耗蓝牙配网方面的项目八月份就开始了,一直不愠不火的样子,到目前为止单品的蓝牙所有功能都已经稳定调通,但是没有合入到主分支中去。跟wifi完全不同的连接方式,算是完全从头开始的项目。这里面涉及到的东西有以下一些:

  1. 由于嵌入式端给客户端以C文件的形式,统一提供了拆包组包协议实现、和一些加密算法,所以需要在C层对这些代码二次封装,捡了一下JNI相关的东西;
  2. 学习和理解android系统上对BLE的支持与API方面的封装,以及BLE本身相关各种名词的含义;
  3. 选取靠谱的BLE开源库做底层支持,由于频繁的更换几次底层支持,反而锻炼了一些上层代码对接口的封装能力,也算是苦中作乐了。

蓝牙设备大概作为一个品类在新的一年中会被赋予更大的期许。目前Android BLE方面最大的问题是数据传输速率的过慢,这一问题在OTA上表现尤其明显;另外就是兼容性和稳定性问题,这类问题在大规模测试的过程中肯定会出现,也是日后这方面要应对的难题。好在在BLE方面不会再是孤军奋战了。

摄像头项目

摄像头这个品类的项目是年底并行状态下处理比较多的一个项目。它的奇葩之处在于,设备与底层通信是合作伙伴提供的,而最后是我们与国外的客户来交付。里面的关系大致如下:

  1. 合作伙伴要与我们的服务端对接一些功能;
  2. 我们的客户端需要对接合作伙伴提供的SDK来操作他们的设备;
  3. 我们向老外交付整个摄像头品类的设备和APP;

实际上就是三方多端的沟通和交流,再加上横亘于中间的产品同学。到如今还没有完美的交付过去,目前遇到的最大问题是我们无法完全模拟客户的使用环境,换句话说,我们的测试体系没有覆盖到客户的使用环境。

在这个项目中,客户端的角色似乎只是写一个界面交互与逻辑和对接服务端与合作伙伴提供的接口。但客户端作为最终问题的爆发点,是承载着更多的责任的,需要更多的时间成本去对问题追根溯源,并且当验收者、也就是客户的物理位置是地球的另一边时,整个验证与交付的时间就会成倍增长。对于android而言,一个业务以外的问题就是,随着第三方库特别是摄像头这种需要很大底层支持的库的增加,安装包的体积在膨胀,而其他客户需要的一些公版包实际上并不需要这些功能。那么按照业务需要、选择不同功能module来打包的需求恐怕马上就要来了。

对于第三方支持的设备品类,这应该不会是最后一个。积累经验是重要的,这里总结一些,以做参照:

  1. 假设同品类的页面能够相同或相似,那么交互与底层通信的解藕是必要的;
  2. 特殊的品类单立model,与主工程的轻度耦合,才能满足后续的轻量化打包的需求,理论上也会提高打包的速度;
  3. 目前大方向的业务需求是跟着客户来的,客户大都需求比较紧急,我们没有把功夫下到前面,就会很吃亏。一旦如摄像头这样的第三方支持的项目,沟通成本的增加更加降低了我们的响应速度;
  4. 测试环境需要不断丰富,并且做好备忘,形成我们的优势。

关于面试

除了技术业务方面,今年还接了一些面试的活。这是一个从零开始的东西,从毫无头绪到渐有起色,总结了一套自己的方法论。是否客观有效,还得通过时间来检验。

总体来说

总体来说,技术上这一年也不是完全没有进步。但明显的是,在多并发的业务所累之下,没能挤出多余的精力去关注一些新的东西。直接表现就是近一年的技术博不多,没有什么出彩之处;技术经典书籍入了不少,但都直接成为书债,装饰了一下书架而已;平时对前沿的博文、动态偶有关注,但多流于表面,只是知道有个这事儿,业务涉及不到也就仅限于此。业务驱动的技术进步总是被动的,持续迟钝的技术嗅觉,容易僵化,这不是个好现象。在新年中需要注意。

生活

工作之外,就是生活,其实也没有什么主次之分。今年总体上比上一年丰富一些,主要是一些思考方面的深入和好习惯的养成。排开大环境的干扰,对个人而言,还算满意。

思考

今年的阅读质量自觉提高很大,当然不足的是没有系统的看技术类的书籍,多是文史社科类的东西,但层次较以前相比要深入不少。由于很早的时候就有兴趣,打过一些浅薄的基础,还勉强能看得懂,随后的思考更能够提高透过现象看本质的能力。此外,还挑了一些高质量的美剧、日漫、日剧和纪录片,如毒枭、夏目友人帐、legel high 和贝尔的荒野求生,看看国外的优秀文艺作品涨涨见识、顺便多一些谈资。

托某二零大会被强制搬家、这一年房价翻跟头的福,视线终于转到了形势政策跟国计民生上面了,当然别人管不了,主要是对自己未来的影响的思考会多一些。历史、时政、权利的过往现在与将来,都有对应的书籍、案例和身边的事儿做参考,虽然我坚信能看到的都是盲人摸象般的局部现象,但终究还是有了一些认知和想法。总比过去摸不着头脑的时而五毛时而美分的强。

曾对一位朋友说过一些感受或者说是猜想。说二十几岁正是人最迷茫的时候,因为你或许马上就要成为一个家庭的顶梁柱,从而担负起比以往千百倍的责任。但却常常觉得别人的看法似乎怎么说都对,又或许觉得怎么说都不对,这大概就是自己的三观没有建立好的缘故。三观是什么呢?是一个人对自己生存下去所为何事的认知,是一个人对这个世界的看法,是一个人对一个事物价值取向的衡量标准。并且在三观之后,还要有一套逻辑体系来支撑,这样才不至于人云亦云、不分是非。我对这位朋友说,三十而立,大概就是立三观吧。虽然胡说八道牵强附会居多,但常思考总归不能算是件坏事。

习惯

去年初给自己定义的关键词是“习惯”。一年来感觉还好,喜欢上了走路,会陪着远来的朋友去逛逛西溪;会走到沈塘桥找那幢绘满墙画的楼;会走到曲院风荷去看红叶;会走到青芝坞去看生活。带上一壶水、一包纸和一个口罩,眼见处都算风景,心思也宽了许多。翻了翻博客,还好,月更的底线还是牢牢守住了,虽然不怎么出彩,但好在记下了一些想法与感受,算是略得心安。最后的两个月,应一位朋友的推荐,养成了读读英语的习惯;又因为一些约定,阅读也算是固化成习惯了,也是受益匪浅。不见得非要有什么用,积累一下总比浪费要强。每周跟家里视频的习惯也完善的保持下来,跟家人的闲聊哪怕只是听母亲碎碎念的叨咕些东家长西家短,也能安下自己焦躁的内心。

期许

又到了立军令状的时候了。子曰,当你无法左右大势的时候,你只能提高自己,等待时机。既然总结把工作和生活分开,那么这里也分开一下吧。

工作上要保住饭碗,

  1. 今年虽然没有读技术书,但是方向大抵还是靠谱的。还好这部分书债,做好笔记与必要的DEMO是必须的;
  2. 对于新技术与观念的关注,这一点很难去量化。倒不如对一些靠谱的开源工程做一些引入和分析,形式上就是提高技术博的数量和质量;
  3. 年底再看一下自己的知识系统导图,对比一下有没有长进;

生活上要变得有趣,

  1. 守好已有的好习惯,开拓新的好习惯,不强求但至少不要退步;
  2. 尽量让自己变得有趣;
  3. 在水一方,所谓伊人。

嗯,就这样。

感谢您赏个荷包蛋~