Flutter 命名規(guī)范記錄

首先,附上鏈接:https://dart.dev/guides/language/effective-dart/style。
用Flutter寫了一個(gè)項(xiàng)目,也迭代了一個(gè)版本,代碼評(píng)審也開了兩次,雖說(shuō)還是不夠完善,但是可以慢慢來(lái),慢慢總結(jié)、慢慢優(yōu)化!

一、標(biāo)識(shí)符
Dart中有三種標(biāo)識(shí)符:
UpperCamelCase:大寫名字,每個(gè)單詞的第一個(gè)字母要大寫,包括第一個(gè)。
lowerCamelCase:小寫名稱,每個(gè)單詞的第一個(gè)字母要大寫,除了第一個(gè)是小寫的,即使它是首字母縮略詞。
lowercase_with_underscores:僅使用小寫字母,首字母縮寫,并使用_分隔單詞。

1、類,枚舉類型,typedef和類型參數(shù)應(yīng)將每個(gè)單詞的首字母大寫(包括第一個(gè)單詞),并且不使用分隔符。

class SliderMenu { ... }

class HttpRequest { ... }

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

包括打算在元數(shù)據(jù)注釋中使用的類

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

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

@Foo()
class B { ... }

如果注釋類的構(gòu)造函數(shù)不帶任何參數(shù),則可能要為其創(chuàng)建一個(gè)單獨(dú)的lowerCamelCase常量。

const foo = Foo();

@foo
class C { ... }

與類型一樣,擴(kuò)展名應(yīng)大寫每個(gè)單詞的首字母(包括第一個(gè)單詞),并且不使用分隔符。

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

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

2、(lowercase_with_underscores)請(qǐng)使用來(lái)命名庫(kù),程序包,目錄和源文件:一些文件系統(tǒng)不區(qū)分大小寫,因此許多項(xiàng)目要求文件名全部為小寫。使用分隔符允許名稱仍以該形式可讀。使用下劃線作為分隔符可確保名稱仍然是有效的Dart標(biāo)識(shí)符,如果該語(yǔ)言以后支持符號(hào)導(dǎo)入,則可能會(huì)有所幫助。


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

3、(lowerCamelCase)類成員,頂級(jí)定義,變量,參數(shù)和命名參數(shù)應(yīng)將除第一個(gè)單詞以外的每個(gè)單詞的首字母大寫,并且不使用分隔符。


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

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

4、縮寫詞和縮寫詞的首字母大寫要長(zhǎng)于單詞之類的兩個(gè)字母。
大寫的首字母縮寫詞可能很難讀懂,多個(gè)相鄰的首字母縮寫詞可能導(dǎo)致名稱不明確。例如,給定一個(gè)以開頭的名稱HTTPSFTP,則無(wú)法分辨它是指HTTPS FTP還是HTTP SFTP。

為避免這種情況,首字母縮寫詞和縮寫詞都像普通單詞一樣大寫。

例外: IO(輸入/輸出)之類的兩個(gè)字母的首字母大寫:IO。另一方面,ID(標(biāo)識(shí))之類的兩個(gè)字母的縮寫仍像常規(guī)單詞一樣大寫Id。


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

5、不要使用前綴字母。

BCPL時(shí)代出現(xiàn)了匈牙利表示法和其他方案,當(dāng)時(shí)編譯器沒(méi)有做很多事情來(lái)幫助您理解代碼。由于Dart可以告訴您聲明的類型,范圍,可變性和其他屬性,因此沒(méi)有理由在標(biāo)識(shí)符名稱中編碼這些屬性。

截屏2020-10-27下午5.22.32.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容