Weekly Summary(20210829)
知道 ≠ 知识
只有经过实践,才能将知道转换为知识。
领域驱动设计
工作十年的开发和工作 3 年的开发,竞争力体现在哪里?我觉得应该是处理复杂项目的能力方面,特别是通过程序设计驱动复杂项目。因为我的理解,架构这个东西,就是随着项目复杂度产生的。
之前我们处理需求,都是着眼于点,看不到面。
比如人员关系图,就是来什么需求做什么需求,没有一个抽象和全局观,导致现在写成了屎一样。。。
如果我们对业务进行一个抽象,那么就可以将模块和核心功能拆分开:
- 核心功能是数据处理、布局、数据流动(操控栏和渲染部分的数据交互)
- 页面其他操控栏属于交互辅助功能,可以独立开
另外我们用到了 vis.js,但是我们应该将其进行一个封装,不要直接操控它,这样的好处是便于后面更换绘图引擎。
一直保持营业的状态
参考香港艺人的状态:一直勤奋,一直保持警醒,一直保持营业的状态。
大盘改版 3.0 的反思
为什么搞成这样,延期这么久,问题还没解决?
需求确认的流程不规范
这些可视化组件的需求,是否符合标准化规范?开发在确认需求的时候没有做这个验证。
人员处理问题的方式不对,没有分好轻重缓急
到了最后一天,也每个规划,反正就是问题很多。
反馈可视化问题的方式不对,没有提供一个可重现的最简化环境
必须等到发布才能在外网手机上验证,这样明显不合理。我们只需要构建问题产生的环境即可。
技术问题
好文章
大项目解耦(解耦的关键在于协议和通信):
https://www.ruanyifeng.com/blog/2021/05/scaling-problem.html
其实大家看前后端,就可以理解为通过 http 协议进行解耦的;如果我们的每个功能模块可以将协议和通信处理得很好,就完全可以做到独立开发、互不影响;这样即使新人加入,也能快速上手,不需要全局了解;后续的重构也会更加可控
你的代码应该是写给下一个开发者的情书。