← [ BACK_TO_NOTES ]

项目的层级架构

区分交互入口、应用编排、领域规则和基础设施适配器,并说明前端状态管理不等于后端的领域层。

#pattern #concept #growing

项目的层级架构

分层用于分开变化原因和依赖方向,不是要求每个项目都建立固定数量的 service 目录。原图把 Business Service、Domain Service、Application Service 与 Pinia/Vuex 排成一条调用链,混合了业务职责、前端状态和基础设施。

按职责理解

交互入口(HTTP Controller、页面事件、CLI)
→ 应用用例(加载、协调、事务与结果)
→ 领域模型(实体、值对象、必要的领域服务)

应用/领域需要的端口 ← 基础设施适配器实现
                      数据库、HTTP、IPC 等

这是依赖组织示意,不是所有运行时调用都只能向下,也不要求每层一个类。领域服务与应用服务的判断见 领域服务与应用服务。

前端状态管理保存视图、会话或编辑草稿;它不因为放在 Pinia 中就成为领域层。API/IPC 客户端负责传输与协议适配,敏感身份与业务授权仍由可信后端或主进程检查。

原 IPC 片段的职责

原例通过 window.shared.ipcRenderer.invoke(“store:read”, username, storeName) 读取存储。这个封装只发出 IPC 请求,泛型返回值并不会验证主进程响应,也不能证明调用者有权访问 username 指定的存储。

主进程需根据可信上下文解析身份、校验允许的存储名并验证消息;preload 暴露具体能力,而不是把任意 IPC 通道开放给渲染层。展示层收到结果后仍需按约定处理错误和数据状态。

检查边界

  • 业务规则能否在不同入口下复用,且不会被某个入口绕过?
  • 数据库/网络细节是否通过明确接口进入用例,而不是散落在 UI 和实体里?
  • 是否只有真实变化点需要抽象,避免空转的多层 service?
  • 前端草稿、持久领域状态和外部响应分别由谁拥有?
创建于 2025/1/1 更新于 2026/10/7
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本