Flutter 命名规范记录

首先,附上链接:https://dart.dev/guides/language/effective-dart/style
用Flutter写了一个项目,也迭代了一个版本,代码评审也开了两次,虽说还是不够完善,但是可以慢慢来,慢慢总结、慢慢优化!

一、标识符
Dart中有三种标识符:
UpperCamelCase:大写名字,每个单词的第一个字母要大写,包括第一个。
lowerCamelCase:小写名称,每个单词的第一个字母要大写,除了第一个是小写的,即使它是首字母缩略词。
lowercase_with_underscores:仅使用小写字母,首字母缩写,并使用_分隔单词。

1、类,枚举类型,typedef和类型参数应将每个单词的首字母大写(包括第一个单词),并且不使用分隔符。

class SliderMenu { ... }

class HttpRequest { ... }

typedef Predicate<T> = bool Function(T value);

包括打算在元数据注释中使用的类

class Foo {
  const Foo([arg]);
}

@Foo(anArg)
class A { ... }

@Foo()
class B { ... }

如果注释类的构造函数不带任何参数,则可能要为其创建一个单独的lowerCamelCase常量。

const foo = Foo();

@foo
class C { ... }

与类型一样,扩展名应大写每个单词的首字母(包括第一个单词),并且不使用分隔符。

extension MyFancyList<T> on List<T> { ... }

extension SmartIterable<T> on Iterable<T> { ... }

2、(lowercase_with_underscores)请使用来命名库,程序包,目录和源文件:一些文件系统不区分大小写,因此许多项目要求文件名全部为小写。使用分隔符允许名称仍以该形式可读。使用下划线作为分隔符可确保名称仍然是有效的Dart标识符,如果该语言以后支持符号导入,则可能会有所帮助。


截屏2020-10-27下午5.14.38.png

3、(lowerCamelCase)类成员,顶级定义,变量,参数和命名参数应将除第一个单词以外的每个单词的首字母大写,并且不使用分隔符。


截屏2020-10-27下午5.14.55.png

截屏2020-10-27下午5.15.10.png

4、缩写词和缩写词的首字母大写要长于单词之类的两个字母。
大写的首字母缩写词可能很难读懂,多个相邻的首字母缩写词可能导致名称不明确。例如,给定一个以开头的名称HTTPSFTP,则无法分辨它是指HTTPS FTP还是HTTP SFTP。

为避免这种情况,首字母缩写词和缩写词都像普通单词一样大写。

例外: IO(输入/输出)之类的两个字母的首字母大写:IO。另一方面,ID(标识)之类的两个字母的缩写仍像常规单词一样大写Id。


截屏2020-10-27下午5.22.32.png

5、不要使用前缀字母。

BCPL时代出现了匈牙利表示法和其他方案,当时编译器没有做很多事情来帮助您理解代码。由于Dart可以告诉您声明的类型,范围,可变性和其他属性,因此没有理由在标识符名称中编码这些属性。

截屏2020-10-27下午5.22.32.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容