Modularity —— A thinking to separate complexity
编程中的模块化层次
For programming:
- System level
- Internal: to separate large and complicated system to some sub systems.
- External: integrate external system or support for external system.
- Package level: define package functions by single responsibility.
- Interface level: define interface functions by single responsibility.
- Function level: separate complicated function to some sub functions by single responsibility.
In different level, focus on different abstract degree and consider nested relationships.
️ 模块化的前世今生
手工技艺和建筑
在古代,复杂的工艺品和建筑物(例如金字塔、大型寺庙)的建造就体现了模块化的思想。建造者将复杂的结构分解成可重复使用的部件或模块,例如砖块、石块、木梁等,然后将这些模块组装成完整的结构。这体现了模块化带来的效率和可重复性优势。虽然当时没有明确的"模块化"概念,但其本质思想已经存在。
机械制造
工业革命时期,机械制造业的兴起进一步推动了模块化思想的发展。复杂的机器被分解成更小的、可替换的部件,这使得机器的制造、维修和升级更加方便。例如,可互换零件的概念就是模块化思想的体现。这不仅提高了生产效率,也降低了维护成本。
分工与专业化
在工程和科学领域,分工与专业化一直是提高效率和解决复杂问题的重要手段。将大型项目分解成更小的、更易于管理的任务,并由不同的团队或个人负责,这本质上也是一种模块化思想的应用。
数学和科学中的模块化
在数学和科学领域,复杂的公式、定理和模型常常被分解成更小的、更易于理解和处理的模块。这使得复杂的科学问题更容易被理解和解决。