架构到底是指什么?

架构是顶层设计;框架是面向编程或配置的半成品;组件是从技术维度上的复用;模块是从业务维度上职责的划分;系统是相互协同可运行的实体。
我们要做的东西都能抽象为一个系统,架构既可做动词也可做名词,作为动词就代表系统的设计,作为名词就代表系统的表现形式。
所以架构首先继承了系统的属性:
0、系统整体有价值
1、由多个有关系的个体组成
2、涌现,整体大于个体之和,也就是文中说的”流”出来的新的价值
系统的架构从无到有由人来执行,所以也具备人思考和交流的属性:
0、思维带宽较小,不能同时考虑很多事情,需要把系统做分解(模块和组件)
1、线性思想和交流,多维关系要降级到二维关系(4+1视图等多种方法论)
2、人作为个体的个性化-也即多样性,架构没用统一标准,适合自己/团队/公司最重要。
系统与子系统:系统是由一系列有关联,按特定规则组成的个体,并且产生新的能力,而系统与子系统则是观察的交角度不同
模块与组件:模块是从逻辑角度去看待,而组件是从物理角度去看待
框架与架构:框架是规范也是约束,可以理解为封闭性的话题,定义好,让别人如何去使用,而架构是一种结构,是一种开放性的话题,如何去设计组织架构,如何让架构更具有拓展性,减少沟通错误成本
框架和架构其实不一定有什么关联关系。架构是为了实现某个功能而设计的一种结构方式。虽然架构一词高大上,但你只要实现了自己的功能,你的结构就是架构。有了架构,你就有了工作的思路和方向。框架是实现功能的一种规范,你必须在这种规范下工作。注意,定义中说框架是定义组建的规范,所以框架里面不一定非得有组建和模块。
模块是从职责划分的角度来观察,实现某个功能的职责,称之为模块。比如登陆模块。要实现的某个功能,我们一般称之为模块。
组件的本质是可以独立实现某项功能的零件。它的特点是独立,可替换
组件与模块的区别是,组件可能是为了实现模块而实现的。但是实现功能的模块不能称为组件。

学习是永无止境的。

Original: https://www.cnblogs.com/SimpleWu/p/13495595.html
Author: 日落西风又在吹
Title: 架构到底是指什么?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/572354/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 栈的定义和应用(数组模拟)

    1、定义 栈是一个 先入后出的有序列表 栈(stack)是限制线性表中元素的插入和删除只能在线性表的 同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶,另一…

    Java 2023年6月16日
    092
  • Spring Ioc源码分析系列–Ioc源码入口分析

    Spring Ioc源码分析系列–Ioc源码入口分析 本系列文章代码基于Spring Framework 5.2.x 前言 上一篇文章Spring Ioc源码分析系列&…

    Java 2023年6月8日
    068
  • 比较经典的学习网址收集

    https://gitee.com/didispace/SpringBoot-Learning/tree/master Original: https://www.cnblogs….

    Java 2023年6月5日
    088
  • 2021总结、2022展望

    2021总结 2021总结 参与开源 Skywalking Incubator-Shenyu 学习内容 2022展望 深入学习Golang及相关技术栈 参与公司Oteam 组织后端…

    Java 2023年6月5日
    072
  • ReadWriteLock 接口详解

    ReadWriteLock 接口详解 这是本人阅读ReadWriteLock接口源码的注释后,写出的一篇知识分享博客 读写锁的成分是什么? 读锁 Lock readLock(); …

    Java 2023年6月5日
    090
  • Eureka服务下线太慢,电话被告警打爆了

    某年某月的某一天,就像一张破碎的脸。。。 错了,重来。 某天,忽然发现大量的告警,经过多番调查研究考察(此处省略3000字),发现是由于 Eureka 服务下线太慢,而仍然有大量的…

    Java 2023年6月13日
    076
  • Java基础语法(三)

    Java基础语法(三) 不积跬步,无以至千里;不积小流,无以成江海。 ——荀子《劝学》 Java基础语法(三) – 十六、方法 十七、命令行传参(扩展) 十八、可变参数…

    Java 2023年6月9日
    093
  • 设计模式 — Observer(观察者模式)

    在软件构建的过程中,我们需要为某些对象建立一种”通知依赖关系”——一个对象(目标对象)的状态发生改变,其他对象(观察者对象)都将得到通知。如果这样的依赖关系…

    Java 2023年6月16日
    064
  • Java动态脚本Groovy读取配置文件

    前言:请各大网友尊重本人原创知识分享,谨记本人博客: 南国以南i 核心涉及: @Value:作用是通过注解将常量、配置文件中的值、其他bean的属性值注入到变量中,作为变量的初始值…

    Java 2023年6月5日
    082
  • jackson实体转json时 为NULL不参加序列化的汇总

    首先加入依赖 方法一、实体上使用 @JsonInclude(JsonInclude.Include.NON_NULL) 1、如果放在属性上,如果该属性为NULL则不参与序列化 ;2…

    Java 2023年6月13日
    064
  • 基于UML软件建模的高校新闻管理系统

    前言 近年来,伴随着我国国内的网络技术快速发展。高校校园网络建设逐渐迅速发展起来,逐步演变为高校的一个宣传窗口。建立自己的高校新闻发布管理系统已经成为了一种趋势。传统的校园新闻往往…

    Java 2023年6月5日
    0106
  • springboot + mybatis + 多数据源

    此文已由作者赵计刚薪授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验 在实际开发中,我们一个项目可能会用到多个数据库,通常一个数据库对应一个数据源。 代码结构…

    Java 2023年5月30日
    0167
  • gdb–多线程

    改配置, 设为只有一个work线程. 查看所有线程的bt状态(每个线程运行到何处了) thread apply all bt 根据1中的信息, 找到work线程, attach上去…

    Java 2023年5月29日
    075
  • Linux下安装Maven

    一、下载Maven 下载地址:http://maven.apache.org/download.cgi 二、上传至Linux解压 下载后上传至linux 进入指定mavne存放目录…

    Java 2023年6月8日
    077
  • SpringBoot整合MybatisPlus基本的增删改查,保姆级教程

    概述 MybatisPlus是国产的第三方插件, 它封装了许多常用的CURDapi,免去了我们写mapper.xml的重复劳动,这里介绍了基本的整合SpringBoot和基础用法。…

    Java 2023年6月8日
    070
  • 基于node、ganache搭建一个以太坊投票Dapp

    前言 这段时间在remix中学习solidity语法,虽然remix很强大,但是编写好的合约代码很容易丢失,虽然remix可以使用本地文件系统及github中的远程仓库,但还是想尝…

    Java 2023年6月8日
    092
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球