guides

架构设计

GoCode Monorepo 当前架构(2026-03)

架构设计

当前架构结论

当前仓库已收敛为“单应用站点 + 内容仓”模式:

  • 生产主应用:gocode-apps/site-astro
  • 内容源:gocode-context/wiki
  • 搜索:Pagefind(构建时生成 dist/pagefind
  • 评论:Waline 前端(通过环境变量接入后端)

分层结构

1. 应用层(gocode-apps)

  • site-astro/:门户 + 知识库统一站点(当前唯一可发布应用)
  • desktop-web/mobile-flutter/tools-web/:预留目录

2. 内容层(gocode-context)

  • wiki/:唯一生效内容源
  • Markdown 内容在构建阶段被 site-astro 读取并输出静态页面

3. 共享能力层(packages)

  • ui/
  • eslint-config/
  • typescript-config/

4. 预留层(当前未落地运行)

  • gocode-services/:服务层占位
  • gocode-infra/:基础设施层占位
  • gocode-projects/:独立项目占位

请求路径与发布流

  1. gocode-context/wiki 更新内容
  2. 执行 pnpm --filter @gocode/site-astro build
  3. 产物输出到 gocode-apps/site-astro/dist
  4. Nginx 或静态托管服务发布 dist
  5. /pagefind/* 必须随产物一起发布,否则搜索不可用

设计原则

  • 内容与渲染解耦:内容在 gocode-context,渲染在 site-astro
  • 文档声明以可运行事实为准:未落地的服务与编排不作为“可用功能”描述
  • 先可运行,再扩展:新增层级先提交最小可运行实现,再更新架构文档