总结
- 身份标识
- 类型命名使用UpperCamelCase。
- 库和源文件命名使用lowercase_with_underscores。
- 导入包重命名命名使用lowercase_with_underscores。
- 其他标识符命名使用lowerCamelCase。
- 常量命名建议使用lowerCamelCase。
- 超过两位的首字母缩略词和缩写词按普通单词处理。
- 不要使用前缀字母
- 顺序
- “dart:”包的导入顺序在所有其他包之前(dart sdk的内库)。
- “package:”包的导入顺序在其他相对路径之前(flutter内的库)。
- 建议外部的“package:”包导入顺序在其他包之前(第三方库)。
- 在所有导入后,再在独立的部分中导出。
- 每部分按字母顺序排序。
- 格式化
- 请使用dartfmt格式化代码。
- 考虑更改代码以使其更易于格式化。
- 避免单行超过80个字符。
- 请对所有流程控制结构使用花括号。
- 静态资源放置位置
- lib/assets文件夹下放置静态图片资源(图标命名用icon_name,背景图片用bg_name)。
- lib/components文件夹下放置自定义组件包。
- lib/pages文件夹下放置项目页面。
- lib/utils文件夹下放置常用方法(如http请求的request.dart文件)。
身份标识
标识符在Dart中有三种风格。
-
UpperCamelCase
大写字母开头的驼峰式,每个单词的第一个字母大写,包括第一个字母。 -
lowerCamelCase 小写字母开头的驼峰式,
第一个字母小写,即使它是首字母缩略词,其余每个单词的第一个字母都大写。 -
lowercase_with_underscores
只使用小写字母,即使是首字母缩略词,每个单词用_分隔
。
类型命名使用UpperCamelCase
包括类,枚举,typedef定义的函数名、注解名。
当你的注解是常量时, 使用lowerCamelCase命名。
库和源文件命名使用lowercase_with_underscores
某些文件系统不区分大小写,因此许多项目要求文件名全部为小写。使用分隔字符允许名称仍以该形式可读。使用下划线作为分隔符可确保名称仍然是有效的Dart标识符,如果该语言以后支持符号导入,则可能会有所帮助。
导入包重命名使用lowercase_with_underscores
导入包用as进行重命名时用lowercase_with_underscores。
请使用命名其他标识符lowerCamelCase
包括类成员,顶级定义,变量,参数和命名参数。
常量命名建议使用lowerCamelCase
超过两位的首字母缩略词和缩写词按普通单词处理
大写的首字母缩略词可能难以阅读,而多个相邻的首字母缩略词可能会导致模糊的名称。例如,给定一个以HTTPSFTP
开头的名称,无法判断它是指HTTPS FTP还是HTTP SFTP。
为了避免这种情况,首字母缩略词和缩写词像普通词一样处理,除了两个字母的首字母缩略词。(像ID和Mr.这样的两个字母缩写仍然像文字一样大写。)
不要使用前缀字母
匈牙利命名法中使用缩写开头的小写驼峰命名法时,是因为当时编辑器无法很好帮助理解你的代码,这样命名法能够很好的帮助你去理解代码。现在dart语言中,可以很好的理解声明的类型、范围、可变性和其他属性。
顺序
为了使文件的序言保持整洁,我们有一个指令应该出现的规定顺序。每个“部分”应该用空行分隔。
“dart:”包的导入顺序在所有其他包之前
“package:”包的导入顺序在相对引用路径之前
建议外部的“package:”包的导入顺序在其他包之前
如果你有自己的“package:”包导入,请独立地置于外部包之后。
在所有导入后,再在独立的部分中导出
每部分按字母顺序排序
格式化
请使用dartfmt
格式化代码
在AndriodStudio右键单击.dart文件,然后选择“ 使用Dart样式重新格式化”
考虑更改代码以使其更易于格式化
避免单行超过80个字符
请对所有流程控制结构使用花括号
这里有一个例外:一个if
没有else
子句的语句,其中整个if
语句和内容都在一行。在这种情况下,如果您愿意,可以不用括号。