From 83a6373b57c9ddd6f3e97fb3c587091f9f7b4902 Mon Sep 17 00:00:00 2001 From: Sunbreak Date: Tue, 22 Mar 2022 14:42:59 +0800 Subject: [PATCH] Add Chinese version README-CN.md --- README-CN.md | 370 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 + 2 files changed, 372 insertions(+) create mode 100644 README-CN.md diff --git a/README-CN.md b/README-CN.md new file mode 100644 index 00000000..24c7635c --- /dev/null +++ b/README-CN.md @@ -0,0 +1,370 @@ +

+ + Naming cheatsheet + +

+ +[English](./README.md) | 简体中文 + +# 命名小抄 + +- [英语语言](#英语语言) +- [命名惯例](#命名惯例) +- [S-I-D](#s-i-d) +- [避免缩略语](#避免缩略语) +- [避免上下文重复](#避免上下文重复) +- [反映预期结果](#反映预期结果) +- [给函数命名](#给函数命名) + - [A/HC/LC模式](#ahclc模式) + - [动作](#动作) + - [上下文](#上下文) + - [前缀](#前缀) +- [单数和复数](#单数和复数) + +--- + +为事物命名是很困难的。这张表试图让它变得更容易。 + +虽然这些建议可以适用于任何编程语言,但我将用JavaScript来说明它们的实际情况。 + +## 英语语言 + +在给你的变量和函数命名时,使用英语语言。 + +```js +/* Bad */ +const primerNombre = 'Gustavo' +const amigos = ['Kate', 'John'] + +/* Good */ +const firstName = 'Gustavo' +const friends = ['Kate', 'John'] +``` + +> 不管你喜不喜欢,英语是编程中的主流语言:所有编程语言的语法都是用英语写的,还有无数的文档和教育材料也是如此。通过用英语写代码,你可以极大地提高代码的凝聚力。 + +## 命名惯例 + +选择**一个**命名惯例并遵循它。它可以是 `camelCase`,`PascalCase`,`snake_case`,或其他任何东西,只要它保持一致。许多编程语言在命名规则方面有自己的传统;查看你的语言的文档或研究Github上一些流行的存储库 + +```js +/* Bad */ +const page_count = 5 +const shouldUpdate = true + +/* Good */ +const pageCount = 5 +const shouldUpdate = true + +/* Good as well */ +const page_count = 5 +const should_update = true +``` + +## S-I-D + +一个名字必须是 _简短的_ ,_直观的_ 和 _描述性的_ 。 + +- **短**。一个名字必须不需要花很长时间来输入,因此,要记住。 +- **直观**。名字必须读起来自然,尽可能地接近普通话。 +- **描述性**。一个名字必须以最有效的方式反映它所做的/所拥有的东西。 + +```js +/* Bad */ +const a = 5 // "a" could mean anything +const isPaginatable = a > 10 // "Paginatable" sounds extremely unnatural +const shouldPaginatize = a > 10 // Made up verbs are so much fun! + +/* Good */ +const postCount = 5 +const hasPagination = postCount > 10 +const shouldPaginate = postCount > 10 // alternatively +``` + +## 避免缩略语 + +**不要**使用缩略语。它们只会降低代码的可读性。找到一个简短的、描述性的名字可能很难,但缩略语并不是不这样做的借口。 + +```js +/* Bad */ +const onItmClk = () => {} + +/* Good */ +const onItemClick = () => {} +``` + +## 避免上下文重复 + +一个名字不应该与它所定义的上下文重复。如果不会降低名字的可读性的话,一定要把上下文从名字中删除。 + +```js +class MenuItem { + /* Method name duplicates the context (which is "MenuItem") */ + handleMenuItemClick = (event) => { ... } + + /* Reads nicely as `MenuItem.handleClick()` */ + handleClick = (event) => { ... } +} +``` + +## 反映预期结果 + +一个名字应该反映出预期的结果。 + +```jsx +/* Bad */ +const isEnabled = itemCount > 3 +return