码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 架构:C4 Model


    C4 Model

    前置知识
    1. 关系——带箭头的线
    2. 元素——方块和角色
    3. 关系描述——线上的文字
    4. 元素的描述——方块和角色里的文字
    5. 元素的标记——方块和角色的颜色、虚线框
    概念

    C4模型是一种轻量级的视觉和语言,用于为解释软件系统带来一致性。
    C4模型之所以强大,是因为它的简单性和向我们每天合作的多个受众解释我们的系统如何工作的能力。业务、产品和工程人员可以快速掌握这一点,并将体系结构理解到他们需要的技术水平。通过在不同的抽象层次上,重新定义方块和虚线框的含义来将我们的表达限制在一个抽象层次上,从而避免在表达的时候产生抽象层次混乱的问题。

    本质上只有两件事。
    1.一组简单的抽象概念
    2.下面四种图表类型*
    在这里插入图片描述
    上图中的抽象元素分为四种:
    -行动者:那些与我们的系统(人类或非人类)互动的人。
    -系统:最高级别的抽象,通常由开发团队所有。
    -应用程序和商店:组成系统的单个可运行和/或可部署对象。(在纯C4中被称为集装箱-我们选择避免这个装载术语)
    -组件:类似于组成应用程序/商店的模块的构建块。

    四个层次介绍:
    -级别1:上下文图-全局视图(行动者和系统组成,说明系统和系统、系统和人、人与人之间的关系)
    -级别2:应用程序图-显示系统内运行的对象(APP和Store组成,说明不同APP之间的关系)
    -级别3:组件图-显示使每个应用程序运行的构建块(应用程序模块组成,说明各个模块之间的功能和数据流转)
    -级别4:代码图-很少使用,但主要是UML类图(某一个模块的类图,模块类之间的接口定义和对外暴露的接口)

    抽象层次---- 系统上下文(元素和关系)-》容器(一个元素包含哪些组件)-》组件(可以是一个手机APP,一个客户端/服务端网页,一套相机设备)-》代码(一个APP包含哪些内容,这之后才是软件的代码结构)

    容器借用了进程模型,代指有自己独立进程空间的一种存在,一个容器内部可以有多可有独立进程的软件
    之所以会叫为容器,我认为就是因为拥有自己独立的存储空间,两个容器之间的空间互相独立,而在系统上下文中又可以进行通信?

    工具

    1. IcePanel可视化建模工具:团队协作、UX/UI、快速可视化创建模型
    2. 基于文本的建模 Structurizr: 技术人员,将图表作为代码
    3. 基于文本的图表 C4-PlantUML: 小型讨论,图表作为代码

    附录

    C4模型简介
    网上银行系统C4模型
    icepanel免费绘制c4图
    yutube视频

    在这里插入图片描述

  • 相关阅读:
    重新认识交叉编译
    NVMe SSD 学习总结:02 浅析SSD技术基础(掉电保护、U.2 双端口、多命名空间)
    编译器优化丨Cache优化
    杰理之关于 TWS 声道配置【篇】
    Redisson - 实现Java的Redis分布式和可扩展解决方案
    VR全景:为户外游玩体验插上科技翅膀
    LeetCode50天刷题计划第二季(Day 29 — 寻找峰值(11.10-12.10)
    Springboot+vue的班级综合测评管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。
    WDT实验
    N 皇后问题
  • 原文地址:https://blog.csdn.net/weixin_44110080/article/details/132641784
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号