组件构建原则(一):组件

简介: 组件构建原则(一):组件

背景介绍


这是我的《架构整洁之道》系列的第十一篇,从这一篇开始,我们将一起学习组件构建原则~


大型软件系统的构建过程与建筑物修建很类似,都是由一个个小组件组成的。所以,如果说 SOLID 原则是用于指导我们如何将砖块砌成墙与房间的,那么组件构建原则就是用来指导我们如何将这些房间组合成房子的。


在组件构建原则这一章,我们会学习到软件组件是什么,它们由什么元素构成,以及如何利用组件来构建系统。

《架构整洁之道》系列:


组件


组件是软件的部署单元,是整个软件系统在部署过程中可以独立完成部署的最小实体。


例如,对于 Java 来说,它的组件是 jar 文件。而在 Ruby 中,它们是 gem 文件。在.Net 中,它们则是 DLL 文件。


在编译运行语言中

  • 组件是一组二进制文件的集合

而在解释运行语言中

  • 组件则是一组源代码文件的集合


无论采用哪种部署形式,设计良好的组件都应该永远保持可被独立部署的特性,这同时也意味着这些组件应该可以被单独开发


此处关于组件发展史我因为缺乏某些基础概念且内容比较晦涩,大家可以自行阅读,我就在此略过了


有两个概念分享给大家:


  • 程序规模上的墨菲定律:程序的规模会一直不断地增长下去,直到将有限的编译和链接时间填满为止。
  • 摩尔定律:计算机的处理速度、内存、存储密度每 18个月会增长 1 倍。 这条定律从 1950 年到 2000 年一直适用,之后在处理速度方面就停滞不前了。


结束语


网络异常,图片无法展示
|


✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

少年向来不识天高地厚
放眼处皆自负才高八斗
虽是自命风流
倒也坦诚无忧
我爱这样的少年
谦和而狂妄
骄傲又坦然☀️

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

相关文章
webpack 打包去掉控制台的console.log()
webpack 打包去掉控制台的console.log()
1098 0
webpack 打包去掉控制台的console.log()
|
Java 关系型数据库 MySQL
【JVM】JDBC案例打破双亲委派机制
【JVM】JDBC案例打破双亲委派机制
349 4
|
机器学习/深度学习 数据可视化 JavaScript
Plotly可视化介绍
Plotly可视化介绍
473 0
|
SQL 存储 数据管理
掌握SQL Server Integration Services (SSIS)精髓:从零开始构建自动化数据提取、转换与加载(ETL)流程,实现高效数据迁移与集成——轻松上手SSIS打造企业级数据管理利器
【8月更文挑战第31天】SQL Server Integration Services (SSIS) 是 Microsoft 提供的企业级数据集成平台,用于高效完成数据提取、转换和加载(ETL)任务。本文通过简单示例介绍 SSIS 的基本使用方法,包括创建数据包、配置数据源与目标以及自动化执行流程。首先确保安装了 SQL Server Data Tools (SSDT),然后在 Visual Studio 中创建新的 SSIS 项目,通过添加控制流和数据流组件,实现从 CSV 文件到 SQL Server 数据库的数据迁移。
4382 0
|
设计模式 缓存 安全
代理模式揭秘-软件世界的“幕后黑手”
在这篇精细剖析的文章中,我们将探索代理模式这一软件设计的神秘法术,揭开其定义、核心思想及各种代理(静态代理、动态代理和虚拟代理)的神秘面纱。通过直观的结构图和有趣的场景实例,我们比较了使用和不使用代理模式的实现差异,深入理解代理在软件设计中扮演的关键角色。 接下来,文章将带你进入现实世界,在应用与实战中实地展示代理模式的威力。我们将讲述如何巧妙地使用代理来优化软件的设计,并分享一些鲜活的工作案例,帮助读者更好地把握代理模式带来的优势和必须注意的缺点。 最后,我们讨论了实施代理模式时应避免的陷阱和广为人...
1394 0
代理模式揭秘-软件世界的“幕后黑手”
|
NoSQL 关系型数据库 MySQL
Vgo-适合golang初学者的开源框架
# Vgo Vgo是一款基于Gin的开源服务端框架,集成了Redis、Mysql、JWT及队列等技术栈,适合Golang初学者。项目包括Vgo-Gitee和VgoAdmin-Gitee,可通过克隆仓库并按照安装指南进行部署。其目录结构清晰,涵盖路由、模型、后台接口等功能模块,更多功能持续开发中。
365 3
|
分布式计算 数据库
现代数据库系统的并发控制与事务管理
数据库系统的并发控制与事务管理是保障数据一致性和并发访问效率的核心技术。本文深入探讨了现代数据库系统中常见的并发控制方法和事务管理机制,包括乐观并发控制和悲观并发控制,以及ACID特性的实现和应用。通过对比分析不同方法的优缺点,展示了在不同应用场景下如何选择合适的并发控制策略和事务管理方式,以达到最优的数据库性能和数据一致性。
|
存储 设计模式 Java
Java8 CompletableFuture异步编程-入门篇
Java8 CompletableFuture异步编程-入门篇
|
Rust Anolis 芯片
Anolis OS 23.1 BETA 预览版:龙芯同源异构完成,支持更多芯片厂家
BETA 预览版本整体取得了新的进展,主要在各类架构和芯片支持层面实现了更广泛的支持。