1vonzhang
2022-11-28 16:35:49 +08:00
我读书的时候也思考过这个问题,那时候太 naive ,觉得水平够高就可以不写屎山了。现在工作了几年,有了一些新的心得:
0. 核心是要认识到,你以为的需求,你设想的发展方向,你预先做的架构和设计,都会不可避免的朝着你意想不到的方向发展。特别是会发展好多年的软件。
1. 高内聚,低耦合是避免屎山的真理。永远把功能最小模块化,并设计出好的 API ,是面对改变得心应手的关键。具体怎么分割、怎么设计 API ,是需要一定功底的。
2. 像楼上很多朋友说的,重构不可避免,不要害怕重构,也不要为了重构而重构。过度重构和过度设计是一样的,都是在把路提前铺好,导致以后修路只能缝缝补补。我做的最多的重构,是在进行稍微大一点的改动之前,把一个部分拆成好几个模块,然后对每个小部分独立的进行修改。
3. 模块化的东西不要考虑 context 。某一个部分可能只是为了某一个应用场景写的,但是设计的时候要把模块独立考虑,而不是从外部看这个模块会被怎么用到。这样一来可以保证低耦合,二来可以在之后有不同使用场景时,不需要各种补丁代码。