1
模块化的发展
模块化的出现是因为在计算机早起,存储设备容量很小,那么首先想到的是将指令,或者叫程序,或者叫代码,能重复使用的部分提取出来,单独存放,那么就可以多次多处调用,为模块化奠定下了基础。
随后每一种语言都有模块化的设计,叫法不同,有些叫function,函数,有些叫subroutine,或者submodule,子模块,有些叫Procedure,过程,等等。
模块化体现了计算机思想:计算机最终解决的是逻辑运算,最简单的运算,模块化将复杂问题层层抽丝剥茧,将复杂分化为简单,并使用最简单的运算来描述。
R
ECOMMEND
阅读推荐
《How to Make Sense of any mess》
http://www.howtomakesenseofanymess.com/
这本书虽然不是直接讲模块化的,它的主要内容是信息化,而模块化是当今信息化的一个很重要的方面。本书可以在线免费阅读,如果需要离线版,正在整理中,我们会在群内分享,公众号回复入群获取进群方式。本书我在读的过程中会在我地喜马拉雅栏目中分享读书心得,回复 “微电台” 即可访问喜马拉雅上的 “跟老爸学编程” 专辑。
我看了一些书评,翻阅了一些主要章节,然后决定细细来读,之前在我自己的专业领域想着出一个IC (集成电路)内容的一起读书栏目,因为我一直觉得二次解读某个晦涩的内容是有意义的,但是用讲的在喜马拉雅通过声音或者写文章到微信,头条或知乎些快餐式媒体上的还是要以“通识”,“普化知识”为主,而专业性的可以考虑做“在线研讨会”。
2
模块化设计的优点
减少代码量
功能复用
功能划分
协同开发
文件组织与调用
增强可读性
易于测试与调试
变量域可控
...
3
模块化的讨论
理解了模块化,那么面向对象也很容易理解,以及面向对象中的比如继承等特点。我通俗一点解释就是模板化设计,给你一个代码模板,你填入相应的参数,可以出来一个结果。各个编程语言在推出自己的编译器的时候,推广自己的语言的时候,一般都会事先开发好一些标准单元库,对于语言本身来说没有具体功能对应的代码,而标准单元库做的就是最基础库,模块的建设,比如处理数学math,处理字符串string等等。
模块化不单单是程序上的思想,而是一种通用的方法论。人对难得问题第一反应是去解决它,当然没有问题,也有人的观点是我们遇到复杂问题除了想法子去解决它,当困难太大的时候,也可以迂回,想办法找出等效问题,以及将问题简单化。这个就是计算机思维,计算机总是去解决一个复杂问题的等效问题,或者将复杂问题拆成若干个简单问题,解决了所有拆出来的简单问题,复杂问题也就解决了。
Reference
参考内容
[1] https://www.youtube.com/watch?v=20JP8w6_nVA&t=6s
[2] https://www.wikiwand.com/en/Modular_design
[3] https://www.wikiwand.com/en/Modular_programming
[4] https://www.techopedia.com/definition/25972/modular-programming
[5] https://www.youtube.com/watch?v=9oq0_e2qF8g
[6] more not listed here
领取专属 10元无门槛券
私享最新 技术干货