为保证代码质量、可维护性、安全性与可扩展性,结合项目实际技术栈与目录结构,请在开发过程中严格遵循以下规范。
E:\work\city-life-line项目采用前后端分离架构,以下为当前项目目录结构:
city-life-line
├── html
├── public
├── src
│ ├── api # 接口定义层
│ │ ├── monitor # 监控相关接口
│ │ ├── pipeNetwork # 管网相关接口
│ │ ├── smxyjldczxt # 业务模块接口
│ │ ├── system # 系统管理接口
│ │ ├── tool # 工具接口
│ │ ├── warning # 预警接口
│ │ └── work # 工单接口
│ ├── assets # 静态资源
│ ├── components # 公共组件
│ ├── directive # 自定义指令
│ ├── layout # 布局组件
│ ├── plugins # 插件
│ ├── router # 路由配置
│ ├── store # 状态管理
│ ├── utils # 工具类
│ └── views # 页面视图
│ ├── error # 错误页面
│ ├── monitor # 系统监控
│ ├── portal # 门户
│ ├── subSystem # 子系统业务模块
│ ├── system # 系统管理
│ └── tool # 系统工具
└── vite # Vite 配置
根据项目环境与目录特征,确定技术栈如下:
store 目录)| 目录 | 职责说明 | 开发约束与注意事项 |
|---|---|---|
| views | 页面结构与展示逻辑 | 仅负责页面渲染,业务逻辑应抽离至 API 或 Utils 中 |
| api | 接口请求定义 | 按业务模块划分文件(如 system/user.js);统一使用封装后的请求工具 |
| components | 可复用 UI 组件 | 遵循单一职责原则;组件命名采用 PascalCase (如 UserInfo.vue) |
| store | 全局状态管理 | 模块化管理状态;避免存储临时性或非共享数据 |
| utils | 通用工具函数 | 纯函数开发,避免副作用;添加清晰的 JSDoc 注释 |
| 层级 | 职责说明 | 开发约束与注意事项 |
|---|---|---|
| Controller | 处理 HTTP 请求,响应前端调用 | 不包含业务逻辑,负责参数校验与结果封装 |
| Service | 核心业务逻辑处理 | 复杂业务需拆分方法;事务控制在此层处理 |
| Repository/Mapper | 数据库交互 | 禁止在代码中拼接 SQL;优先使用 ORM 框架特性 |
| Entity/DO | 数据库实体映射 | 禁止直接暴露给前端,需转换为 DTO/VO |
| 类型 | 命名方式 | 示例 | 适用范围 |
|---|---|---|---|
| 文件/组件 | PascalCase | UserProfile.vue |
前端 |
| 变量/函数 | lowerCamelCase | getUserList() |
全栈 |
| 常量 | UPPER_SNAKE_CASE | MAX_RETRY_COUNT |
全栈 |
| CSS 类名 | kebab-case | user-container |
前端 |
| 包名 | 全小写 | com.city.lifeline |
后端 |
类/方法注释:必须添加 Javadoc 或 JSDoc 注释,说明功能、参数及返回值。
/**
* 获取用户信息列表
* @param query 查询条件
* @return 用户列表
*/
public List<UserVO> selectUserList(UserQuery query);
/**
* 获取用户列表
* @param {Object} params - 查询参数
* @returns {Promise} - 异步结果
*/
export function listUser(params) {
return request({ url: '/system/user/list', method: 'get', params })
}
router 中配置权限校验,防止未授权访问。v-html 渲染用户输入内容,确需使用必须先进行转义。javax.validation.constraints.*)。@PreAuthorize)。| 原则 | 说明 |
|---|---|
| 组件化 | 前端页面拆分为独立组件,提高复用性与可维护性 |
| 模块化 | API、Store、Utils 按功能模块划分文件 |
| RESTful | 后端接口遵循 RESTful 设计风格 |
| DRY | 避免重复代码,公共逻辑封装为 Utils 或 Service |
| KISS | 保持代码简洁,避免过度设计 |