区块链供应链金融-java后端
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.
wanghb d678e74e4c 入节点注册账号功能
添加上传营业执照
生成公私密钥对
1 year ago
.idea 111 1 year ago
BlockFinanceCentral 入节点注册账号功能 1 year ago
admin-convert-pdf 修改配置信息 1 year ago
logs “首次提交” 1 year ago
README.md “首次提交” 1 year ago
hs_err_pid19700.log “首次提交” 1 year ago
pom.xml “首次提交” 1 year ago

README.md

天择区块链金融项目 - README

开发规范

1. Git版本控制

  • 使用Git进行版本控制确保每个功能或修复都有对应的分支。
  • 主分支命名为 master,开发分支为 developbug修复分支以 fix/ 为前缀。

2. 项目结构

  • 项目结构遵循标准的Maven将不同的模块拆分为子模块centralcorepersistence 等。
  • 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管理数据库版本。