Skip to content

AI辅助开发

**本文引用的文件** - [[[[[README.md]]]]](../file/readme.md) - [[[[[CLAUDE.md]]]]](../file/claude.md) - [[[[[bi-analysis/cmd/bi-analysis/main.go]]]]](../file/bi-analysis/cmd/bi-analysis/main.go) - [[[[[bi-common/go.mod]]]]](../file/bi-common/go.mod) - [[[[[bi-proto/go.mod]]]]](../file/bi-proto/go.mod) - [[[[[go.work]]]]](../file/go.work) - [[[[[bi-common/apitypes/error.go]]]]](../file/bi-common/apitypes/error.go) - [[[[[bi-analysis/internal/biz/biz.go]]]]](../file/bi-analysis/internal/biz/biz.go) - [[[[[bi-analysis/internal/service/service.go]]]]](../file/bi-analysis/internal/service/service.go)

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考量
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本项目是一个企业级BI分析平台,采用微服务架构与Kratos框架,结合Claude Code Skills实现“从需求到部署”的全生命周期工程化开发。项目通过规范驱动开发(Spec-Driven Development)工作流,配合多种Skills覆盖架构设计、数据库设计、API设计、代码生成、模块开发、测试编写、质量保障与运维排查等环节,显著提升开发效率与代码质量。

项目结构

项目以多服务微架构组织,核心服务包括分析服务、基础数据服务、租户管理、定时任务、系统管理、前端控制台与浏览器扩展等。服务之间通过gRPC/HTTP协议通信,配置中心采用Nacos,数据层以StarRocks为主,消息队列使用Kafka,缓存使用Redis,链路追踪采用OpenTelemetry/Jaeger。

图表来源

章节来源

核心组件

  • 服务入口与配置加载:分析服务入口负责加载Nacos配置、初始化日志与追踪、雪花算法、服务注册与Wire依赖注入,随后启动HTTP/gRPC服务。
  • 统一错误与响应:公共组件提供统一错误码体系与响应格式,便于跨服务一致化处理。
  • 依赖注入:通过Wire集中管理服务、业务与数据层依赖,确保模块解耦与可测试性。
  • 技术栈与规范:Go 1.25.5 + Kratos v2.9.2,StarRocks OLAP,Kafka消息队列,Nacos配置中心,OpenAPI文档生成,Git子模块管理。

章节来源

架构总览

系统采用Kratos分层架构:cmd入口 -> 依赖注入 -> 服务层 -> 业务层 -> 数据层 -> 数据库。服务通过Nacos注册与发现,HTTP/gRPC双协议对外提供能力,StarRocks承载分析型数据,Kafka支撑异步事件与数据同步,Redis提供缓存加速,OpenTelemetry/Jaeger实现可观测性。

图表来源

章节来源

详细组件分析

分析服务入口与配置加载

  • 环境参数解析:支持通过命令行传入运行环境(dev/prod)。
  • Nacos配置源:按环境加载application-{env}.yaml,统一配置中心优先级。
  • 日志与追踪:基于公共组件初始化日志与链路追踪。
  • 雪花算法:从配置初始化分布式ID生成器。
  • 服务注册:基于Nacos客户端创建服务注册实例。
  • 依赖注入:通过Wire生成app并启动HTTP/gRPC服务。

图表来源

章节来源

统一错误与响应机制

  • 错误码格式:采用七位格式XXYYZZZ,XX为错误类型,YY为模块代码,ZZZ为序号。
  • HTTP状态映射:根据错误类型映射到标准HTTP状态码,实际响应由中间件统一返回200并携带业务错误码。
  • 错误提取:提供从Kratos错误中提取业务错误码与消息的方法,便于统一处理与上报。

图表来源

章节来源

依赖注入与模块划分

  • Wire ProviderSet:在biz与service包中分别导出ProviderSet,集中声明依赖关系,便于生成注入代码。
  • 服务层职责:实现proto定义的服务接口,协调业务层与数据层。
  • 业务层职责:封装领域逻辑,保证用例与实体的清晰分离。
  • 数据层职责:抽象仓储接口,屏蔽数据库细节。

图表来源

章节来源

