@
xloger #92 再补充一下。似乎很多人有误解,以为重构的目的是“让代码量更少”。并不是如此,重构的根本目的是让规则更清晰,顺带它还有能让代码量更少的效果(减少冗余)。
代码本质上来说,是把现实世界的逻辑(需求)转换成机器能理解的语言,那么重要的是程序员能理解现实世界的需求,把其梳理成清晰的规则,再用代码实现这套规则。
拿贴中的代码为例,产品当时怎么说的?莫非是几十条数据挨个说一遍?他估计说的也是把这个数据导入导出 Excel ,这里 XX 如果没有那怎么怎么样,那里 YY 要这样那样。
如果代码里能很清晰地表现出这个规则,那不管它用的是 if else 还是设计模式,它都是好代码。
但是,这类一长串的 if else 代码统一的问题是,它并没有体现出这套代码的运作规则,这套规则只存在于编写者的脑海里。它只是一串 人脑分析完规则后编译出的 机器能执行的代码,而他人要看这串代码需要一行行理解,反过来归纳规则。
就像那些“AI 会不会取代程序员”之类的讨论中,大家都知道代码本身不麻烦(大部分时候),麻烦的是对现实中这套复杂机制的理解和抽象。而当你真的自己脑海里抽象好了整个规则的时候,那写代码起来也是顺其自然地不愿这样挨个 if else ,它反而是烦心的。
至于什么职场的角度,我不想讨论。