前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >架构和框架的关系和区别?

架构和框架的关系和区别?

作者头像
王小明_HIT
发布2023-07-08 16:00:38
2260
发布2023-07-08 16:00:38
举报
文章被收录于专栏:程序员奇点程序员奇点

架构和框架的关系和区别?

前言

我们谈到架构,会想到 Linux有架构,MySQL架构,JVM架构,Java架构、MySQL存储架构、跑在Linux上的业务系统也有架构,那到底什么是架构呢?

要解答这个问题,关键在于梳理几个有关系而又相似的概念,包括:系统与子系统、模块与组件、框架与架构。

系统与子系统

系统

维基百科:

系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是“总体”“整体”或“联盟”

  • 关联,有关联的个体组成才能叫做系统。比如,手机芯片,屏幕,电路板组成在一起,才称为一个手机。
  • 规则,系统个体按照指定的规则运作,不是一个单体各自单独完成工作。由各系统按照一定的规则,分工合作,才组成一个系统。
  • 能力,一个系统是对外提供能力的, 系统能力不是个体能力之和,是产生了新的能力,芯片的计算,和联网能力,屏幕的显示,电池提供能力,组成了手机。
子系统

子系统也是由一群有关联的个体所组成的系统,多半会是更大系统中的一部分

举例
  • 微信是个大系统,提供,聊天,视频,扫码支付,朋友圈等能力。
  • 朋友圈又包含动态,评论,点赞等子系统。
  • 评论这个子系统包含,防刷,审核,存储等子系统,甚至可以说包含mysqlm Redis 等业务子系统。

模块和组件

模块和组件的定义并不十分清晰。

维基百科:

软件模块(Module)是一套一致而互相有紧密关联的软件组织。它分别包含了程序和数据结构两部分。现代软件开发往往利用模块作为合成的单位。模块的接口表达了由该模块提供的功能和调用它时所需的元素。模块是可能分开被编写的单位。这使它们可再用和允许人员同时协作、编写及研究不同的模块。

软件组件定义为自包含的、可编程的、可重用的、与语言无关的软件单元,软件组件可以很容易被用于组装应用程序中。

我们可以定义,从逻辑角度拆分系统后,得到的单元,我们称为模块。从物理角度拆分,得到的单元是组件

举例

一个学生信息管理系统,按逻辑拆分为 登录注册模块,个人信息模块等。学生成绩模块。按物理拆分为,Nginx模块,Web服务器,MySQL 模块等。

从业务逻辑架构拆分
从物理部署拆分

框架和架构

维基百科的定义:

软件框架(Software framework)通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品.

  • 框架是组件规范,MVC 就是一种常见的开发规范,还有 J2EE 框架,MVP框架。
  • 框架提供基础功能的产品,例如 Spring MVC 框架,除了 MVC 规范,还提供了一些基础功能,比如 Spring 框架提供注解 @Controller 等,Spring Security ,Spring JPA。

框架关注的是规范,架构关注的结构。

举例

MVC 框架:

什么是架构?

软件架构指软件系统的顶层结构。

架构:一个系统由什么子系统组成,各个子系统负责什么功能,各子系统之间怎么沟通,就是这个系统的结构。框架:一种软件开发的规范,带有系统开发的基础功能。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员奇点 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 架构和框架的关系和区别?
    • 前言
      • 系统与子系统
        • 模块和组件
          • 框架和架构
            • 什么是架构?
            相关产品与服务
            云数据库 MySQL
            腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档