Flutter 命名規(guī)范

1 Flutter 命名規(guī)范

AaBb 類規(guī)范

首字母大寫駝峰命名法 , 例如IsClassName 常用語類名字

aaBb

首字母小寫駝峰命名法 鹃彻,如isParameterName 常用語常量和變量命名

aa_bb

小寫字母下劃線連結(jié)法 例如 is_a_flutter_file_name 常用于文件及文件夾命名

2 注釋

  • 單行注視

    // 與其它語言注釋規(guī)范一致熙暴,

    主要用于注釋對(duì)于單行代碼邏輯進(jìn)行注釋秒咨,為了避免過多注釋

    主要是在一些理解較為復(fù)雜的代碼邏輯上進(jìn)行注釋

  • 多行注釋

    一種是 ///

    另一種是 /** ......**/

    這倆種都可以使用,在dart推薦使用 ///

    一般用于注釋類和方法

    ///APP首頁(yè)入口
    ///
    ///本模塊函數(shù)计呈,加載狀態(tài)類組件HomePageState
    class HomePage extends StatefulWidget {
      @override
      createState()=>new HomePageState();
    }
    
    ///首頁(yè)有狀態(tài)組件類
    ///
    ///主要是獲取當(dāng)前啊時(shí)間砰诵,并動(dòng)態(tài)展示當(dāng)前時(shí)間
    class HomePageState extends State<HomePage> {
      ///獲取當(dāng)前時(shí)間戳
      ///
      ///[prefix]需要傳入一個(gè)前綴信息
      ///返回一個(gè)字符串類型的前綴信息: 時(shí)間戳
      getCurrentTime(String prefix){}
      
      ///有狀態(tài)返回組件信息
      @override
      Widget build(BuildContext context){}
    }
    

3 文檔工具

將注釋形成文檔, 使用dart SDK里的命令dartdoc

NOTE:這個(gè)命令需要在環(huán)境變量里配置dart SDK路徑

dartdoc

執(zhí)行完以后捌显,會(huì)在項(xiàng)目當(dāng)前目錄生成一個(gè)doc文件夾茁彭, 里邊有一個(gè)api目錄下的index.html,

4 庫(kù)引入規(guī)范

dart為了保持代碼整潔, 規(guī)范了import庫(kù)的順序扶歪。將import庫(kù)分了幾個(gè)部分

每個(gè)部分用空行分割

  • dart庫(kù)
  • package庫(kù)
  • 其它未帶協(xié)議頭的的庫(kù)

其次是相同部分按照模塊的首字母順序來排列

import 'dart:developer';
 
import 'package:flutter/material.dart';
import 'package:two_you_friend/pages/home_page.dart';

import 'util.dart';

5 代碼美化

在dart中理肺, 使用dartfmt ,這個(gè)也在dart sdk里, 需要配置dart的sdk路徑

在終端上使用 dartfmt -h

dartfmt -w --fix lib/

-w重寫 --fix修復(fù) 在lib目錄下的文件

這個(gè)工具的規(guī)范包括以下幾點(diǎn)

  • 使用空格而不是tab
  • 在一個(gè)完整的代碼邏輯后面使用空行區(qū)分
  • 二元或者三元運(yùn)算符之間使用空格
  • 在關(guān)鍵詞善镰,和妹萨;之后使用空格
  • 一元運(yùn)算符后請(qǐng)勿使用空格
  • 在流程控制關(guān)鍵詞, 例如for和while后炫欺,使用空格區(qū)分
  • 在([{}])符號(hào)后請(qǐng)勿使用空格
  • 在{ 后使用空格
  • .操作符乎完,從第二個(gè).符號(hào)后每次都使用新的一行

參考地址 dartfmt官網(wǎng)

6 工具化 《保證代碼的質(zhì)量》

在dart中也有和eslint一樣的工具 dartanalyzer來保證代碼質(zhì)量

該工具也在dart sdk中,

6.1 使用方法

? 在項(xiàng)目根目錄新建一個(gè)analysis_options.yaml文件

? 然后在文件中按照規(guī)范填寫你需要執(zhí)行的規(guī)則檢查代碼

? 現(xiàn)有規(guī)則可以參考 Dart linter rules規(guī)范

6.2 第三方庫(kù)模版

? 為了方便使用品洛,可以使用第三方已經(jīng)配置好的規(guī)范模版树姨,倆個(gè)庫(kù)

  • pedantic
  • effective_dart

可以參考這倆個(gè)庫(kù)使用, 在我們項(xiàng)目中桥状,使用它們倆者之一帽揪, 在項(xiàng)目pubspec.yaml中添加倆行配置

dependencies:
    flutter:
    sdk:flutter
    
    # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2
dev_dependencies:
  flutter_test:
    sdk: flutter
  pedantic: ^1.8.0
    

可以在yaml點(diǎn) pub get去下載

也可以在終端 進(jìn)入當(dāng)前項(xiàng)目執(zhí)行 flutter pub upgrade去執(zhí)行


配置完成后, 在新增的analysis_option.yaml文件中新增加如下配置

include: package:pedantic/analysis_options.1.8.0.yaml

不滿足第三方的模版辅斟,還可以增加自己需要的

include: package:pedantic/analysis_options.1.8.0.yaml
analyzer:
  strong-mode:
    implicit-casts: false
linter:
  rules:
    # STYLE
    - camel_case_types
    - camel_case_extensions
    - file_names
    - non_constant_identifier_names
    - constant_identifier_names # prefer
    - directives_ordering
    - lines_longer_than_80_chars # avoid
    # DOCUMENTATION
    - package_api_docs # prefer
    - public_member_api_docs # prefer

增加完上邊的配置后台丛, 執(zhí)行命令

dartanalyzer lib

對(duì)大家有幫助,點(diǎn)個(gè)贊??, 歡迎評(píng)論區(qū)留下問題挽霉,一起探討


參考資料

dartTools

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市变汪,隨后出現(xiàn)的幾起案子侠坎,更是在濱河造成了極大的恐慌,老刑警劉巖裙盾,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件实胸,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡番官,警方通過查閱死者的電腦和手機(jī)庐完,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來徘熔,“玉大人门躯,你說我怎么就攤上這事】崾Γ” “怎么了讶凉?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)山孔。 經(jīng)常有香客問我懂讯,道長(zhǎng),這世上最難降的妖魔是什么台颠? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任褐望,我火速辦了婚禮,結(jié)果婚禮上串前,老公的妹妹穿的比我還像新娘瘫里。我一直安慰自己,他們只是感情好酪呻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布减宣。 她就那樣靜靜地躺著,像睡著了一般玩荠。 火紅的嫁衣襯著肌膚如雪漆腌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天阶冈,我揣著相機(jī)與錄音闷尿,去河邊找鬼。 笑死女坑,一個(gè)胖子當(dāng)著我的面吹牛填具,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼劳景,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼誉简!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起盟广,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤闷串,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后筋量,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烹吵,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年桨武,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肋拔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡呀酸,死狀恐怖凉蜂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情七咧,我是刑警寧澤跃惫,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站艾栋,受9級(jí)特大地震影響爆存,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蝗砾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一先较、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悼粮,春花似錦闲勺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至申尤,卻和暖如春癌幕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昧穿。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工勺远, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人时鸵。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓胶逢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子初坠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355