# Contract-Manager 项目规则 ## 技术栈规范 ### server 模块 - Java 21 - Spring Boot 3.3.7 - Spring Data JPA 3.3.7 - MySQL 8.0.33 - Lombok 1.18.32 - POI 5.2.5 - PDFBox 3.0.1 - Redis ### client 模块 - Java 21 - JavaFX 21 - ControlsFX 11.1.2 - Lombok 1.18.32 - caffeine 3.1.8 - .fxml 界面UI, 放置于 /client/src/main/resources/ui/ 目录下 - websocket 与 server 模块通信 ### common 模块 - Java 21 - Lombok 1.18.32 ## 文件命名规范 - Java类名:使用驼峰命名法,首字母大写,如 `ContractService.java` - 接口名:使用驼峰命名法,首字母大写,以I开头,如 `IContractService.java` - 控制器类名:以Controller结尾,如 `ContractController.java` - 服务类名:以Service结尾,如 `ContractService.java` - 实体类名:使用驼峰命名法,首字母大写,如 `Contract.java` - FXML文件:使用小写字母和下划线,如 `contract_view.fxml` - SQL文件:表名使用大写和下划线,如 `CONTRACT_TYPE_LOCAL.sql` ## 目录结构规范 - 源代码位于 `src/main/java` 目录 - 资源文件位于 `src/main/resources` 目录 - 测试代码位于 `src/test` 目录 - 数据库脚本位于 `docs/db` 目录 ## 数据库规范 - 表名使用大写字母和下划线,如 `COMPANY_VENDOR_FILE_TYPE_LOCAL` - 字段名使用大写字母和下划线,如 `CREATE_DATE` - 主键命名为 `ID` - 外键命名格式为 `[关联表名]_ID` - 唯一约束命名格式为 `UK_[表名缩写]_[字段名]` ## 代码规范 - 使用Lombok注解简化代码,如 `@Data`、`@Slf4j` 等 - 类和方法应有适当的JavaDoc注释 - 变量命名应清晰表达其含义 - 避免魔法数字,使用常量替代 - 异常处理使用统一的异常处理机制 ## 忽略文件 ignore: - .idea - target - *.iml - .gitignore - .gitattributes - out/ - *.log - build/ - .DS_Store - *.class