1. 代码规范细则制定
- 基础规范:
- 语法:采用ESLint结合Prettier,以官方推荐的Vue风格为基础,定义代码缩进(如2个空格)、分号使用(不使用分号)等基础语法规则,保证代码风格统一。例如,统一使用单引号,对象属性使用驼峰命名法。
- 文件结构:制定清晰的目录结构,如
src/components
存放组件,src/views
存放页面视图组件,src/store
存放Vuex相关代码等。每个组件文件夹内包含.vue
文件、index.js
用于组件导出(若有需要),以及可能的styles
文件夹存放局部样式。
- 组件开发规范:
- 组件命名:遵循帕斯卡命名法,如
MyComponent.vue
,并根据业务模块划分,例如用户模块的组件命名以User
开头,如UserList.vue
、UserDetail.vue
。
- 组件通信:规定父子组件通信优先使用props和$emit,兄弟组件通信通过Vuex或事件总线(适用于简单场景)。在props定义时,明确类型、默认值及必要性,例如:
props: {
title: {
type: String,
default: '',
required: true
}
}
- Vuex规范:
- 模块划分:按业务模块划分Vuex模块,如
userModule
、productModule
等。每个模块有清晰的state、mutations、actions和getters定义。
- Mutation命名:采用动词+名词形式,如
SET_USER_INFO
,Action命名可采用异步操作描述,如FETCH_USER_LIST
。
- 不同小组职责对应规范:
- 前端UI小组:侧重于组件样式和交互规范,如统一的颜色变量定义在
styles/variables.scss
,使用BEM命名规范来写CSS类名,保证组件样式的可维护性和复用性。
- 业务逻辑小组:着重于组件和Vuex逻辑规范,确保业务逻辑清晰,在Action中合理处理异步操作,避免过多逻辑在组件内耦合。
- 数据处理小组:关注API接口调用和数据处理规范,如统一使用Axios进行HTTP请求,在请求拦截器和响应拦截器中处理通用逻辑,如添加token、处理错误码等。
2. 规范推行与持续优化
- 培训与文档:
- 组织新员工入职培训,讲解代码规范,通过实际案例演示规范的代码编写方式。同时,提供详细的代码规范文档,放在团队共享文档平台,方便开发人员随时查阅。文档内容包括规范细则、示例代码以及常见问题解答。
- 定期开展规范回顾会议,特别是在引入新规范或修改规范时,确保所有开发人员理解并掌握。
- 反馈机制:
- 鼓励开发人员在开发过程中发现规范不合理或难以实施的地方,通过内部沟通平台(如Slack、钉钉群)反馈。设立专门的规范维护小组,负责收集反馈信息,定期评估规范的合理性和实用性。
- 根据反馈和项目实际情况,对规范进行优化和更新。每次更新规范后,及时通知所有开发人员,并在文档中记录更新内容和原因。
3. 利用工具和流程保障执行
- 代码检查工具:
- 在项目构建过程中集成ESLint和Prettier,通过
npm scripts
配置脚本,如npm run lint
执行代码检查。在CI/CD流程中,将代码检查作为必经环节,若代码不符合规范,阻止代码合并到主分支。
- 对于Vue组件,使用
vue - cli - service lint
命令进行组件代码检查,确保组件代码质量。
- Git钩子:
- 利用Git钩子(如pre - commit),在代码提交前自动执行代码检查和格式化操作。例如,安装
husky
工具,配置pre - commit钩子执行npm run lint
,若检查不通过,阻止代码提交,提示开发人员修改代码。
- 代码审查:
- 建立代码审查流程,在Pull Request时,要求至少一名资深开发人员进行代码审查。审查过程中,除了检查业务逻辑,重点关注代码是否符合规范。对于不符合规范的代码,要求开发人员修改后重新提交。
- 使用代码审查工具(如GitHub自带的PR审查功能、Gerrit等),方便审查人员批注和讨论代码问题。