随笔抽象

道生一,一生二,二生三,三生万物 —— 《道德经》

赫拉里的“人类简史” 里有一段关于人类从原始人进化到部落的记录很有意思,动物之间也会有传递信息,但是人类发展出来复杂的体系,就是语言的一个新维度:抽象思维。
我理解的抽象是从众多的表象里能抽象出一个能够描述这些表象的框架,理论,名词等。
wikipedia里对抽象的定义:

  • 抽象: 就是抽取事物一些本质的东西,剔除次要的表面东西。
  • 计算机科学里的抽象化: 指高级的模型,和低级的实体相对。

最近又翻开了CSAPP(深入理解计算机系统)…

以前就一直对开篇讲的抽象印象很深刻,

  • 文件是对I/O的抽象
    首先要搞清楚文件是什么,然后再去看明白I/O几种模式
    文件就是字节序列,每个I/O设备都可以视为文件,文件这个概念被抽象出来,可以通过文件来处理各式各样的I/O设备.
  • 进程是对一个正在运行着的程序的抽象
  • 指令集结构对实际处理器硬件的抽象
  • 虚拟存储器是对程序存储器的抽象
  • 虚拟机是对整个计算机的抽象

上述讲的抽象都是很底层的抽象,在业务层则更加需要抽象能力,面向对象语言也更好的提供了实现抽象的能力。并且抽象也是面向对象的四个要素之一。
从人类思维的“抽象”进化摆脱了原始人,计算机系统成功的抽象概念推出,其实道的本质的都很相似,能从本质上发掘问题,从大自然,历史,系统中借鉴思想思考业务系统的问题也是一种能力和素养。