模块化思想给孩子讲科技

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180225G02ATV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券