dart系列之:dart程式碼最佳實踐

flydean發表於2022-01-04

簡介

每種語言都有自己的程式碼風格,這種程式碼風格是跟語言特性息息相關的。如果在編碼的過程中遵循這種統一的編碼規則,會給我們的業務帶來非常多的便利。

同樣的,對應dart而已,也有屬於自己的編碼風格,一起來看看吧。

命名規則

一般來說,這個世界上有三種命名規則,分別是UpperCamelCase,lowerCamelCase和lowercase_with_underscores.

UpperCamelCase表示的是駝峰格式,也就是首字母大寫,其他的字母小寫。

而lowerCamelCase也是駝峰格式,不同的是它的第一個單詞的首字母是小寫的。

lowercase_with_underscores則是將單詞用下劃線進行連線。

對於類,typedef,列舉這些型別,一般都使用的是UpperCamelCase模式:

class ClassRoom {}

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

對於類的例項來說,使用lowerCamelCase:

const classRoom = ClassRoom();

對於方法名來說,也使用lowerCamelCase:

void main() {
}

之前我們講到了dart 2.7引入的extension,extension也需要使用UpperCamelCase:

extension StringCompare on String { ... }

對於libraries, packages, 目錄和原始檔來說,使用lowercase_with_underscores,如下所示:

library common_convert.string_convert;

import 'lib_one.dart';
import 'lib_two.dart';

如果要將import的lib進行重新命名,則需要使用lowercase_with_underscores,如下所示:

import 'lib_one.dart' as lib_one;

對於某些回撥函式中的引數,如果並沒有使用到的話,則可以用_來代替:

futureOfVoid.then((_) {
  print('Operation complete.');
});

如果是private屬性,則推薦在名字前面加上_,表示它是一個私有值。

import中的順序

在dart中,我們需要使用到其他的package,一般來說我們在編碼過程中並不會特別注意到import的順序。

不過dart對於import的順序也是有推薦的。

首先 “dart:”,需要放在所有其他的import之前:

import 'dart:html';

import 'package:bar/bar.dart';

而"package:" 需要放在內部專案引用之前:

import 'package:foo/foo.dart';

import 'util.dart';

如果需要匯出的話,export需要和import區分開:

import 'src/foo_bar.dart';

export 'src/error.dart';

然後按照上面提到的順序對具體的import按字母表的順序進行排序。

格式化

對於dart來說,dart語言本身是不識別空格的,但是對於人類來說,需要通過空格來格式化程式碼,從而達到可良好閱讀的目的。

為了統一格式,dart提供了dart format命令.

雖然dart format命令為你做了99%的工作,但是還有1%的工作是你需要自己做的 。

比如:一行不超過80個字元,所有的流控制語句都用大括號括起來等等其他一些要注意的工作。

總結

以上就是dart中的程式碼風格總結。

本文已收錄於 http://www.flydean.com/27-dart-style/

最通俗的解讀,最深刻的乾貨,最簡潔的教程,眾多你不知道的小技巧等你來發現!

歡迎關注我的公眾號:「程式那些事」,懂技術,更懂你!

相關文章