View on GitHub

真的一点提前设计都不需要吗?

代码防腐实用技术

真的一点提前设计都不需要吗?

是的,需求是不可预测的,不要基于臆想的需求提前设计。

不是的,我们需要在开工之前先取得共识。共识应该包含两部分内容:

在实践中,我们经常盲目地采取某种架构风格,比如说微服务架构,但是并不能明确地说出这个做法是“取舍了Autonomy/Consistency/Feedback中的哪些”。既不知道是为了获得什么收益,也不知道背后的代价是什么。 然后一条路走到黑,没有反思的节点,没有项目的复盘。如果我们不承认做 Big Upfront Design 是可能的,那至少要有日常反思的计划。什么症状应该触发大家去调整业务逻辑的拆分?这些症状能不能被量化?能不能排上议程?

我们可以有一些习惯做法,这些 bias 让我们可以快速开始

但这些 bias 不应该是盲从的终点,而是思考和试错的起点。如果选择某个切分的策略,需要想想

我们不需要提前设计,但是要基于共识进行分工。这就是《业务逻辑拆分模式》主旨所在。