post_waver

包依赖关系

版本: v1.0 最后更新: 2026-04-03 受众: 开发者 阅读时间: 10 分钟


📋 概述

PostWaver 采用 Monorepo 架构,包含 9 个包。本文档详细说明了各包之间的依赖关系和耦合度。


📊 依赖图

                    ┌─────────────┐
                    │   web-ui    │
                    │ converter-web│
                    └──────┬──────┘
                           │ depends on
                    ┌──────▼──────┐
                    │   engine    │
                    └──────┬──────┘
                           │
        ┌──────────────────┼──────────────────┐
        │ depends on       │ depends on       │ depends on
┌───────▼────────┐ ┌───────▼────────┐ ┌──────▼─────┐
│     core       │ │    linker      │ │transformer │
└───────┬────────┘ └───────┬────────┘ └────────────┘
        │ depends on       │ depends on
        │                  │
        └──────────────────┼──────────────────┐
                           │ depends on       │
                    ┌──────▼──────┐           │
                    │   config    │           │
                    └──────┬──────┘           │
                           │ depends on       │
                    ┌──────▼──────┐           │
                    │  database   │◄──────────┘
                    └─────────────┘

📦 包详情

应用层包

@content-hub/web-ui

用途: React Web 界面

依赖:

被依赖: 无

耦合度: 低(仅通过 API 与 engine 通信)


@content-hub/converter-web

用途: 独立的转换工具

依赖:

被依赖: 无

耦合度: 低(仅使用 transformer 的转换功能)


引擎层包

@content-hub/engine

用途: API 服务器和工作流编排

依赖:

被依赖:

耦合度: 中(协调多个包,但通过接口通信)


业务层包

@content-hub/core

用途: 内容解析和处理

依赖:

被依赖:

耦合度: 低(核心业务逻辑,独立性强)

主要模块:


@content-hub/linker

用途: 内容关系生成

依赖:

被依赖:

耦合度: 低(独立的功能包)

主要模块:


@content-hub/transformer

用途: 平台格式转换

依赖: 无

被依赖:

耦合度: 零(完全独立)

主要模块:


@content-hub/adapter

用途: 平台 API 适配器

依赖: 无

被依赖:

耦合度: 零(完全独立)

主要模块:


数据层包

@content-hub/database

用途: 数据持久化

依赖: 无

被依赖:

耦合度: 零(基础服务包)

主要模块:


@content-hub/config

用途: 配置管理

依赖:

被依赖:

耦合度: 低(独立的服务包)

主要模块:


🔍 耦合度分析

耦合度定义

耦合度矩阵

依赖数 被依赖数 耦合度
database 0 5
transformer 0 2
adapter 0 1
config 1 1
linker 1 1
core 2 1
engine 5 2
web-ui 1 0
converter-web 1 0

耦合度分析

优秀设计:

改进空间:


🔄 依赖层次

第0层:基础层

: database, transformer, adapter

特点:

第1层:服务层

: config, linker

特点:

第2层:业务层

: core

特点:

第3层:引擎层

: engine

特点:

第4层:应用层

: web-ui, converter-web

特点:


💡 扩展性分析

易于扩展

  1. 添加新平台
    • transformer 中添加新转换器
    • adapter 中实现 API(可选)
    • 无需修改其他包
  2. 添加新注入器
    • core 中添加新注入器
    • 通过接口集成
    • 不影响现有功能
  3. 添加新数据模型
    • database 中定义模型
    • 创建对应的 DAL 方法
    • 其他包透明使用

需要注意

  1. 修改 engine
    • engine 是协调中心
    • 修改时需考虑所有依赖包
    • 保持向后兼容
  2. 修改 database
    • database 是基础服务
    • 修改时需运行迁移
    • 确保所有使用方同步更新

📚 相关文档


最后更新: 2026-04-03 维护者: PostWaver Team 反馈: GitHub Issues