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

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

背景介绍


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


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


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

《架构整洁之道》系列:


组件


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


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


在编译运行语言中

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

而在解释运行语言中

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


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


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


有两个概念分享给大家:


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


结束语


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


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

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

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

相关文章
|
8月前
|
存储 JavaScript API
百宝箱开放平台 ✖️ Node.js SDK
开发者可以通过安装 Node.js SDK 的方式将百宝箱的 OpenAPI 集成到自有系统中,从而在外部系统中发起智能体对话。
452 0
百宝箱开放平台 ✖️ Node.js SDK
|
自然语言处理 数据可视化 数据挖掘
闭源与开源嵌入模型比较以及提升语义搜索效果的技术探讨
本文探讨了自然语言处理中嵌入技术的应用,重点在于语义搜索及聚类方法。通过对比不同规模的开源与闭源模型,文章展示了如何利用聚类技术过滤无关结果,提高搜索精度。实验结果显示,较小模型如mxbai在某些任务上表现优异,提示我们在追求高性能的同时不应忽视计算效率与成本效益。最后,文章还介绍了重新排序技术,进一步优化检索结果的相关性。
580 7
闭源与开源嵌入模型比较以及提升语义搜索效果的技术探讨
|
Java 中间件 应用服务中间件
一篇文章带你Java Spring开发入门
一篇文章带你Java Spring开发入门
一篇文章带你Java Spring开发入门
|
编解码 前端开发 JavaScript
探索前端开发中的新趋势:WebAssembly 技术应用与展望
本文将深入探讨前端开发中的新趋势——WebAssembly 技术,介绍其在前端领域的应用场景和优势,并展望未来在前端开发中的潜在影响。通过对 WebAssembly 技术的原理解析和实际案例分析,帮助读者更好地了解并应用这一新兴技术。
|
Docker 容器
搭建自己的Docker Harbor镜像仓库(1)--- 安装篇
搭建自己的Docker Harbor镜像仓库(1)--- 安装篇
430 1
|
Java Linux Maven
JAR文件可能已经损坏或无法正确打开
JAR文件可能已经损坏或无法正确打开
754 1
|
分布式计算 资源调度 Kubernetes
Spark集群部署与架构
Spark集群部署与架构
|
JSON API 数据格式
使用Python调用API接口获取小红书笔记详情数据
本文将详细介绍如何使用Python编程语言调用小红书API接口,以获取小红书笔记的详情数据。我们将从以下几个方面展开讨论:1) API接口简介;2) Python环境准备;3) API密钥获取;4) 使用Requests库发送API请求;5) 解析响应数据;6) 异常处理与错误排查。
|
存储 机器人 API
typecho博客增加评论过滤插件/违禁词拦截
typecho博客增加评论过滤插件/违禁词拦截
728 0