戳这里了解《Flutter入门与实战》专栏,持续更新、系统学习!
前言
之前我们讲过 Dart 的命名规范,可以参考:规范代码命名,让你的 Dart 代码阅读起来更愉悦!本篇介绍如何设计合理的名称,包括变量名称,函数名称等等。好代码胜过好注释,通过设计合理的命名能够让代码更易懂。
规则1:保持命名形式的一致性
对于代码中同样的事物使用相同的名称,同时应该遵循用户的习惯用语。很多人写变量名称可能会忘记之前的命名方式,从而又来一个新的名称。比如 Image
对象,可能在 A 文件称之为 image
,在 B 文件又称之为 picture
,这样的话会让人很困惑。最佳的方式是:
- 对于产品层面的实体对象:建议是前后端、数据表都统一实体对象名称;
- 对于各自语言的一些特定的对象或组件,建议开发团队统一实体对象命名规则。
- 不要创造新名词!也许你看得懂,但不代表别人看得懂。
- **不要使用拼音,更不要使用拼音缩写!**中文翻译成英文的时候,挑简单易懂的词汇。
下面是一些命名的对比:
// 正确示例
pageCount // 表示页数的字段
updatePageCount() // 与 pageCount 名称保持一致
toSomething() // 与 Iterable 的 toList() 的写法一致
asSomething() // 与 List 的 toMap() 写法一致
Point // 用户习惯用语
// 错误示例
renumberPages() // 与 pageCount 名称没有一致
convertToSomething() // 与通常的 toX()不一致
wrappedAsSomething() // 与通常的 asX() 不一致
Cartesian // 不是用户的习惯用语
使用大家熟知的用语,能够快速让用户了解所涉及到的只是领域,从而避免了新名词或不熟悉的词汇增加理解代码的难度。
规则2:避免缩写
除非缩写是众所周知的的词汇,否则不要缩写。即便是使用缩写,也应该遵循习惯的大小写规则。
// 正确示例
pageCount
buildRectangles
IOStream
HttpRequest
// 错误示例
numPages // num 缩写不合适
buildRects // Rects 缩写很难和 Rectangles 对应
InputOutputStream // 没有使用简单易懂的缩写
HypertextTransferProtocolRequest // 没有使用简单易懂的缩写