本章即将结束,笔者想向大家提出一个问题:本章究竟讲述了哪些内容?
最初,我们回顾了前端模块化的发展历程,从IIFE到CommonJS,再到AMD与CMD,直至ES6 Module的出现,这标志着JavaScript终于拥有了属于自己的模块化机制。
接着,我们探讨了面向对象编程的高级概念,并通过发布-订阅模式简洁明了地阐述了类与类之间的复杂关系。在面向对象编程之后,我们又介绍了函数式编程,其核心在于函数与函数之间的组合。
然后,我们概述了领域驱动设计、微服务和微前端等宏观架构设计理念。
最后,我们简要介绍了浏览器架构的演变历程,从最初的单进程架构发展到现在的多进程架构,以及未来可能采用的面向服务的架构。
你可能会好奇,这些知识体系与微前端,乃至整个架构之间有何内在联系?实际上,无论是微前端、微服务还是领域驱动设计,它们都不是孤立存在的。它们本质上都是在探讨如何在不同集合、不同领域之间进行划分与关联。
当某个“集合”变得庞大时,就需要根据一定的逻辑进行拆分,并在拆分后保持集合间的紧密联系。这正是架构的艺术所在。
集合可以视为数据的集合,而集合之间的关系则是用来关联这些数据的逻辑纽带。从技术领域和代码实现的角度来看,架构本质上是数据结构与算法的巧妙结合。
甚至可以更夸张地说,笔者曾经读过一本小说,里面有一个技能名为“万法全通”。按照这个思路,我们是否可以这样理解:世间万物,无论是从数据结构还是算法的角度来看,都不过是集合与关系的不同表现形式。