【编程规范】项目规范与约束
2022/12/09 15:18:50
不同的框架有不同的编码风格,比如 Vue 中建议将组件命名为 AddressPicker.vue
,而 Angular 的组件命名风格为 address-picker.components.ts
。
没有一套编码风格可以适配所有项目,但是应该确保在一个项目中只有一种编码风格,并且贯彻到底。
项目结构及文件命名
不同框架有不同的项目结构,这里列出几种。
项目中的目录、文件名大小写,单词是否使用复数形式都要保持统一,避免出现多种风格。
以业务逻辑作为组织标准
例如一个 Nest
项目。
尽可能的将一个业务逻辑相关的内容放到一起,公共内容统一放到 common 目录下,全局配置相关统一放到 config 目录下。
目录名统一小写。
文件名添加功能后缀标明文件功能,多单词文件名用 -
分隔,不使用驼峰式命名。
- src
- module # 业务模块
- upload
- upload.controller.ts
- upload.module.ts
- upload.service.ts
- upload.pipe.ts
- resource
- resource.module.ts
- common # 通用内容
- constant
- router
- router.constant.ts
- service
- config
- config.service.ts
- table
- update
- update.table.ts
- resource
- resource.table.ts
- util
- number
- number.util.ts
- date
- date.util.ts
- middleware
- front
- front.middleware.ts
- user-agent
- user-agent.middleware.ts
- config # 配置信息
- server
- server.config.ts
- database
- database.config.ts
以文件功能作为组织标准
例如一个 Vue
项目。
尽可能的将相同功能的文件放到同一目录下。
目录名统一小写。
组件和 js 全部使用大驼峰风格命名。
- src
- pages
- home
- index.vue
- detail
- index.vue
- components
- model
- Model.vue
- picker
- Picker.vue
- DatePicker.vue
- images
- tabbar
home.jpg
home-lh.jpg
- services
- common
- router
- RouterService.js
- bussiness
- detail
- DetailService.js
- order
- OrderService.js
- styles
- home
- index.css
- detail
- index.css
class 类
不要导出默认模块
尽量避免使用
export default
直接导出一个默认模块,导出默认模块时,导入方可自定义名称:- /module/a.js
export default { name: "zhang", };
对于模块 a.js,可以用以下任何命令导入:
import a from "./a.js"; import b from "./a.js"; import c from "./a.js";
建议
导出具体的属性
export const name = "zhang";