You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
3.8 KiB
Markdown

# 天择区块链金融项目 - README
## 开发规范
### 1. Git版本控制
- 使用Git进行版本控制确保每个功能或修复都有对应的分支。
- 主分支命名为 `master`,开发分支为 `develop`bug修复分支以 `fix/` 为前缀。
### 2. 项目结构
- 项目结构遵循标准的Maven将不同的模块拆分为子模块`central`、`core`、`persistence` 等。
- central模块包含项目的核心配置如Spring配置、接口controller、工具类代码、入参出参实体等。
- core模块包含项目的核心业务逻辑如用户管理、资产管理、交易管理等既是DDD设计模式的领域层一个功能模块抽取为一个领域。
- persistence模块包含项目的数据访问层如MyBatis的Mapper接口和XML文件、数据库配置等。
### 3. DDD设计模式
- 严格遵循领域驱动设计DDD原则将领域对象、值对象、聚合根等概念反映在代码中。
- 将领域逻辑放置在领域模型中,尽量避免在服务层处理过多的业务逻辑。
### 4. RESTful API设计
- 设计清晰、简洁的RESTful API使用有意义的URI和HTTP方法。
- 采用标准的HTTP状态码返回合适的错误信息和成功消息。
- 考虑使用版本号控制API`/v1/`
### 5. 安全性
- 使用Spring Security来管理身份验证和授权。
- 对敏感数据进行适当的加密和保护。
- 防止常见的Web安全漏洞如SQL注入、跨站脚本攻击XSS等。
### 6. 测试
- 编写单元测试和集成测试,覆盖核心业务逻辑。
- 使用合适的测试框架如JUnit或TestNG。
- 考虑使用模拟框架如Mockito来模拟依赖。
## 代码规范
### 1. 命名规范
- 使用有意义的、一致性的命名,遵循驼峰命名法。
- 类名、接口名使用大驼峰命名法,如 `UserService`
- 方法名、变量名使用小驼峰命名法,如 `getUserById`
- 常量名使用全大写,下划线分隔,如 `MAX_RETRY_COUNT`
### 2. 注释和文档
- 使用清晰的注释,解释方法、类和重要逻辑的功能和用法。
- 使用JavaDoc注释为类、方法提供详细文档。
### 3. 代码结构
- 将相关功能放在合适的包中,避免类过于庞大。
- 使用包、类的结构来反映领域模型和逻辑关系。
- annotation系统切面文件。全局日志切面管理及接口权限控制文件.
- config系统配置文件。全局配置文件包括数据库配置、redis配置、swagger配置、spring配置等.
- controller系统接口文件。接口文件包括用户接口、资产接口、交易接口等.
- exception系统异常文件。异常文件包括自定义异常、全局异常处理等.
- mapper系统数据访问文件。数据访问文件包括用户数据访问、资产数据访问、交易数据访问等.
- service系统服务文件。服务文件包括用户服务、资产服务、交易服务等.
- util系统工具文件。工具文件包括加密工具、日期工具、随机数工具等.
- swagger系统接口文档文件。接口文档文件包括接口文档配置、接口文档实体等.
- third系统第三方文件。第三方文件包括第三方接口、第三方工具等.
### 4. 异常处理
- 为不同的异常情况创建合适的自定义异常类,提供有意义的异常信息。
- 在合适的位置捕获异常,避免不必要的异常抛出。
### 5. 日志
- 使用日志框架如Logback或Log4j记录关键信息和错误。
- 根据日志级别将日志信息分为不同的级别如DEBUG、INFO、WARN、ERROR。
### 6. 数据访问
- 使用MyBatis等持久化框架将SQL语句与Java代码分离。
- 使用数据库迁移工具如Flyway或Liquibase管理数据库版本。