View on GitHub

复用不复用那是产品经理的工作

代码防腐实用技术

复用不复用那是产品经理的工作

Consistency 和 Reuse 的出发点是不同的。 我对这两个词的感觉是,Reuse 是从所有代码中找重复,然后努力抽取出可复用的东西。 Consistent 则是我先定义了一个标准,比如说UI规范,然后强制要应用到所有的页面上。如果没有应用上,那就得说明理由,引入的不一致是有意为之,还是偶然的设计失误。 Consistent 隐含了先有共识(Consensus)的含义,就是产品和开发团队达成了什么是必须一致必须复用的共识。 而 Reuse 总有开发团队一厢情愿的意味在里面,依赖了每个人做新需求的时候去主动地消除重复。

以“省事”为理由,强行“复用”一套实现是长久不了的,这个出发点很容易被挑战。 只要不影响到用户可见的一致性,不影响到 Autonomy,不影响到 Feedback,实现写两遍又如何? 不要指望通过 reuse 一堆相乘关系的 git 仓库来减少代码量,这不值得。产品经理设计出来的需求如果是没有规律性的,别强行复用。能用相加的关系组合好一堆 git 仓库就不错了。没有啥好 trade off 的,就是 autonomy 为先。打工人都希望做一些有leverage的事情,都希望多做一些可复用,可被渊源流传的事情,然而人要接受现实。我们业务开发和装修工人没啥区别,按面积收费的,涂一面墙,也就是影响了这一面墙。