diff --git a/checkstyle.xml b/checkstyle.xml new file mode 100644 index 0000000..0a3aef1 --- /dev/null +++ b/checkstyle.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/standards/README.md b/docs/standards/README.md new file mode 100644 index 0000000..75edc9e --- /dev/null +++ b/docs/standards/README.md @@ -0,0 +1,31 @@ +# RuoYi-Vue 编码规范 + +## 文档清单 + +1. [Java 编码规范](java-coding-standards.md) +2. [前端编码规范](frontend-coding-standards.md) +3. [Git 提交规范](git-commit-standards.md) +4. [Code Review 检查清单](code-review-checklist.md) + +## 快速开始 + +### 前端开发 +```bash +cd ruoyi-ui-next +npm install +npm run lint # 检查代码规范 +npm run format # 格式化代码 +``` + +### 后端开发 +```bash +# 使用 IDE 插件 +# - IntelliJ: Checkstyle-IDEA 插件 +# - VS Code: Checkstyle for Java 插件 +``` + +## 工具配置 + +- 前端:ESLint + Prettier + Husky +- 后端:Checkstyle + SpotBugs +- Git:Commitlint + Husky diff --git a/docs/standards/code-review-checklist.md b/docs/standards/code-review-checklist.md new file mode 100644 index 0000000..4e18459 --- /dev/null +++ b/docs/standards/code-review-checklist.md @@ -0,0 +1,42 @@ +# RuoYi-Vue Code Review 检查清单 + +## 1. 代码质量 + +- [ ] 代码是否遵循编码规范? +- [ ] 命名是否清晰有意义? +- [ ] 方法是否过长(>50 行)? +- [ ] 类是否过大(>500 行)? +- [ ] 是否有重复代码? + +## 2. 功能正确性 + +- [ ] 功能是否按需求实现? +- [ ] 边界条件是否处理? +- [ ] 异常处理是否完整? +- [ ] 是否有潜在 Bug? + +## 3. 性能 + +- [ ] 是否有性能问题? +- [ ] 数据库查询是否优化? +- [ ] 是否有不必要的循环? +- [ ] 缓存使用是否合理? + +## 4. 安全 + +- [ ] 是否有 SQL 注入风险? +- [ ] 是否有 XSS 攻击风险? +- [ ] 敏感信息是否加密? +- [ ] 权限校验是否完整? + +## 5. 测试 + +- [ ] 是否有单元测试? +- [ ] 测试覆盖率是否足够? +- [ ] 测试用例是否覆盖边界条件? + +## 6. 文档 + +- [ ] 是否更新了相关文档? +- [ ] API 注释是否完整? +- [ ] 复杂逻辑是否有注释说明? diff --git a/docs/standards/frontend-coding-standards.md b/docs/standards/frontend-coding-standards.md new file mode 100644 index 0000000..7968c6c --- /dev/null +++ b/docs/standards/frontend-coding-standards.md @@ -0,0 +1,118 @@ +# RuoYi-Vue 前端编码规范 + +## 1. 命名规范 + +### 1.1 文件命名 +- Vue 组件:PascalCase,如 `UserList.vue` +- TypeScript 文件:camelCase,如 `userApi.ts` +- 样式文件:kebab-case,如 `user-list.scss` + +### 1.2 组件命名 +- 使用多单词,避免与 HTML 元素冲突:`UserList`、`AccountCard` +- 使用 PascalCase:`` + +### 1.3 变量命名 +- 使用 camelCase:`const userList = ref([])` +- 常量使用 UPPER_SNAKE_CASE:`const MAX_PAGE_SIZE = 100` + +## 2. Vue 组件规范 + +### 2.1 组件结构 +```vue + + + + + +``` + +### 2.2 Composition API +- 优先使用 `