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ū)留下問題挽霉,一起探討