经常在系统能力汇报的报告中,看到各种各样都是在描述”系统”的词汇,但是同样一个”系统”,在不同的报告中却有着不同后缀,特此梳理,以备后需。
对比
PS:以下文字,基于软件行业背景,与生活中的理解可能略有不同。
| 后缀 | 描述 | 说明 |
|---|---|---|
| 系统(System) | 一套完整、独立、可直接使用的软硬件整体。对外提供完整能力;能独立运行、解决一类问题;例子:Windows、Android、电商系统、财务系统、操作系统 | 完整、封闭、可独立交付 |
| 平台(Platform) | 供别人在上面开发/运行的基础环境。自己不是最终产品,是“底座”;提供基础能力、接口、环境;例子:微信开放平台、阿里云、安卓平台、Unity 平台 | 可扩展、可二次开发、偏底层支撑 |
| 引擎(Engine) | 系统/平台里最核心、负责驱动运转的部分。负责核心逻辑、计算、调度;是“心脏”,不是外壳;例子:浏览器引擎、游戏引擎、搜索引擎、数据库引擎 | 核心、驱动、高性能、偏底层 |
| 框架(Framework) | 半成品 + 规范 + 结构,帮你快速开发。规定好结构,你填业务代码;控制流程,你写逻辑;例子:Spring、Vue、React、Flask | 约束性强、可复用、加速开发。 |
| 模块(Module) | 按功能/业务拆分的大块。高内聚、低耦合;独立可替换、可维护;例子:登录模块、支付模块、订单模块 | 按业务划分,粗粒度。 |
| 组件(Component) | 可复用的 UI/功能单元,可拼装。通用、可插拔、可视化常见;例子:按钮组件、表格组件、弹窗组件 | 细粒度、可复用、偏界面/通用功能。 |
| 构件(Artifact) | 可独立部署、编译、交付的软件单元。更偏架构、工程化;可独立版本管理、部署;例子:微服务构件、SDK 构件、Jar 包 | 偏工程化、可独立构建发布。 |
| 插件(Plugin) | 不影响主程序的扩展功能。主程序不变,插件可装可卸;例子:浏览器插件、IDE 插件、Photoshop 插件 | 热插拔、扩展用、不侵入核心。 |
| 功能(Function) | 一个具体可使用的能力点。 最小可用单位;例子:扫码、分享、导出Excel、登录 | 用户可见、最小业务价值点。 |
| 工具(Tool) | 用来开发、构建、维护软件的东西。 不是系统的一部分;例子:IDE、Git、Postman、Docker | 辅助性、生产用、不随软件发布。 |
层次:
- 系统(完整产品)
- 平台(运行/开发底座)
- 引擎(核心驱动)
- 框架(开发规范结构)
- 模块(业务大块)
- 组件/构件(可复用单元)
- 插件(扩展功能)
- 功能(最小能力点)
- 工具(造它们的辅助软件)