命名规范
1.文件名
由小写英文加下划线组成;如 custom_app_bar.dart , icon_user_image_default.jpg
2.类名
大驼峰法;如 CustomAppBar
2.函数名,变量名、参数名
小驼峰法;如 函数名: updateRenderObject() ; 变量名,参数名: userName ;
另外类的成员变量: 不推荐使用 m前缀(如mUserName),而是 userName
3.文件夹名(包名)
由小写英文或下划线组成;如文件夹名 home_page
Widget开发规范
1. 将每个Widget的定义整理到单独的函数里,达到UI页面代码清晰
2. 将复杂的Widget进行封装
3. 封装单个Widget,方便复用
4. Widget build方法:在 build 方法里尽量用最少的代码实现整体视图
可以把复杂的widget代码放到一个或多个方法中。
代码规范
-
if else使用大括号,尽可能不省略;
-
不推荐使用new来实例对象(dart 旧版本语法);
-
page页面中(StatelessWidget、StatefulWidget)尽量将每一层和每一个widget以单独函数形式调用,层次清晰分明(工具类封装的Widget可例外);
-
封装简单常用的widget,注意使用@required、assert对参数进行限定,判断;
-
常用的颜色值和宽高值,使用统一相同含义值来赋值;
-
实时处理报错(error)和警告(warning):Dart Analysis统计了所有报错和警告的具体信息;(好处:一则让代码程序更健壮,二则在dart sdk升级后,可避免报错);
-
必要的简要的代码注释(不止是.dart文件,还包括pubspec.yaml);
-
编码过程中习惯性使用“Reformat Code with dartfmt”;
-
拒绝弱命名(如var a),拒绝硬编码(如if (a == 2)...);
-
善用///[],"[]"内可以是类名、变量名,在引用中可以添加注释说明;
-
适当的换行,函数体之间、语句过长等;
其他
-
尽量不使用第三方插件库(SDK),大多数SDK在功能点覆盖和适配方面存在很多的缺陷;逼不得已时选择flutter官方指定维护的sdk、知名度和活跃度高的sdk;Flutter Favorite packages
-
创建项目时,包名采用反写域名命名规则,即com.xx.xxx.xxxx形式全部使用小写字母。一级包名为com,二级包名为xx(一般为公司或个人域名),三级包名根据应用进行命名,四级包名为功能模块名;
-
如果一个bool类型"isShow"在不确定是否会为null的情况下(尤其在与原生双向交互中),避免"if(isShow)..."这种写法,正确写法"if(isShow == true)";
-
注重dispose()方法中资源的释放;
-
删除或注释掉assets下无效的资源及pubspec.yaml的声明
高效 Dart 语言指南
https://dart.cn/guides/language/effective-dart
网友评论