Flutter 代码规范

命名规范

1.文件名

由小写英文加下划线组成;如 custom_app_bar.darticon_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

参考

Flutter的开发规范
Flutter开发规范

你可能感兴趣的:(Flutter 代码规范)