在读代码整洁之道的时候,看到了一个非常牛逼的观点。用我的理解诠释一下。
横向扩展: 加一个类似的需求,比如登录功能需要加新增一种登录方式
纵向扩展: 对现在已有的功能,进行延伸,加固,比如 [所有] 登录功能都加一个验证码,都做一下限流。。(没想到更合适的需求)
这里然我震惊的一个事实是,过程式也是有好处的,这也是为什么过程式很容易被写出来,一个不精心设计的代码,在扩展总是用过程式的方式去演进。等到之后需要横向扩展的时候就凉凉了,需要在所有的地方都进行修改。而面向对象的编程在面向横向扩展的需求的时候,非常开心,因为每次横向扩展都只需要按模子去把方法实现了就可以了。但是横向扩展需要重构,需要设计,否则编码起来就像是在重复搬砖。通用性会很低。很容易写散
在描述一下代码的两种状态。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.