2016 looking back

By | January 25, 2017

纠结的一年,也充满了机遇和转机 – 向着未知。主流的口号中增加了智能一词,实践落实还有比较长的路要走。

重头戏依然在浏览器端,辅以少量的服务器端代码和服务框架杂事。

 

重构

这是一段用前端技术堆积起来的巨石应用的一部分。巨石应用是部门核心产品,架构和实现完全基于内部类库实现,这无可厚非,一是安全问题,二是版权事宜。

巨石应用作为一个生态,提供给三方开发者扩展巨石应用本身的应用程序接口。这个扩展性平台便是这次要重构的部分。

代码里存在的问题

  • 独立用户场景的代码交织在一条逻辑主线上,充满了用来区分不同用户场景的判断代码
  • 没有任何自动化测试、单元测试,一个微小的改动都有可能造成 regression 影响核心用户场景
  • 使用了大量的弱类型,简单的错误也不能通过编译检查到
  • 单个文件太大,缺少模块化
  • 服务调用未优化,造成资源浪费

所有的重构细节都历历在目,每个新重构代码引来的 regression 都耐心寻味,挑战着每个参与者包括我的耐心

每一步走的也很不易

  • 重构计划的论证及争议
  • 数据驱动的上线方案
  • 如何保证重构后的代码质量
  • 如何评估重构这件事情是否成功(有商业影响力)

重构的结果很积极,由衷地这样想。

  • 单元测试覆盖率极高
  • 不同用户场景代码完全分裂开,后续其他组在加新场景的时候特别省心
  • 性能也有显著提升
  • 自动化测试覆盖率极高

造个前端的轮子 – RichEditor

contenteditable 让我体验了许久没有接触的浏览器兼容问题。投降了

开源公式库

已经单独说过用来展示数学公式的开源库了

关于服务器端

跟着一本国内高性能架构书了解了一些常见互联网架构的演变,实际上有好多感触只是不知道该如何讲。总之,不同大型架构有自己独有的用户场景难题要解决,没有一成不变的最好的架构,要选最适合业务场景的架构。

关于大数据

在努力呢….

Leave a Reply

Your email address will not be published. Required fields are marked *