《架构整洁之道》第 12 章 DIP:组件

均为原创,读架构整洁之道的笔记。

包含了部分自己的理解,包含了原书中至少70%的知识点。
完整笔记,各位老哥友链加起来吧。
我的博客地址:www.yuque.com/_huangkuan


组件是软件的部署单元,是整个软件系统在部署过程中可以独立完成部署的最小实体。在静态语言中,体现在编译过后的二进制文件。在动态语言中,体验现在一组源代码文件。

设计良好的组件都应该永远保持可被独立部署的特性。

组件发展史

在很久以前,存储设备十分缓慢,内存非常昂贵。所以编译会很慢,大型软件通常需要几个小时。为了缩短编译时间,程序员们将库函数的源代码单独编译。

重定位技术

相当于将源代码都单独编译后,程序要运行,多个组件需要联动,重定位技术将编译后的二进制文件链接到当前运行的程序内存中,实现组件的相互调用和联动。

链接器

链接器可以将程序切分多个可被分别编译,加载的程序段,在外部链接比较少,程序规模小的情况下,这个方案可用。随着规模增长,这种模式变得不可行了。这样还是太慢了。

最后程序员们将加载过程和链接过程进行分离。将耗时的链接部分,单独放到程序中运行,这个程序就是链接器。但随着规模变大,这个链接器也越来越慢。

如今我们直接使用共享库的方式,即已经编译好的二进制文件,加上硬件的飞速发展,我么已经可以很快的编译软件了。

本章小结

组件概念就是由此产生的,为了编译速度提升。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!