Flutter中如何规范你的代码

917 阅读4分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第17天,点击查看活动详情

前言

  • 作为一个合格的程序员,代码规范是永远的必修课,能写出让别人看的懂、看的舒服的代码那才是一个合格的程序员,今天想跟大家聊一聊在Flutter开发中,如何让你的代码更好看。以下是我实战中的一些心得体会,希望对大家有一些启发~

命名

1、包、目录、资源文件命名

以小写字母加下划线命名,不准有大写字母以及数字。a_b_c,开头表示此文件的含义,结尾表示此文件的类型。
例如:home_page,代表首页页面类。

2、类的命名

类名命名采用大小写字母驼峰命名, 首字母大写。AabBCc,规范同包命名。

3、变量、常量、方法名命名

均采用大小写字母或数字驼峰命名,首字母小写,
注:开头不能为数字,私有变量、方法以下划线开头,_aABbCc; 编译前常量使用const,
尽量不用var关键字,dart属于强类型语言,尽量声明时候就对类型进行说明。

注释

我个人认为代码中的注释是非常重要的,甚至比你写的代码都重要,因为一个好的注释不仅能让同事快速了解你的代码,更能对自己在写代码的过程中有一个深度的思考过程。

  • Flutter注释一共有三种类型: 单行注释 // 不会生成文档 单纯的注释
    多行注释 /* 效果跟单行注释一样 我们不使用这种*/
    文档注释 /// 三斜杠 会生成文档,我们可以使用文档注释来注释类成员和类型、方法、参数、类、变量、常量等。重要的注释 支持[]插入变量等
    在Flutter中我们使用就是单行注释和文档注释,对于一些自己看的内容用单行注释,其他尽量都用文档注释。

开发规范

1、导包:

能使用相对路径导包要使用相对路径引入,原因是如果我们修改包名,导入的包名不会跟着改变,改起来比较麻烦。

2、字符串拼接
变量使用${},禁止使用+号拼接 。

3、集合相关

初始化
使用中括号 List list =<String>[];  大括号Map map = <String,String>{}; 这样,不要 List list = List();这样初始化。如果不确定类型我们在首次添加时类型便会确定。注:不确定类型集合可以使用多种类型。List list = [1,2,”3”,true];不过这种情况比较少见。

非空判断 使用list.isEmpty判断是否为空 不要使用list.lenght == 0这样判断

遍历集合 使用 for(var i in list){}这种方式,不推荐使用 list.forEach 内部也是前面方式实现的,前面对于不熟悉dart同学比较好理解。

集合过滤类型 使用 list.whereType<int>();筛选出int类型的数据。

4、函数相关

 函数里只有一行代码用=>表示,不要用{}

 可选参数用尽量使用大括号命名参数,使用中括号除非很清楚知道第几个参数是干嘛的。

method({int num = 0}){}

返回值一定要明确,如果不明确也要写上dynamic或者void无返回值。

new 关键字已经支持不用写了 为了代码简洁省略不写new

异步函数 一定要加 async await 关键字,并且这两个关键词一般都是成对出现。返回一个Future对象。

5、业务相关

1、遵循组件拆分模式开发,对于可复用的部件尽量都都单独写到widgets文件夹下,同时对部件进行///注释说明。

2、对于三方依赖尽量二次封装,不要直接使用,方便以后更新替换。

3、UI嵌套不宜过多,能拆分尽量拆分,一个widget最好不超过3层嵌套,对于可以复用的小部件必须封装起来使用。

小结

其实团队开发中统一开发规范还是比较重要的,统一规范并不代表要每个人都写相同风格的代码,只要你写的代码能让别人看得懂看得明白看的爽,那就是好代码,以上是我个人在Flutter开发过程中的一些心得,希望对大家有一些帮助😁,最后推荐大家可以使用官方的flutter_lints: ^1.0.4规范代码的插件来检查你的代码,他可以帮你自动找出你不规范的代码。