国产精品主播叶子闺蜜_三级高清精品国产_99久久精品国产麻豆_国产精品无码免费专区午夜

歡迎您光臨深圳塔燈網絡科技有限公司!
電話圖標 余先生:13699882642

網站百科

為您解碼網站建設的點點滴滴

dart/flutter 中的代碼規范

發表日期:2018-08 文章編輯:小燈 瀏覽次數:1427

文章首發地址: https://www.jianshu.com/p/047eb78dce53

前言

最近看qq群里發的很多代碼截圖,感覺命名規則/文件命名都不符合規范
很多朋友都是從其他語言轉向dart/flutter的,深感語言環境還需要大家共同去維護,建議還是規范化代碼,這樣所有人看著都會舒服
恰好dart語言官方有自己的代碼規范和相關的說明,在dartlang官網上,英文好的建議閱讀原文
連接地址 https://www.dartlang.org/guides/language/effective-dart/style

我這里僅粗略翻譯和加入一些自己的理解

圖片均來自于上述url對應的頁面中
當前dart版本為2.0版本,日期為2018年08月22日
可能會在未來有改動,到時請以最新文檔為準

文檔中圖片的綠色部分為正例,右上角帶good標識
紅色是反例,右上角帶bad標識

標識方案

image.png

在dart有3種常規標識方案
第一個為大寫字母開頭的駝峰式 如 UserInterface每個詞的首字母為大寫
第二個是小寫開頭的駝峰式,如testRun,第一個單詞是小寫,后續每個單詞首字母大寫
第三個是每個單詞均為小寫,以下劃線分隔,如user_response

總結

如果不想往下看具體的圖片和翻譯,直接看這里

文件名: 小寫+下劃線
類型名(類名,函數類型名):大寫開頭駝峰
變量名(包含const final 常量):使用小寫開頭駝峰, 項目有特殊要求 const可以使用大寫+下劃線的方式,如同java中一樣
導包as后的名稱為小寫+下劃線
不要用匈牙利命名法中的kXXXX 這樣的命名方式,應該去掉k
超過兩位的英文縮寫一律按該單詞為普通小寫單詞處理,使用小寫

導包有順序要求,且每"部分"間空行分隔開,每部分內按字母排序,按如下順序排序
dart sdk內的庫
flutter內的庫
第三方庫
自己的庫
相對路徑引用

先全部import再export,不要交替進行

使用dartfmt工具格式化dart文件代碼 dartfmt -w lib/flutter可以用flutter format lib
單行字符建議不要超過80個
流程控制語句無論如何都使用花括號包裹,即使只有單行

格式化個人建議:

建議不要使用idea/as/vscode 的自動儲存格式化作為交付
因為idea/vs有自己的格式化工具,并不是使用的dartfmt,這樣會造成代碼交付格式不統一,寫代碼過程中可以使用以方便提高閱讀性,但每次代碼commit前建議使用dartfmt -w lib/ 來格式化代碼,以便于項目代碼風格的統一,flutter用戶使用 flutter format lib

類型名稱

image.png

適用于類名,注解名,typedef定義的函數名

這里有一個特例,當你的注解是一個const的常量時,使用@foo的方式作為注解

庫名稱,文件名用小寫+下劃線

image.png

使用小寫+下劃線方式命名library,文件名

原因如下:
某些文件系統不區分大小寫,因此許多項目要求文件名全部為小寫。使用分隔字符允許名稱仍以該形式可讀。使用下劃線作為分隔符可確保名稱仍然是有效的Dart標識符

導入時

image.png

當導入包時, 如果涉及到as, 一律使用小寫+下劃線方式

其他標識符

image.png

包含頂級成員,類成員,方法內成員,參數名,命名參數名,一律使用小寫駝峰式

常量名稱

image.png

建議使用小寫駝峰式命名
但是你的項目中如果使用大寫+下劃線分割單詞的方式,則可以繼續使用這種方式
這里有個小說明:最初dart中采用的大寫+下劃線方式,但是后來有一些變量需要修改為非const變量,就需要修改為小寫駝峰式,后一律使用小寫駝峰式

縮寫相關

image.png

超過兩位的使用常規方式,兩位以內使用大寫

在小寫駝峰式中,會出現一些約定俗成的縮寫,如http ftp io等,這些在英文詞法中都應該是大寫,但大寫連續會破壞可讀性,如HTTPSFTP,你不知道是HTTPS FTP 還是 HTTP SFTP,所以采用如上圖綠色的方式來命名

不要使用前綴字母

image.png

匈牙利命名法中使用縮寫開頭的小寫駝峰命名法時,是因為當時編輯器無法很好幫助理解你的代碼,這樣命名法能夠很好的幫助你去理解代碼,現在dart語言中,編輯器可以很好的通過聲明等方式幫你理解你的代碼,故,不要使用前綴字母,如上圖綠色

規定代碼的順序


為了使文件保持整潔,我們有一個規定代碼順序。每個“部分”應該用空行分隔。

image.png

保證dart的導入順序在所有其他包之前


image.png

保證帶包名的引用方式在相對路徑引用之前


image.png

首先import第三方的包
導入自己的包在后面一個單獨的部分


image.png

全部導入完畢后,再export 導出


image.png

每個部分按字母順序排序

格式化

image.png

使用dartfmt 程序來格式化代碼

image.png

單行長度為80字符

可讀性研究表明,長行文字難以閱讀,因為當你移動到下一行的開頭時,你的眼睛必須走得更遠。這就是報紙和雜志使用多列文本的原因。

如果你真的發現自己想要超過80個字符的行,我們的經驗是你的代碼可能過于冗長而且可能更緊湊。主要罪犯通常是VeryLongCamelCaseClassNames。問問自己,“該類型名稱中的每個單詞是否告訴我一些關鍵或防止名稱沖突?”如果不是,請考慮省略它。

流程控制使用花括號

image.png
本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.juherenli.com/17638.html
相關APP開發