--- 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)**。如果代码本身足够清晰,则无需注释。 --- **当你为我生成代码时,请先自检是否违反了上述规则。如果我提交的代码不符合这些原则,请主动提示并给出重构建议。** --- ---