Weekly Summary(20210829)

知道 ≠ 知识

只有经过实践,才能将知道转换为知识。

领域驱动设计

工作十年的开发和工作 3 年的开发,竞争力体现在哪里?我觉得应该是处理复杂项目的能力方面,特别是通过程序设计驱动复杂项目。因为我的理解,架构这个东西,就是随着项目复杂度产生的。

之前我们处理需求,都是着眼于点,看不到面。

比如人员关系图,就是来什么需求做什么需求,没有一个抽象和全局观,导致现在写成了屎一样。。。

如果我们对业务进行一个抽象,那么就可以将模块和核心功能拆分开:

  • 核心功能是数据处理、布局、数据流动(操控栏和渲染部分的数据交互)
  • 页面其他操控栏属于交互辅助功能,可以独立开

另外我们用到了 vis.js,但是我们应该将其进行一个封装,不要直接操控它,这样的好处是便于后面更换绘图引擎。

一直保持营业的状态

参考香港艺人的状态:一直勤奋,一直保持警醒,一直保持营业的状态。

大盘改版 3.0 的反思

为什么搞成这样,延期这么久,问题还没解决?

需求确认的流程不规范

这些可视化组件的需求,是否符合标准化规范?开发在确认需求的时候没有做这个验证。

人员处理问题的方式不对,没有分好轻重缓急

到了最后一天,也每个规划,反正就是问题很多。

反馈可视化问题的方式不对,没有提供一个可重现的最简化环境

必须等到发布才能在外网手机上验证,这样明显不合理。我们只需要构建问题产生的环境即可。

技术问题

好文章

大项目解耦(解耦的关键在于协议和通信):

https://www.ruanyifeng.com/blog/2021/05/scaling-problem.html

其实大家看前后端,就可以理解为通过 http 协议进行解耦的;如果我们的每个功能模块可以将协议和通信处理得很好,就完全可以做到独立开发、互不影响;这样即使新人加入,也能快速上手,不需要全局了解;后续的重构也会更加可控

你的代码应该是写给下一个开发者的情书。