Files
spdm-backend/.qoder/rules/rule.md

75 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
trigger: manual
# Java 开发规范与重构指南
作为我的 AI 编程伙伴,请在生成、修改或评审代码时严格遵循以下 10 条核心原则:
### 1. 单一职责原则 (SRP)
* **规则**:一个方法只做一件事。
* **实践**:如果方法逻辑过长,请通过**拆分职责明确的私有方法**Private Methods来解耦。
* **目标**:提升代码的可读性和方法复用率。
### 2. 卫语句优先 (Guard Clauses)
* **规则**:减少 `if-else` 嵌套深度。
* **实践**:使用**卫语句提前返回**Early Return。先处理异常分支和边界条件核心逻辑放在方法最后。
* **示例**
```java
if (user == null) return;
// 执行核心逻辑...
```
### 3. 重复逻辑抽取
* **规则**:不要重复你自己 (DRY)。
* **实践**:将频繁出现的**参数校验、类型转换、对象构建**等模式封装为公共工具类或私有通用方法。
### 4. 数据封装 (Encapsulation)
* **规则**:避免多个相关变量散落在方法参数中。
* **实践**:如果多个变量在逻辑上高度相关(如 `startTime`, `endTime`),应**封装为内部类或 DTO 对象**。
### 5. 统一异常处理
* **规则**:禁止散乱的 try-catch。
* **实践**:使用**通用的响应校验方法**或全局异常拦截器。确保错误码和错误信息在整个系统中保持一致。
### 6. 参数对象化
* **规则**:控制方法入参数量。
* **实践**:当方法参数**超过 3 个**时,必须封装为 Request 对象或 Context 对象。
### 7. 语义化命名
* **规则**:变量名应具备自解释性。
* **实践****变量即文档**。使用准确的动词+名词组合,避免使用 `a`, `b`, `list1` 等无意义命名。
### 8. 消灭魔术值 (Magic Values)
* **规则**:禁止在逻辑判断中直接使用硬编码的数字或字符串。
* **实践**:全面**拥抱枚举 (Enum) 或常量 (Static Final)**。
### 9. 声明式编程
* **规则**:提升集合处理的可读性。
* **实践**:优先使用 **Java Stream API** 或函数式编程替代复杂的 `for/while` 循环。
### 10. 智能注释
* **规则**:避免“无效注释”。
* **实践**不要解释代码在做什么What而是解释**为什么要这么做Why**。如果代码本身足够清晰,则无需注释。
---
**当你为我生成代码时,请先自检是否违反了上述规则。如果我提交的代码不符合这些原则,请主动提示并给出重构建议。**
---
---