dart系列之:dart代码最佳实践
简介
每种语言都有自己的代码风格,这种代码风格是跟语言特性息息相关的。如果在编码的过程中遵循这种统一的编码规则,会给我们的业务带来非常多的便利。
同样的,对应dart而已,也有属于自己的编码风格,一起来看看吧。
命名规则
一般来说,这个世界上有三种命名规则,分别是UpperCamelCase,lowerCamelCase和lowercase_with_underscores.
UpperCamelCase表示的是驼峰格式,也就是首字母大写,其他的字母小写。
而lowerCamelCase也是驼峰格式,不同的是它的第一个单词的首字母是小写的。
lowercase_with_underscores则是将单词用下划线进行连接。
对于类,typedef,枚举这些类型,一般都使用的是UpperCamelCase模式:
class ClassRoom {}
typedef Predicate<T> = bool Function(T value);
对于类的实例来说,使用lowerCamelCase:
const classRoom = ClassRoom();
对于方法名来说,也使用lowerCamelCase:
void main() {
}
之前我们讲到了dart 2.7引入的extension,extension也需要使用UpperCamelCase:
extension StringCompare on String { ... }
对于libraries, packages, 目录和源文件来说,使用lowercase_with_underscores,如下所示:
library common_convert.string_convert;
import 'lib_one.dart';
import 'lib_two.dart';
如果要将import的lib进行重命名,则需要使用lowercase_with_underscores,如下所示:
import 'lib_one.dart' as lib_one;
对于某些回调函数中的参数,如果并没有使用到的话,则可以用_来代替:
futureOfVoid.then((_) {
print('Operation complete.');
});
如果是private属性,则推荐在名字前面加上_,表示它是一个私有值。
import中的顺序
在dart中,我们需要使用到其他的package,一般来说我们在编码过程中并不会特别注意到import的顺序。
不过dart对于import的顺序也是有推荐的。
首先 “dart:”,需要放在所有其他的import之前:
import 'dart:html';
import 'package:bar/bar.dart';
而"package:" 需要放在内部项目引用之前:
import 'package:foo/foo.dart';
import 'util.dart';
如果需要导出的话,export需要和import区分开:
import 'src/foo_bar.dart';
export 'src/error.dart';
然后按照上面提到的顺序对具体的import按字母表的顺序进行排序。
格式化
对于dart来说,dart语言本身是不识别空格的,但是对于人类来说,需要通过空格来格式化代码,从而达到可良好阅读的目的。
为了统一格式,dart提供了dart format命令.
虽然dart format命令为你做了99%的工作,但是还有1%的工作是你需要自己做的 。
比如:一行不超过80个字符,所有的流控制语句都用大括号括起来等等其他一些要注意的工作。
总结
以上就是dart中的代码风格总结。
本文已收录于 http://www.flydean.com/27-dart-style/
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
dart系列之:dart代码最佳实践的更多相关文章
- dart系列之:集合使用最佳实践
目录 简介 使用字面量创建集合 不要使用.length来判断集合是否为空 可遍历对象的遍历 List.from和iterable.toList where和whereType 避免使用cast 总结 ...
- dart系列之:dart语言中的变量
目录 简介 dart中的变量 定义变量 变量的默认值 Late变量 常量 总结 简介 flutter是google在2015年dart开发者峰会上推出的一种开源的移动UI构建框架,使用flutter可 ...
- dart系列之:dart语言中的特殊操作符
dart系列之:dart语言中的特殊操作符 目录 简介 普通操作符 类型测试操作符 条件运算符 级联符号 类中的自定义操作符 总结 简介 有运算就有操作符,dart中除了普通的算术运算的操作符之外,还 ...
- OPEN(SAP) UI5 学习入门系列之二: 最佳实践练习(上)
这篇博文难产了很久,原来是打算一周更新一篇的,上周原计划写MVC,但是写了一半,发现带入了太多的细节,不太符合这个入门系列的主题. 当我们学习一个新的技能的时候,如果一开始就面对大量的细节,很容易陷入 ...
- SpringBoot系列: Spring项目异常处理最佳实践
===================================自定义异常类===================================稍具规模的项目, 一般都要自定义一组异常类, 这 ...
- OPEN(SAP) UI5 学习入门系列之二: 最佳实践练习(下)
上期我们完成了一个简单的主从页面,但是页面是静态的,不能交互,功能也很简单,只有一个销售订单的列表. 我们今天就一鼓作气把代码全都写完,由于本次的代码量较大,所以只对重点代码部分进行讲解. 具体每个文 ...
- 【SpringMVC】SpringMVC系列15之SpringMVC最佳实践
15.SpringMVC最佳实践 15.1.遵循Restful API最佳实践 参考:http://segmentfault.com/a/1190000002949234 15.2.统一返回字段 15 ...
- dart系列之:dart类中的构造函数
目录 简介 传统的构造函数 命名构造函数 构造函数的执行顺序 重定向构造函数 Constant构造函数 工厂构造函数 总结 简介 dart作为一种面向对象的语言,class是必不可少的.dart中所有 ...
- dart系列之:dart类中的泛型
目录 简介 为什么要用泛型 怎么使用泛型 类型擦除 泛型的继承 泛型方法 总结 简介 熟悉JAVA的朋友可能知道,JAVA在8中引入了泛型的概念.什么是泛型呢?泛型就是一种通用的类型格式,一般用在集合 ...
随机推荐
- ReactiveCocoa操作方法-重复
retry重试 只要失败,就会重新执行创建信号中的block,直到成功. __block int i = 0; [[[RACSignal createSignal:^RACDisposabl ...
- 【Java 8】 Reduce方法
一:reduce rudece方法:从一个流中生成一个值 三个重载方法: Optional<T> reduce(BinaryOperator<T> accumulator); ...
- java客户端的elasticSearch索引库的相关操作
package com.hope.es;import org.elasticsearch.client.transport.TransportClient;import org.elasticsear ...
- EntityFramework Core (一)记一次 .net core 使用 ef 6
使用传统的sql去操作数据库虽然思路更加清晰,对每一步数据库读写操作都能监控到,但是对大数据存储,或存储规则复杂的程序就需要编写大量的SQL语句且不易维护..orm大大方便了复杂的数据库读写操作, 让 ...
- python实现skywalking的trace模块过滤和报警
skywalking本身的报警功能,用起来视乎不是特别好用,目前想实现对skywalking的trace中的错误接口进行过滤并报警通知管理员和开发.所以自己就用python对skywalking做了二 ...
- Java中Date类型与String 类型之间的互相转换
Java中String类型和Date类型之间的转换 我们在注册网站的时候,往往需要填写个人信息,如姓名,年龄,出生日期等,在页面上的出生日期的值传递到后台的时候是一个字符串,而我们存入数据库的时候确需 ...
- Nginx配置缓存
目录 一.简介 二.配置 三.其它参数 忽略Cache-Control头部 缓存post请求 缓存动态内容 使用Cookie作为缓存键的一部分 手动清理缓存 支持断点续传 设置查看缓存命中与否 一.简 ...
- 车载以太网第二弹 | 测试之实锤-物理层PMA测试实践
前言 本期先从物理层"PMA测试"开始,下图1为"PMA测试"的测试结果汇总图.其中,为了验证以太网通信对线缆的敏感度,特选取两组不同特性线缆进行测试对比,果然 ...
- (转)Zookeeper原理和作用
本周末学习zookeeper,原理和安装配置 本文参考: http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ http:/ ...
- LET函数(Excel函数集团)
LET函数,是个Office365新增函数,所以,还在用上古版本的童鞋请无视此篇哈~ 话说Excel中,有个自定义名称的功能,如下图,左右两个表分别自定义了"data1"和&quo ...