2018需要学习的事情

2017回顾

理解业务 -> 技术的持续投入

        2017自己对业务和技术的理解更多了,做夸克的一年多的时间里,里面有太多值得回忆。对技术的持续追求,对产品的理解,从业务更好的理解技术,以及从技术功能点对业务的反向思考,给夸克带来许多实用的功能。需要做到用户喜欢用这个功能,自己需要深入的体验挖掘用户的潜在需求,然后在技术上能不能够实现,如果能实现,方案是怎样的,会存在什么问题,以及问题的解决方案等。

业务 -> 抽离SDK

        在夸克的这一年来,经过我手头的项目已经很多。从早期对国内UC的代码耦合杂乱就提出要在夸克里面避免糟糕的代码,夸克需要模块解耦,功能内敛、使用单一简单、接口清晰明确。

        夸克的加解密SDK、升级SDK、二维码SDK、QuarkDownloader SDK、分享SDK、翻译SDK、OCR SDK。这些SDK我在夸克中完成的,都有很明显的特性,功能解耦、接口清晰、使用简单。在业务功能的抽象分解上自己做到了。目前多个SDK应用在其他产品上面。

应用架构

         夸克浏览器在架构方面并没有完全参照国内UC,反而是知道国内UC架构的不足作出了优化(我对比了多个产品先的架构,都是照搬国内UC的架构),夸克的老大还是很有思想的,我们做出了MVC + feature MVP功能架构,避免了Controller承载业务造成业务重度耦合的情况,目前UC系的产品都是单Activity模式,通过自己的WindowManager来管理窗口,然后建立自己的一套MsgDispather,通过id映射Controller的机制来驱动feature来实现对应的业务,当然这种也存在一些问题,不过有点大于缺点吧!

大致梳理下架构图

总结

        在夸克的一年是辛苦的一年也是收获的一年,收获了自己对业务和技术的理解、收获了自己对应用架构、SDK、底层技术实现和优化的经验。同时自己具备了独当一面的能力,能够有序的拆解业务,推进业务的进展,感谢UC的老大给予的信任。

2018技术学习

        给自己定几个目标吧

  1. 研究JVM的内存管理机制
  2. 学习研究我们常用的集合类的实现原理,比如HashMap、ArrayList等
  3. 学习研究跨进程通信的详细细节,AIDL的实现原理
  4. 学习直播相关的知识(RTMP协议格式,建立连接的过程、传输过程、解码过程等),以前自己就是做过这个的,加深理解吧