Ledger 模块文档
概述
Ledger 模块是一个现代化的移动端财务管理系统后端服务,旨在为个人和家庭提供完整的记账、预算管理和财务分析功能。本模块采用微服务架构,支持 HTTP API 和 gRPC 双协议,具备高并发、高可用、高可测试性的特点。
版本信息
- 当前版本: v0.1.0 (设计规划阶段)
- 目标版本: v1.0.0 (生产就绪)
- 技术栈: Go + Gin + gRPC + MySQL + Redis + Kafka
核心功能
🏦 智能账本管理
- 多账本支持(个人、家庭、项目、旅行账本)
- 账本共享与协作(多用户权限管理)
- 账本模板系统(预设和自定义模板)
- 账本生命周期管理(归档、导出、合并)
💰 便捷记账体验
- 快速记账(快捷按钮、语音识别)
- 智能分类(历史数据推荐)
- 拍照记账(OCR 识别小票信息)
- 批量导入(银行流水、第三方账单)
- 离线记账(本地存储,自动同步)
🏷️ 丰富标签系统
- 层级标签(主分类和子分类)
- 标签模板(预设生活常用标签)
- 自定义标签(颜色、图标、描述)
- 标签统计分析(使用频率、金额分析)
📊 智能预算管理
- 灵活预算周期(日/周/月/季/年)
- 分类预算(按标签细分预算控制)
- 预算模板(基于收入推荐方案)
- 智能预警(70%/90%/100% 阈值提醒)
- 预算执行分析(超支原因、节省建议)
📈 深度数据分析
- 趋势分析(收支趋势、同比环比)
- 分类统计(支出分布、收入来源)
- 多维度筛选(时间、标签、账本、类型)
- 财务健康评分(基于收支比例)
- 预测分析(未来支出预测、现金流预警)
🔔 多渠道通知
- 实时预算提醒(接近预算、超出预算)
- 记账习惯提醒(定时提醒、遗漏提醒)
- 多通知渠道(当前日志记录,未来支持钉钉、邮件)
- 通知个性化配置(用户偏好、智能静音)
技术特性
🏗️ 现代化架构
- 清洁架构: 分层设计,依赖倒置,高内聚低耦合
- 微服务就绪: 模块化设计,支持服务拆分
- 云原生: 容器化部署,Kubernetes 支持
- 可观测性: 全链路追踪,指标监控,结构化日志
🚀 高性能设计
- 多级缓存: 本地缓存 + Redis 集群 + CDN
- 数据库优化: 读写分离,分区表,索引优化
- 连接池管理: 数据库和 Redis 连接池优化
- 异步处理: 消息队列,工作池,批量处理
🔒 安全可靠
- 数据加密: 敏感信息加密存储和传输
- 权限控制: 基于角色的细粒度权限管理
- 审计日志: 完整的操作审计和追踪
- API 安全: 限流、熔断、认证、授权
🧪 高质量保证
- TDD 测试驱动: 100% 代码覆盖,严格测试要求
- 可测试设计: 依赖注入,接口抽象,无不可测试层
- 性能测试: 压力测试,基准测试,性能监控
- 质量门禁: 自动化检查,代码审查,持续集成
文档导航
📋 架构设计
🛠️ 开发指南
- 测试策略 - TDD 实践和质量保证
- 性能优化 - 性能调优和监控方案
- 部署指南 - 容器化部署和运维管理
📚 技术知识库
快速开始
环境要求
- Go 1.21+
- MySQL 8.0+
- Redis 7.0+
- Docker & Kubernetes (可选)
本地开发
bash
# 克隆项目
git clone https://github.com/FixIterate/lz-stash.git
cd lz-stash
# 初始化 Ledger 模块
lzt ledger init
# 启动开发环境
lzt ledger server --env=dev
# 运行测试
go test ./internal/app/ledger/... -v快速验证
bash
# CLI 演示模式
lzt ledger demo
# 压力测试
lzt ledger bench --concurrent=100
# 健康检查
curl http://localhost:8080/health开发路线图
v0.1.0 - 架构设计 (当前)
- ✅ 完整系统架构设计
- ✅ 技术选型和知识库建设
- ✅ API 设计和数据模型
- ✅ 测试策略和性能方案
v0.2.0 - 核心实现
- 🔄 基础模型和仓储层实现
- 🔄 gRPC 服务和 HTTP API
- 🔄 核心业务逻辑
- 🔄 单元测试覆盖
v0.3.0 - 功能完善
- ⏳ 预算管理和通知系统
- ⏳ 统计分析功能
- ⏳ 缓存和性能优化
- ⏳ 集成测试
v0.4.0 - 性能优化
- ⏳ 压力测试验证
- ⏳ 监控和可观测性
- ⏳ 安全加固
- ⏳ 部署自动化
v1.0.0 - 生产就绪
- ⏳ 完整功能交付
- ⏳ 生产环境验证
- ⏳ 文档完善
- ⏳ 多语言 SDK
贡献指南
我们欢迎社区贡献!请参阅:
技术支持
- 问题反馈: GitHub Issues
- 功能建议: Feature Requests
- 技术讨论: Discussions
许可证
本项目采用 MIT 许可证。
💡 提示: 这是一个学习型项目,旨在展示现代化 Go 应用的最佳实践。所有设计和实现都遵循工业级标准,可直接用于生产环境。