# 开发指南
本页用于说明 G2rain 平台的开发方式、协作方式与工程化建议。
# 开发原则
- 默认使用中文表达,除非有特殊要求
- 默认使用 UTF-8 编码
- 优先依据平台配置、模块 README 和官方文档理解项目
- 不直接把源码扫描结果当作最终结论
- 保持仓库职责隔离,不把不同模块混在一起理解
# 开发主线
# 平台开发
平台开发关注的是统一能力,包括认证、权限、资源、部门、审计、网关、应用管理和交互接入等内容。
# 业务域开发
业务域开发关注的是具体业务场景。它可以在平台能力之上组合出独立子应用,也可以围绕既有流程进行扩展。
# 前端开发
前端开发关注主壳、子应用、页面资源、路由、环境变量和联调方式。开发时要先明确自己是在主壳中运行,还是独立运行。
# 工程化开发
工程化开发关注脚手架、生成器、基础工具、Starter、模板和公共依赖。这部分的目标是降低重复劳动,让项目更容易标准化。
# 推荐的开发方式
# 新模块起步
如果是新业务模块,优先参考:
g2rain-app-templateg2rain-app-clig2rain-generator-archetype
这些仓库更适合用来快速生成项目骨架、页面结构和基础配置。
# 后端模块起步
如果是后端工程,优先参考:
g2rain-commong2rain-spring-boot-starterg2rain-mybatis-extensions
这些仓库更适合快速接入统一工具、扩展能力和基础约定。
# 前端主壳与子应用
如果是前端模块,优先理解:
g2rain-main-shellg2rain-manager-appg2rain-infra-appg2rain-cms-appg2rain-department-app
主壳负责统一承载,子应用负责业务页面和局部能力。
# 平台开发时应该怎么想
- 这是平台共性能力,还是某个业务模块的专属能力?
- 这项能力是资源、权限、应用,还是业务功能?
- 它应该放在平台核心层、交互接入层,还是业务域扩展层?
- 这个功能是否会影响其他仓库的协作方式?
- 这个功能是否需要同步更新 README、平台文档和规范文档?
# 前端开发时应该怎么想
- 先确认当前页面是在主壳还是独立模式运行
- 先确认环境变量和联调方式
- 先确认页面资源、菜单和权限是否已注册
- 先确认是否要和网关、接口、签名链路联动
- 先确认是否需要把页面拆成可复用模块
# 工程化开发时应该怎么想
- 先看项目是“工具类”还是“业务类”
- 先看它是生成代码、封装能力,还是直接提供业务服务
- 先看它依赖哪些基础模块,再决定怎么接入
- 先看 README 是否已经说明核心能力和使用方式