David Wheeler: Any problem in computer science can be solved by another layer of indirection.
越来越发现这个非常有道理。为什么?
我自己现实的理解是:
- 一开始写的代码是解决特定问题的,所以只是针对特定情况的
- 慢慢这个特定情况种类越快越多了,如果改原有代码就越改越复杂,改不动了
- 为了把问题缩小,那就把最下层 (一开始的解决特定问题代码) 做一些抽象,暴露出接口定义让上层适配,上层适配就是把不同种类的特定问题适配到下层接口,这样就相当于加了一层
- 步骤 3 的好处是什么? 底层代码改动少,上层适配,只有适配逻辑,这样就起到了代码隔离,减少相互影响,如果适配这一层,由出现步骤 2 提到的问题,那么就继续步骤 3,这样就又多了一层,所以一层一层就解决了一个一个问题
- 现实和这个逻辑还是很像的,一开始代码写的比较死,越改越改不动,那就把参数,配置提出,可以更灵活的配置
一点小感悟,不过确实有道理,