最近在笑来老师的box定投践行群里学Python,里面有提到模块化。
模块化是结构化编程的核心理念,其实很简单,就是“化整为零,分而治之”的古老智慧的编程版本。
分解:大型系统 分解成中型,中型分解成小型,小型系统分解成一个个子系统和模块,模块分解成若干代码段,最后这些代码足够简单,对给定输入给出可预期的输出,易于描述,易于实现,易于测试,这位的代码段通称过程( procedure)或者“函数(function)",也有各种其他称谓,本质相同;
组装:通过调用简单函数来完成更复合,更复杂的任务,不断重复这个堆积木的函数,只要小模块都是正确的,那么组合而成的系统也应该是正确的。
比如前面的例子就变成了:
定义函数add, 输入是两个数,输出是两个数相加之和;
定义函数sub,输入是两个数,输出是第一个数减去第二个数的差;
定义函数print,输入是一个数,print函数将其显示在缺省终端上;
定义函数main,完成下述流程:
1,从某个地方读一个数a;
2,从另一个地方读一个数b;
3,如果b>=0则定义 c=add( a,b),否则 c=sub(a,b);
4,调用print(c);
5,结束。
这样整件事被分解成了add,sub,print和main四个函数,每个函数都只做简单的、易于验证的事情,每个函数可以被不同的人编写和测试,复杂度被分解和降低了;而这些函数可以用严格定义的程序流程(条件分支,循环等)组合起来,形成更大的函数,如此我们就可以从非常简单的积木出发,最终构建宏伟的城堡。
网友评论