原则:
Your code must be easily understandable for humans
通用规范
- 函数使用动词/动宾/主动宾结构。避免太短、神秘或者大段注释
1 2 3 4
| function inv (user) { }
function inviteUser (emailAddress) { }
|
- 名字需要能表明具体功能,不要过于抽象(比如 type / category)。不必担心过长的变量名,但是也不推荐太长的命名(超过50个字符)
1 2 3 4 5 6 7 8
| let elapsed let daysSinceModification
let type, kind, variant, classification, subcategory let packagingType, AgeGroup
function addDate(date, month) { function addMonthToDate(date, month) {
|
- 使用有意义、可读性好的字符,不要增加额外的、不必要的定语 (不推荐匈牙利命名法)
1 2
| let nameString let name
|
1 2
| let fName, lName let firstName, lastName
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| var locations = ['Austin', 'New York', 'San Francisco']; locations.forEach((l) => { ... dispatch(l); });
var locations = ['Austin', 'New York', 'San Francisco']; locations.forEach((location) => { ... dispatch(location); });
|
- 避免重复描述, 当类/对象名已经有意义时,对其变量进行命名不需要再次重复。
1 2 3 4 5 6 7 8 9 10 11 12
| var Car = { carMake: 'Honda', carModel: 'Accord', carColor: 'Blue' };
var Car = { make: 'Honda', model: 'Accord', color: 'Blue' };
|
1 2 3 4 5 6
| getUserInfo() getClientData() getCustomerRecord()
getUser()
|
命名约定(变量、函数、类)
1
| let loadingData = ajax.get('url');
|
前缀 |
作用 |
返回值 |
can |
判断是否可执行某个动作 ( 权限 ) |
函数返回一个布尔值。true:可执行;false:不可执行 |
has |
判断是否含有某个值 |
函数返回一个布尔值。true:含有此值;false:不含有此值 |
is |
判断是否为某个值 |
函数返回一个布尔值。true:为某个值;false:不为某个值 |
get |
获取某个值 |
函数返回一个非布尔值 |
set |
设置某个值 |
无返回值、返回是否设置成功或者返回链式对象 |
1 2
| let userList = [] let users = []
|
文件规范(建议)
文件名规范
文件导出的内容与文件名保持一致,所见即所得
React 组件文件名:
(取自 airbnb )
1 2 3 4
| reservation-card.js
ReservationCard.js
|
高阶组件文件名:
(取自 airbnb )
1 2 3 4
| leaveHookHoc.js
withLeaveHook.js
|
markdown 等说明性文件名
函数文件名:
- 文件名与导出的函数名保持一致
1 2 3 4
| escape-test-for-browser.js
escapeTextForBrowser.js
|
文件夹名规范
参考文献
clean code #强烈推荐
15个最佳实践
通用规范
vue 开发规范
前端开发规范
程序命名的一些提示
Comments