Flutter 命名规范
1 Flutter 命名规范
AaBb 类规范
首字母大写驼峰命名法 , 例如IsClassName 常用语类名字
aaBb
首字母小写驼峰命名法 ,如isParameterName 常用语常量和变量命名
aa_bb
小写字母下划线连结法 例如 is_a_flutter_file_name 常用于文件及文件夹命名
2 注释
-
单行注视
// 与其它语言注释规范一致,
主要用于注释对于单行代码逻辑进行注释,为了避免过多注释
主要是在一些理解较为复杂的代码逻辑上进行注释
-
多行注释
一种是 ///
另一种是 /** ......**/
这俩种都可以使用,在dart推荐使用 ///
一般用于注释类和方法
///APP首页入口 /// ///本模块函数,加载状态类组件HomePageState class HomePage extends StatefulWidget { @override createState()=>new HomePageState(); } ///首页有状态组件类 /// ///主要是获取当前啊时间,并动态展示当前时间 class HomePageState extends State<HomePage> { ///获取当前时间戳 /// ///[prefix]需要传入一个前缀信息 ///返回一个字符串类型的前缀信息: 时间戳 getCurrentTime(String prefix){} ///有状态返回组件信息 @override Widget build(BuildContext context){} }
3 文档工具
将注释形成文档, 使用dart SDK里的命令dartdoc
NOTE:这个命令需要在环境变量里配置dart SDK路径
dartdoc
执行完以后,会在项目当前目录生成一个doc文件夹, 里边有一个api目录下的index.html,
4 库引入规范
dart为了保持代码整洁, 规范了import库的顺序。将import库分了几个部分
每个部分用空行分割
- dart库
- package库
- 其它未带协议头的的库
其次是相同部分按照模块的首字母顺序来排列
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:two_you_friend/pages/home_page.dart';
import 'util.dart';
5 代码美化
在dart中, 使用dartfmt ,这个也在dart sdk里, 需要配置dart的sdk路径
在终端上使用 dartfmt -h
dartfmt -w --fix lib/
-w重写 --fix修复 在lib目录下的文件
这个工具的规范包括以下几点
- 使用空格而不是tab
- 在一个完整的代码逻辑后面使用空行区分
- 二元或者三元运算符之间使用空格
- 在关键词,和;之后使用空格
- 一元运算符后请勿使用空格
- 在流程控制关键词, 例如for和while后,使用空格区分
- 在([{}])符号后请勿使用空格
- 在{ 后使用空格
- 在 .操作符,从第二个.符号后每次都使用新的一行
参考地址 dartfmt官网
6 工具化 《保证代码的质量》
在dart中也有和eslint一样的工具 dartanalyzer来保证代码质量
该工具也在dart sdk中,
6.1 使用方法
在项目根目录新建一个analysis_options.yaml文件
然后在文件中按照规范填写你需要执行的规则检查代码
现有规则可以参考 Dart linter rules规范
6.2 第三方库模版
为了方便使用,可以使用第三方已经配置好的规范模版,俩个库
- pedantic
- effective_dart
可以参考这俩个库使用, 在我们项目中,使用它们俩者之一, 在项目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点 pub get去下载
也可以在终端 进入当前项目执行 flutter pub upgrade去执行
配置完成后, 在新增的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
增加完上边的配置后, 执行命令
dartanalyzer lib
对大家有帮助,点个赞👍, 欢迎评论区留下问题,一起探讨