从具象到抽象
我对这段话的第一反应是:这一段话本身就是一段「抽象的概括」,目的是倡导人们避免使用「抽象的概括」,而是用「实际的语言」、「自己的经历」来进行更有效的交流。就有一种奇特的荒谬感。
不过这个反应也是过于断章取义了,毕竟我只读了这截取的一小段,并不知道原文中有没有补充具体的例子。
抛去这点不谈,其实我是很赞同这个说法的。摘录这一段也是想补充一些具体的例子:
- 软件开发中的概念,往往都很抽象。
- 比如开闭原则(Open-Close Principle)之类的概念。
- 我们在初学之时往往都只学到它的定义,而没有具体的例子,也就很难理解为什么要有这些原则、概念来指导我们的开发。
- 直到参加到具体的项目,有了真实的例子之后,才能体会到背后的道理。
- 一个新的 App 开发流程也是类似的:
- 如果我们过早地,在不熟悉 App 所在的领域(Domain)的时候,去除重复代码,做了抽象,往往抓不住关键的要点,给后期的修改带来很高的代价。
- 而如果我们先不追求抽象,而是 具体问题具体分析 ,在后期确定抽象的精髓之后再进行重构,则要轻松很多。
- 对这个例子感兴趣的可以看看 Don't Repeat Your Domain Knowledge - dsdshome
当然,抽象/具象也有不同的层级,像上述的两个例子读起来就依然比较抽象,希望之后能有更加具体的例子能够分享。