任何一样东西都会有他的一种思想,在学习任何一种东西之前都需要了解它的思想。大道至简这本书介绍的是软件工程概论的思想。
听到到软件工程,想必大家想到的都是枯燥的编程, 然而这本书却以一种幽默风趣的方式为我们介绍了软件工程。
在第一章中作者引用愚公移山的典故描述了编程的过程,将编程步骤看做与愚公移山的过程相同,将编程讲述的不再是那么的枯燥无味,不再那么的困难。“程序=算法+结构”想必这个大家都是知道的。其实说白了编程作为一种行为,只需要知道其逻辑方法就可以了。所谓的编程实际上是把一件事交给计算机去做,把自己认为该如何去做的事以程序形式描述给计算机,最重要是自己要知道要去做什么,计算机才能理解你。所以,编程的第一要务是先把事情分析清楚,把事情之间的逻辑关系和依赖关系搞清楚,然后再去实现代码,思考和积极工作同等重要。贯穿于整个编程的本质是由一个善于思考的人提出的“程序=算法+结构”。算法是对一个程序的逻辑实现的描述,而结构是实现所依附的数据实体。只要开发人员把程序的算法设计出来,把结构描述出来,剩下的,就是劳力活。
熟悉一门语言之后,并没有会与不会,只有喜欢与不喜欢,任何一门语言都可以在两周之内学成,语言的差别主要表现在适用范围上。
古人在几千年前就已经总结出了编程的基本逻辑顺序,愚公移山这个例子就包含了丰富的编程知识。在以前的的时代中,程序员的习惯就是把3000多行代码写到一个文件中,所以按照这一部分的人的逻辑,一百万行的代码是可以写在一个文件的人,不但如此,编译器、编辑器等等也都必须支持,这才是正统的软件开发。
“程序=数据+算法+方法”,其实即使没有任何“方法”的根本原因,是即使没有任何“方法”的存在,只需要有了“单元”和“模块”的概念,在面向过程的时代,一样可以做出任意大型的程序。在那个时代,“方法”问题并不会像象鼻子一样凸显在每一个程序员的面向过程开发中,程序员并不需要在造就什么,就可以进行愚公式的开发工作。
懒人创造了方法,不错,懒人不想按照之前麻烦的方法去做,就会去想出简单可行的方法来。这里的懒人是为了节约跟多的时间和人力和物力才去选择创造方法。正如书中所说的,李冰是个“懒人”,就是由于他的懒,他选择去观察,在观察中发现用火烧,再用冷水往上泼,利用热胀冷缩的原理,让石块快速裂变。在编程上,一些勤劳的人不会去考虑用什么方法使得程序变得更加简洁,使得程序的运行效更高。对于他们来说,只要有了一个方法,我按照那个方法一股脑的做下去就能完成任务。但是相对勤劳的人,一些比较懒得人,他们不想敲那么多的代码,所以他们思考如何去简化程序,于是乎,他们创造了方法。目的是为了能够能够更加快速的运行程序。
总之,一本书可以讲清楚软件工程的基本内容,让我们对编程对软件工程有了初步的认识。