命名规范
AaBb 类规范,首字母大写驼峰命名法,例如 IsClassName,常用于类的命名。
aaBb 类规范,首字母小写驼峰命名法,例如 isParameterName,常用于常量以及变量命名。
aa_bb 类规范,小写字母下划线连接法,例如 is_a_flutter_file_name,常用于文件及文件夹命名。
注释规范
注释的目的是生成我们需要的文档,从而增强项目的可维护性
单行注释
单行注释主要是“ // ”这类标示的注释方法,这类注释与其他各类语言使用的规范一致。单行注释主要对于单行代码逻辑进行解释,为了避免过多注释,主要是在一些理解较为复杂的代码逻辑上进行注释。
多行注释
在 Dart 中由于历史原因(前后对多行注释方式进行了修改)有两种注释方式,一种是 /// ,另外一种则是 / … / 或者 /…/ ,这两种都可以使用。/*…/ 和 /…*/ 这种块级注释方式在其他语言(比如 JavaScript )中是比较常用的,但是在 Dart 中我们更倾向于使用 /// ,后续我们所有的代码都按照这个规范来注释。
import 'package:flutter/material.dart';
/// APP 首页入口
///
/// 本模块函数,加载状态类组件HomePageState
class HomePage extends StatefulWidget {
@override
createState() => new HomePageState();
}
/// 首页有状态组件类
///
/// 主要是获取当前时间,并动态展示当前时间
class HomePageState extends State<HomePage> {
/// 获取当前时间戳
///
/// [prefix]需要传入一个前缀信息
/// 返回一个字符串类型的前缀信息:时间戳
String getCurrentTime(String prefix) {
}
/// 有状态类返回组件信息
@override
Widget build(BuildContext context) {
}
}
注释文档生成
根据上面的代码注释内容,我们利用一个官方工具来将当前项目中的注释转化为文档。该工具的执行命令在 Dart 执行命令的同一个目录下,如果你在课时 03 中已经添加了 dart 命令行工具,那么该工具就可以直接使用了,如果没有则需要按照 03 课时中的方法,重新配置 dart 的运行命令的环境变量,这里主要演示下通过规范化的代码注释生成的文档。
打开命令行工具进入当前项目,或者在 Android Studio 点击界面上的 Terminal 打开命令行窗口,运行如下命令。
dartdoc
运行结束后,会在当前项目目录生成一个 doc 的文件夹。在生成文件夹中,可以直接打开 doc/api/index.html 文件,你就会看到如图 1 所示的文档界面。
库引入规范
Dart 为了保持代码的整洁,规范了 import 库的顺序。将 import 库分为了几个部分,每个部分使用空行分割。分为 dart 库、package 库和其他的未带协议头(例如下面中的 util.dart )的库。其次相同部分按照模块的首字母的顺序来排列
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:two_you_friend/pages/home_page.dart';
import 'util.dart';
代码美化
在 Dart 中同样有和前端一样的工具 pritter ,在 Dart 中叫作 dartfmt ,该工具和 dartdoc 一样,已经包含在 Dart SDK 中,因此可以直接运行如下命令检查是否生效。
dartfmt -h
看下如何应用工具来规范和美化我们的代码结构
dartfmt
dartfmt 工具的规范包括了以下几点:
使用空格而不是 tab;
在一个完整的代码逻辑后面使用空行区分;
二元或者三元运算符之间使用空格;
在关键词 , 和 ; 之后使用空格;
一元运算符后请勿使用空格;
在流控制关键词,例如 for 和 while 后,使用空格区分;
在 ( [ { } ] ) 符号后请勿使用空格;
在 { 后前使用空格;
使用 . 操作符,从第二个 . 符号后每次都使用新的一行。
其他规范可以参考 dartfmt 的官网。了解完以上规范后