May 2025
Intermediate to advanced
124 pages
1h 7m
Chinese
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
你读了代码,发现要改变一个行为,就必须修改代码中分散的几个地方,于是你变得脾气暴躁。你该怎么办?
重新排列代码顺序,使需要更改的元素相邻。内聚顺序适用于文件中的例程:如果两个例程是耦合的,则将它们放在旁边。它也适用于目录中的文件:如果两个文件是耦合的,就把它们放在同一个目录中。它甚至还适用于不同的版本库:在修改耦合代码之前,将它们放在同一个版本库中。
为什么不直接消除耦合?如果你知道怎么做,那就 Go 吧。这是最好的整理,假设:
成本(脱钩) + 成本(变化) < 成本(耦合) + 成本(变化)
但由于种种原因,这可能并不可行:
解耦可能是一种智力挑战(你不知道如何去做)。
脱钩可能会耗费大量的时间和金钱(你可以做到,但现在花不起这个时间)。
脱钩可能是一种关系拉伸(团队目前已经承受了它所能承受的最大变化)。
你不会被瑞士奶酪式的改变所束缚。Tidy 可以增加内聚力,使行为变化变得更容易。有时,内聚力稍有提高,就会使阻碍解耦的因素得以释放。有时,更好的内聚性能让你与耦合共存。
Read now
Unlock full access