数据库设计与StarRocks规范

  • 表类型:Primary Key用于可更新的主数据,Duplicate Key用于只追加的日志数据。
  • 分桶与副本:标准分桶键为高基数列,开发环境副本数1,生产环境副本数3。
  • 索引策略:对低基数列使用BITMAP索引加速查询。
  • 软删除:统一使用deleted_at字段实现软删除。
  • 动态分区:日志表采用动态分区管理生命周期。
  • 公共字段:所有业务表包含审计字段created_by/updated_by/created_at/updated_at/deleted_at。
  • ID生成:使用雪花算法生成分布式唯一ID。

图表来源

章节来源

API设计与代码生成

  • API定义:使用Protobuf定义gRPC/HTTP接口,结合注解生成OpenAPI文档。
  • 代码生成:通过Makefile执行proto生成、OpenAPI文档生成、配置生成与wire依赖生成。
  • 文档同步:支持将OpenAPI文档同步至Apifox,便于前后端协作。

图表来源

章节来源

规范驱动开发(Spec-Driven Development)

  • 规范创建:通过/spec-specify创建功能规范,明确目标与范围。
  • 需求澄清:使用/spec-clarify消除歧义,确保一致性。
  • 计划生成:使用/spec-plan生成实施计划与里程碑。
  • 任务分解:使用/spec-tasks生成可执行的任务清单。
  • 实施执行:使用/spec-implement推进落地执行。
  • 一致性分析:使用/spec-analyze检查规范与实现的一致性。

图表来源

章节来源

Claude Code Skills在各阶段的应用

  • 研发编排:bi-compose串联各阶段Skill,形成从需求到部署的流水线。
  • 架构设计:bi-tech-architecture指导技术选型与系统设计。
  • 工程管理:bi-submodule-management管理Git子模块。
  • 编码规范:bi-coding-standards统一Go/TS代码风格。
  • 数据库设计:bi-database-design与bi-starrocks-query负责建表与查询优化。
  • API设计:bi-api-design规范接口定义与OpenAPI生成。
  • 代码生成:bi-proto-generation自动化生成Proto/Wire代码。
  • 后端开发:bi-development与bi-kafka-integration实现模块开发与消息集成。
  • 配置管理:bi-nacos-config集成动态配置中心。
  • 前端开发:bi-frontend-development与bi-echarts-visualization规范前端与可视化实现。
  • 安全合规:bi-security强化认证授权与安全防护。
  • 质量保障:bi-code-review与bi-testing规范代码审查与测试。
  • 性能优化:bi-performance进行全链路性能分析与优化。
  • 运维排查:bi-troubleshooting支持故障定位与问题排查。
  • DevOps:bi-devops配置CI/CD与容器化部署。

图表来源

章节来源

依赖关系分析

  • 工作区聚合:go.work声明了多模块聚合,便于统一构建与测试。
  • 公共依赖:bi-common与bi-proto作为公共模块,被各业务服务依赖。
  • 服务间依赖:分析服务依赖公共组件与Proto定义;基础数据服务同样依赖公共组件与Proto。

图表来源

章节来源

性能考量

  • OLAP查询优化:利用StarRocks的分桶、副本与索引策略,结合动态分区管理日志表生命周期。
  • 缓存策略:Redis用于热点数据与会话缓存,降低数据库压力。
  • 异步处理:Kafka承接高吞吐事件,实现削峰填谷与解耦。
  • 链路追踪:OpenTelemetry/Jaeger定位性能瓶颈与异常路径。
  • 代码生成与依赖注入:减少样板代码,提升可维护性与运行效率。

故障排查指南

  • 配置问题:优先检查Nacos配置是否正确加载,确认环境变量与配置文件优先级。
  • 依赖注入:若服务无法启动,检查wire生成代码是否更新,ProviderSet是否完整。
  • 错误码定位:通过统一错误码提取方法快速定位业务错误来源。
  • 数据库异常:核对建表规范与索引策略,检查分桶与副本配置。
  • 网络与注册:验证服务注册与发现是否正常,排查网络连通性。

章节来源

结论

本项目通过Claude Code Skills与规范驱动开发(Spec-Driven Development)实现了从需求到部署的高效闭环。借助统一的架构规范、数据库设计与API生成流程,以及完善的质量保障与运维工具链,显著提升了开发效率与代码质量。建议在后续迭代中持续完善Skills覆盖度与自动化程度,进一步缩短交付周期并增强团队协作效率。

附录

  • 常用命令:初始化工具、生成代码、构建与运行等,详见项目文档。
  • 提交与发布:遵循Git分支与提交规范,确保版本演进有序可控。
  • 环境准备:私有依赖访问、基础服务启动与配置优先级,详见项目文档。

章节来源