java
标准化、规范化
java代码风格
【目录】java
编程-java8
编程-java9
编程-java-见过的异常
gradle
编程-java21
编程-java23
编程-java17
编程-java11
【目录】java-web-其它框架
java-vertx
quarkus
javalin
solon
Helidon
【目录】spring家族
spring
springcloud + nacos
consul
springboot启动流程
springboot使用及原理
springcloud
优化springboot
【java高级】
java-多线程-问题记录
java高级-ArrayList
java高级-HashMap
jdk源码解析-TreeMap红黑树
java对象占用多少字节
juc(并发)
ThreadPoolExecutor中ctl变量的理解
ThreadPoolExecutor分析
JVM(java虚拟机)
jvm学习路线
jvm
Java启动参数
debug
java-debug-arthas
java-debug-jdb
高并发/高性能/高可用
设计代码或编写代码时应该考虑的
如何发现系统中的瓶颈?
场景分析
订单超时关闭的实现
灰度发布
mysql
mysql explain
mysql主从
mysql常见异常
方法论
工作中遇到的问题记录
代码优化
学习的思路
产品
archunit
postgresql
postgresql-beginner
根据mysql表生成pgsql建表语句
中间件
RabbitMQ
本文档使用 MrDoc 发布
-
+
首页
archunit
https://java-self-testing.github.io/java-self-testing-book/02-code-review/#213-archunit ## 通用 这些规则可以组合起来,形成一个 多模块项目的 ArchUnit 检查体系: 分层依赖:Controller -> Service -> Repository 命名规范:Service、Controller、Repository、DTO、Entity 注解约束:保证 Spring / JPA 注解一致 类型使用限制:Multipart、Servlet、DTO、Entity 继承约束:Controller 必须继承 BaseController 包访问控制:internal 包只允许内部访问 见模块 eladmin-system中的DependencyRulesTest等类。 每个方法不要超过50行。 可尝试问gpt有哪些常见的规则。 ## 规则 ### 分层 ```text controller |- service |- component |- dao ``` service用于和db相关的业务,而component用于一些和db无关的业务,如调用api。它可以被service层直接调用。 controller层的类要有固定注解,如@RestController,名字要以Controller结尾。 service 层的类要有固定注解,如@Service,名字要以Service或ServiceImpl结尾。 HttServletRequest类只能出现在controller层或Filter/Interceptor中,文件上传的MultiPart对象也只能出现在controller层。 依赖 Controller 只能依赖 service 层 或 common 层,只能依赖service或component * - 不允许依赖 repository / dao * - 不允许依赖其他模块的 controller 工具类必须是 final 且有私有构造器 classes().that().haveSimpleNameEndingWith("Utils") .should().beFinal() .andShould().haveOnlyPrivateConstructors() .check(importedClasses); 禁止方法参数过多 防止方法职责过重(如超过 5 个参数)。 methods().should().haveAtMostParameters(5) .check(importedClasses);
我是张三
2025年9月5日 19:40
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
eblog
Markdown文件
分享
链接
类型
密码
更新密码