是的,乍看确实令人不好琢磨,因为我们的固有思维太强大了,很难理解认知外的内容,我需要多点文字来解释,见谅。
告诉你,业务逻辑确实消失不见了。
带你参观下我实践的真实 Coding 场景、流程:拿到需求后,不必思考任何业务逻辑。
- 先把需要展示的、用到的数据字段定义出来,无脑往上码就行。
- 然后梳理字段之间的依赖关系。 随机选一个顺眼的字段开始(比如 X),思考这个字段应该依赖哪个别的字段(比如 Y),然后定义转换规则:观察 Y 并转换为 X。然后再梳理 Y 又依赖哪个字段,重复此过程,直至梳理到源头字段(如:后台返回的数据字段)。
- 请求接口,写个 self.input = res,齐活儿,这就写完了。
步骤 2 是核心,特点鲜明。
- 我们只是简单地写了字段之间的转换,业务功能就悄悄融入在这些数据转换中了,业务逻辑是真的丁点儿没接触。非要说明的话,字段间转换应该叫算法,算不得业务逻辑。写转换算法的心智负担与传统放大脑图去思考整个业务逻辑的心智负担相比可降低指数级。
- 回看上面,我们随机选了一个字段 X,在这种写法下,你先写哪个规则,后写哪个规则,都无所谓。不像传统的 1→2→3 必须顺序写下去。所以心智负担继续降低。
- 还有一点很关键。我们的规则是定义在类型上,而不是实例值上。你就能像神一样提前定义整个世界的规则,即使这个世界尚不存在,一旦世界诞生必然遵循规则。所以你提前定义的就是叫规则,无需关心实例值存在不存在。心智负担再次降低。
所以,这种编程方式真的不难写。难点在于,对没有写过的人来说,这是认知外的玩意儿,完全没有概念,想象不出来要怎么写。因为他们本能地用传统思维在思考,难以融入。突破思维桎梏才是靶心,得突破认知边界,但每个人又都把自己关在屋子里不肯出来,所以难以命中靶心。若你有好办法,感谢赐教。
用一个比喻来结尾吧,传统编程方式是搭积木,新编程方式是摆多米诺骨牌,每张牌只考虑前一张,并且与摆牌顺序无关。
若你读完了这么多,非常感谢!若你有兴趣,欢迎继续交流探讨,祝好。