波动几何

波动几何

研究折线拐点与平行直线之间的关系

Kotlin全栈架构蓝图DAG

作者:王教成

Mermaid Loading...
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Mermaid Architecture Diagram</title>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/mermaid.min.js"></script>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background-color: #f5f7fa;
            margin: 0;
            padding: 20px;
            color: #333;
        }
        .container {
            max-width: 1200px;
            margin: 0 auto;
            background-color: white;
            border-radius: 8px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            padding: 20px;
            overflow: hidden;
        }
        h1 {
            color: #2c3e50;
            text-align: center;
            margin-bottom: 25px;
            border-bottom: 2px solid #3498db;
            padding-bottom: 15px;
        }
        #mermaid-diagram {
            width: 100%;
            min-height: 800px;
            overflow: auto;
            border: 1px solid #e1e4e8;
            border-radius: 4px;
            background: white;
            padding: 15px;
        }
        .instructions {
            background-color: #e3f2fd;
            padding: 15px;
            border-radius: 4px;
            margin: 20px 0;
            font-size: 14px;
        }
        .legend {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin: 15px 0;
            padding: 10px;
            background-color: #f8f9fa;
            border-radius: 4px;
        }
        .legend-item {
            display: flex;
            align-items: center;
            margin-right: 15px;
        }
        .legend-color {
            width: 20px;
            height: 20px;
            border-radius: 3px;
            margin-right: 8px;
            border: 1px solid #ddd;
        }
        .note {
            font-size: 13px;
            color: #666;
            font-style: italic;
            margin-top: 20px;
        }
        @media (max-width: 768px) {
            .container {
                padding: 10px;
            }
            #mermaid-diagram {
                min-height: 600px;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>系统架构分层图</h1>
        
        <div class="instructions">
            <p>此图表展示了服务器端和客户端的架构分层,包含以下组件:</p>
            <ul>
                <li><strong>服务器端</strong>: Database, Entity, Repository, Service, Controller</li>
                <li><strong>客户端</strong>: DataSource, ClientRepository, UseCase, ViewModel, UI</li>
            </ul>
        </div>
        
        <div class="legend">
            <div class="legend-item">
                <div class="legend-color" style="background-color: #FFEC8B;"></div>
                <span>Database</span>
            </div>
            <div class="legend-item">
                <div class="legend-color" style="background-color: #87CEEB;"></div>
                <span>Entity</span>
            </div>
            <div class="legend-item">
                <div class="legend-color" style="background-color: #FFB5C5;"></div>
                <span>Repository</span>
            </div>
            <div class="legend-item">
                <div class="legend-color" style="background-color: #E6E6FA;"></div>
                <span>Service</span>
            </div>
            <div class="legend-item">
                <div class="legend-color" style="background-color: #C1FFC1;"></div>
                <span>Controller</span>
            </div>
            <div class="legend-item">
                <div class="legend-color" style="background-color: #B0E0E6;"></div>
                <span>DataSource</span>
            </div>
            <div class="legend-item">
                <div class="legend-color" style="background-color: #FFDAB9;"></div>
                <span>ClientRepository</span>
            </div>
            <div class="legend-item">
                <div class="legend-color" style="background-color: #8470FF;"></div>
                <span>UseCase</span>
            </div>
            <div class="legend-item">
                <div class="legend-color" style="background-color: #FFA07A;"></div>
                <span>ViewModel</span>
            </div>
            <div class="legend-item">
                <div class="legend-color" style="background-color: #87CEFA;"></div>
                <span>UI</span>
            </div>
        </div>
        
        <div class="mermaid" id="mermaid-diagram">
graph TD
  %% ====== 服务器 ======
  subgraph server["服务器Server"]
    subgraph Database["Database"]
      DB_L0["Database_业务生态层:业务生态层"]
      DB_L1["Database_系统层:MySQL高可用架构"]
      DB_L2["Database_子系统层:物理库划分"]
      DB_L3["Database_安全架构层:TLS+AES加密"]
      DB_L4["Database_模块层:模块表结构"]
      DB_L5["Database_包结构层:迁移脚本目录"]
      DB_L6["Database_类与接口层:表结构设计"]
      DB_L7["Database_方法层:存储过程"]
      DB_L8["Database_代码块层:事务控制块"]
      DB_L9["Database_语句层:DDL语句"]
      DB_L10["Database_表达式层:查询优化"]
      DB_L11["Database_原子操作层:原子约束"]
      DB_L0 --> DB_L1 --> DB_L2 --> DB_L3 --> DB_L4 --> DB_L5 --> DB_L6 --> DB_L7 --> DB_L8 --> DB_L9 --> DB_L10 --> DB_L11
    end
    
    subgraph Entity["Entity"]
      ET_L0["Entity_业务生态层:无"]
      ET_L1["Entity_系统层:Hibernate缓存"]
      ET_L2["Entity_子系统层:业务域分包"]
      ET_L3["Entity_安全架构层:字段加密"]
      ET_L4["Entity_模块层:实体扫描路径"]
      ET_L5["Entity_包结构层:分层包结构"]
      ET_L6["Entity_类与接口层:JPA实体类"]
      ET_L7["Entity_方法层:审计回调"]
      ET_L8["Entity_代码块层:字段校验"]
      ET_L9["Entity_语句层:映射关系"]
      ET_L10["Entity_表达式层:懒加载策略"]
      ET_L11["Entity_原子操作层:equals/hashCode"]
      ET_L0 --> ET_L1 --> ET_L2 --> ET_L3 --> ET_L4 --> ET_L5 --> ET_L6 --> ET_L7 --> ET_L8 --> ET_L9 --> ET_L10 --> ET_L11
    end
    
    subgraph Repository["Repository"]
      RP_L0["Repository_业务生态层:无"]
      RP_L1["Repository_系统层:查询策略"]
      RP_L2["Repository_子系统层:聚合根分包"]
      RP_L3["Repository_安全架构层:行级安全"]
      RP_L4["Repository_模块层:JPA仓库扫描"]
      RP_L5["Repository_包结构层:仓库分层"]
      RP_L6["Repository_类与接口层:仓库接口"]
      RP_L7["Repository_方法层:动态查询"]
      RP_L8["Repository_代码块层:@Query注解块"]
      RP_L9["Repository_语句层:派生查询"]
      RP_L10["Repository_表达式层:SpEL表达式"]
      RP_L11["Repository_原子操作层:flush操作"]
      RP_L0 --> RP_L1 --> RP_L2 --> RP_L3 --> RP_L4 --> RP_L5 --> RP_L6 --> RP_L7 --> RP_L8 --> RP_L9 --> RP_L10 --> RP_L11
    end
    
    subgraph Service["Service"]
      SV_L0["Service_业务生态层:无"]
      SV_L1["Service_系统层:Seata事务"]
      SV_L2["Service_子系统层:服务边界"]
      SV_L3["Service_安全架构层:方法级权限"]
      SV_L4["Service_模块层:事务管理"]
      SV_L5["Service_包结构层:服务分层"]
      SV_L6["Service_类与接口层:服务实现类"]
      SV_L7["Service_方法层:业务逻辑"]
      SV_L8["Service_代码块层:事务控制块"]
      SV_L9["Service_语句层:领域事件"]
      SV_L10["Service_表达式层:EL规则"]
      SV_L11["Service_原子操作层:空安全调用"]
      SV_L0 --> SV_L1 --> SV_L2 --> SV_L3 --> SV_L4 --> SV_L5 --> SV_L6 --> SV_L7 --> SV_L8 --> SV_L9 --> SV_L10 --> SV_L11
    end
    
    subgraph Controller["Controller"]
      CT_L0["Controller_业务生态层:无"]
      CT_L1["Controller_系统层:OpenAPI规范"]
      CT_L2["Controller_子系统层:网关路由"]
      CT_L3["Controller_安全架构层:JWT认证"]
      CT_L4["Controller_模块层:消息转换器"]
      CT_L5["Controller_包结构层:控制器分包"]
      CT_L6["Controller_类与接口层:RestController"]
      CT_L7["Controller_方法层:端点方法"]
      CT_L8["Controller_代码块层:参数校验"]
      CT_L9["Controller_语句层:标准化响应"]
      CT_L10["Controller_表达式层:MapStruct转换"]
      CT_L11["Controller_原子操作层:响应头设置"]
      CT_L0 --> CT_L1 --> CT_L2 --> CT_L3 --> CT_L4 --> CT_L5 --> CT_L6 --> CT_L7 --> CT_L8 --> CT_L9 --> CT_L10 --> CT_L11
    end
  end

  %% ====== 客户端 ======
  subgraph client["客户端Client"]
    subgraph DataSource["DataSource"]
      DS_L0["DataSource_业务生态层:无"]
      DS_L1["DataSource_系统层:Retrofit配置"]
      DS_L2["DataSource_子系统层:无"]
      DS_L3["DataSource_安全架构层:证书绑定"]
      DS_L4["DataSource_模块层:网络模块"]
      DS_L5["DataSource_包结构层:数据源分层"]
      DS_L6["DataSource_类与接口层:Retrofit接口"]
      DS_L7["DataSource_方法层:流式数据"]
      DS_L8["DataSource_代码块层:重试逻辑"]
      DS_L9["DataSource_语句层:网络调用"]
      DS_L10["DataSource_表达式层:JSON解析"]
      DS_L11["DataSource_原子操作层:认证头"]
      DS_L0 --> DS_L1 --> DS_L2 --> DS_L3 --> DS_L4 --> DS_L5 --> DS_L6 --> DS_L7 --> DS_L8 --> DS_L9 --> DS_L10 --> DS_L11
    end
    
    subgraph ClientRepository["ClientRepository"]
      CR_L0["ClientRepository_业务生态层:无"]
      CR_L1["ClientRepository_系统层:缓存策略"]
      CR_L2["ClientRepository_子系统层:无"]
      CR_L3["ClientRepository_安全架构层:SQLCipher加密"]
      CR_L4["ClientRepository_模块层:数据协调"]
      CR_L5["ClientRepository_包结构层:仓库实现"]
      CR_L6["ClientRepository_类与接口层:仓库类"]
      CR_L7["ClientRepository_方法层:混合数据获取"]
      CR_L8["ClientRepository_代码块层:缓存过期"]
      CR_L9["ClientRepository_语句层:Room查询"]
      CR_L10["ClientRepository_表达式层:数据转换"]
      CR_L11["ClientRepository_原子操作层:StateFlow发射"]
      CR_L0 --> CR_L1 --> CR_L2 --> CR_L3 --> CR_L4 --> CR_L5 --> CR_L6 --> CR_L7 --> CR_L8 --> CR_L9 --> CR_L10 --> CR_L11
    end
    
    subgraph UseCase["UseCase"]
      UC_L0["UseCase_业务生态层:无"]
      UC_L1["UseCase_系统层:用例规范"]
      UC_L2["UseCase_子系统层:无"]
      UC_L3["UseCase_安全架构层:权限检查"]
      UC_L4["UseCase_模块层:业务规则"]
      UC_L5["UseCase_包结构层:用例包"]
      UC_L6["UseCase_类与接口层:用例类"]
      UC_L7["UseCase_方法层:核心逻辑"]
      UC_L8["UseCase_代码块层:错误转换"]
      UC_L9["UseCase_语句层:仓库调用"]
      UC_L10["UseCase_表达式层:参数校验"]
      UC_L11["UseCase_原子操作层:构建领域对象"]
      UC_L0 --> UC_L1 --> UC_L2 --> UC_L3 --> UC_L4 --> UC_L5 --> UC_L6 --> UC_L7 --> UC_L8 --> UC_L9 --> UC_L10 --> UC_L11
    end
    
    subgraph ViewModel["ViewModel"]
      VM_L0["ViewModel_业务生态层:无"]
      VM_L1["ViewModel_系统层:Hilt注入"]
      VM_L2["ViewModel_子系统层:无"]
      VM_L3["ViewModel_安全架构层:会话处理"]
      VM_L4["ViewModel_模块层:状态容器"]
      VM_L5["ViewModel_包结构层:ViewModel分包"]
      VM_L6["ViewModel_类与接口层:ViewModel类"]
      VM_L7["ViewModel_方法层:状态更新"]
      VM_L8["ViewModel_代码块层:状态转换"]
      VM_L9["ViewModel_语句层:UI状态更新"]
      VM_L10["ViewModel_表达式层:密封类转换"]
      VM_L11["ViewModel_原子操作层:UseCase调用"]
      VM_L0 --> VM_L1 --> VM_L2 --> VM_L3 --> VM_L4 --> VM_L5 --> VM_L6 --> VM_L7 --> VM_L8 --> VM_L9 --> VM_L10 --> VM_L11
    end
    
    subgraph UI["UI"]
      UI_L0["UI_业务生态层:用户旅程"]
      UI_L1["UI_系统层:Compose框架"]
      UI_L2["UI_子系统层:无"]
      UI_L3["UI_安全架构层:防劫持"]
      UI_L4["UI_模块层:主题模块"]
      UI_L5["UI_包结构层:组件包"]
      UI_L6["UI_类与接口层:组合函数"]
      UI_L7["UI_方法层:事件处理"]
      UI_L8["UI_代码块层:条件渲染"]
      UI_L9["UI_语句层:UI组合"]
      UI_L10["UI_表达式层:动画"]
      UI_L11["UI_原子操作层:文本属性"]
      UI_L0 --> UI_L1 --> UI_L2 --> UI_L3 --> UI_L4 --> UI_L5 --> UI_L6 --> UI_L7 --> UI_L8 --> UI_L9 --> UI_L10 --> UI_L11
    end
  end

  %% ====== 关键依赖 ======
  %% 服务器内部依赖
  DB_L11 --> RP_L6
  ET_L11 --> RP_L6
  RP_L11 --> SV_L7
  SV_L11 --> CT_L7

  %% 客户端内部依赖
  DS_L11 --> CR_L7
  CR_L11 --> UC_L9
  UC_L11 --> VM_L11
  VM_L11 --> UI_L7

  %% 跨端通信
  DS_L6 --> CT_L7

  %% 安全体系
  DB_L3 --> ET_L3
  CT_L3 --> DS_L3
  SV_L3 --> RP_L3
  VM_L3 --> UI_L3

  %% 原子操作
  DB_L11 --> RP_L11
  ET_L11 --> RP_L9
  SV_L11 --> CT_L11
  CR_L11 --> UC_L11

  %% ====== 样式设计 ======
  %% 定义
  classDef server fill:#FFD6E7,stroke:#FF2D95
  classDef client fill:#D6F0FF,stroke:#00A1FF
  classDef Database fill:#FFEC8B,stroke:#FF8C00
  classDef Entity fill:#87CEEB,stroke:#1E90FF
  classDef Repository fill:#FFB5C5,stroke:#FF1493
  classDef Service fill:#E6E6FA,stroke:#9370DB
  classDef Controller fill:#C1FFC1,stroke:#32CD32
  classDef DataSource fill:#B0E0E6,stroke:#1E90FF
  classDef ClientRepository fill:#FFDAB9,stroke:#FF6347
  classDef UseCase fill:#8470FF,stroke:#0000FF
  classDef ViewModel fill:#FFA07A,stroke:#CD853F
  classDef UI fill:#87CEFA,stroke:#4169E1
  
  %% 应用
  class server server
  class client client
  class Database Database
  class Entity Entity
  class Repository Repository
  class Service Service
  class Controller Controller
  class DataSource DataSource
  class ClientRepository ClientRepository
  class UseCase UseCase
  class ViewModel ViewModel
  class UI UI
        </div>
        
        <div class="note">
            注意: 此图表使用Mermaid.js渲染。如果图表未正确显示,请确保已加载Mermaid库。
        </div>
    </div>
    
    <script>
        // 初始化Mermaid图表
        mermaid.initialize({
            startOnLoad: true,
            theme: 'default',
            securityLevel: 'loose',
            flowchart: {
                useMaxWidth: false,
                htmlLabels: true,
                curve: 'basis'
            },
            themeCSS: `
                .node rect {
                    stroke-width: 1.5px;
                    stroke-opacity: 0.8;
                    rx: 5px;
                    ry: 5px;
                }
                .edgePath path {
                    stroke: #555;
                    stroke-width: 1.5px;
                }
            `
        });
    </script>
</body>
</html>
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。