计算机软件的本质是人类教计算机干活的一系列指令,如果这些指令错了计算机肯定干不对,有时候甚至会干出可怕的后果(比如波音 737 MAX 型客机连续出现空难的根源就是其自动控制系统中存在软件缺陷)。软件系统的复杂度上去之后,就会带来一系列问题,核心就是软件开发者不能简单清晰的知道 软件代码到底是如何在计算机中执行的,那么也就更加无法保证软件在各种情况下的正确性了。
这样整件事被分解成了 add、sub、print 和 main 四个函数,每个函数都只做很简单的、易于验证的事情,每个函数可以被不同的人编写和测试,复杂度被分解和降低了;而这些函数可以用严格定义的程序流程(条件分支、循环等)组合起来,形成更大的函数,如此我们就可以从非常简单的积木出发,最终构建起宏伟的城堡。
[x] “模块化” 的优势到底在哪里?
这种 “分而治之” 的思想,有个专门的术语来表达,叫做 “责任分离(separation of concern, SoC)”,这里面除了 “分”,还隐含着 “黑盒” 的理念,也就是每个函数搞定自己的任务,调用你的函数不用管你怎么做到的,也不用担心你会做错,各司其职,互不干预,只要输入输出的格式不发生变化,整个系统就能正常运作。这也给了每个函数的实现者最大的自由,可以互不影响地不断优化迭代(比如修正错误、提升性能等)。
1. 了解 对象和类 概念的基本背景
2. 了解 软件开发的根本困难
3. 了解 软件危机
4. 了解 模块化
5. 了解 软件设计范型
Logging
2020-02-21 23:25:33 initialize