Name Last Update
.cursor Loading commit data...
ci Loading commit data...
docs Loading commit data...
gradle Loading commit data...
src Loading commit data...
.DS_Store Loading commit data...
.gitignore Loading commit data...
README.md Loading commit data...
build.gradle Loading commit data...
gradle.properties Loading commit data...
gradlew Loading commit data...
gradlew.bat Loading commit data...
settings.gradle Loading commit data...

天庭APP端 API项目

传统的MVC架构

- Controller层仅只用于接收前端参数和返回响应的结果,不应用做业务逻辑处理

  • 业务逻辑在Service层中实现,至于为什么需要使用接口,虽然绝大多数情况下的业务仅仅只有一个实现,但是为了有利于后期业务扩展~

- 可通用的复杂业务逻辑在Logic中实现,通常一个方法不允许超过60~80行代码一个方法成百上千行你愿意去看吗,更何况还没有注释

- DTO:参数传输对象 VO:返回视图对象 Query:查询对象

  • Service Client 层用于调用Service RPC服务, 方法名称、参数和返回与Protobuf定义的接口需保持一致 一个Proto文件对应一个Service Client文件
  • 需要事务的方法需在Service项目中实现,API项目只调用Service,无法实现事务
  • should参数(即protobuf定义should条件参数判断,rpc client中实现判断调用方参数不为null时should = true,否则即false)为了防止调用方传了参数,却忘记传Should参数导致调用失败
  • 后续升级Protobuf版本时,无需定义should参数,service端自可通过hasXXX方法判断是否传参