前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dart系列之:dart代码最佳实践

dart系列之:dart代码最佳实践

原创
作者头像
程序那些事
发布2022-01-04 09:28:40
1.1K0
发布2022-01-04 09:28:40
举报
文章被收录于专栏:程序那些事

简介

每种语言都有自己的代码风格,这种代码风格是跟语言特性息息相关的。如果在编码的过程中遵循这种统一的编码规则,会给我们的业务带来非常多的便利。

同样的,对应dart而已,也有属于自己的编码风格,一起来看看吧。

命名规则

一般来说,这个世界上有三种命名规则,分别是UpperCamelCase,lowerCamelCase和lowercase_with_underscores.

UpperCamelCase表示的是驼峰格式,也就是首字母大写,其他的字母小写。

而lowerCamelCase也是驼峰格式,不同的是它的第一个单词的首字母是小写的。

lowercase_with_underscores则是将单词用下划线进行连接。

对于类,typedef,枚举这些类型,一般都使用的是UpperCamelCase模式:

代码语言:javascript
复制
class ClassRoom {}

typedef Predicate<T> = bool Function(T value);

对于类的实例来说,使用lowerCamelCase:

代码语言:javascript
复制
const classRoom = ClassRoom();

对于方法名来说,也使用lowerCamelCase:

代码语言:javascript
复制
void main() {
}

之前我们讲到了dart 2.7引入的extension,extension也需要使用UpperCamelCase:

代码语言:javascript
复制
extension StringCompare on String { ... }

对于libraries, packages, 目录和源文件来说,使用lowercase_with_underscores,如下所示:

代码语言:javascript
复制
library common_convert.string_convert;

import 'lib_one.dart';
import 'lib_two.dart';

如果要将import的lib进行重命名,则需要使用lowercase_with_underscores,如下所示:

代码语言:javascript
复制
import 'lib_one.dart' as lib_one;

对于某些回调函数中的参数,如果并没有使用到的话,则可以用_来代替:

代码语言:javascript
复制
futureOfVoid.then((_) {
  print('Operation complete.');
});

如果是private属性,则推荐在名字前面加上_,表示它是一个私有值。

import中的顺序

在dart中,我们需要使用到其他的package,一般来说我们在编码过程中并不会特别注意到import的顺序。

不过dart对于import的顺序也是有推荐的。

首先 “dart:”,需要放在所有其他的import之前:

代码语言:javascript
复制
import 'dart:html';

import 'package:bar/bar.dart';

而”package:” 需要放在内部项目引用之前:

代码语言:javascript
复制
import 'package:foo/foo.dart';

import 'util.dart';

如果需要导出的话,export需要和import区分开:

代码语言:javascript
复制
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/ 最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 命名规则
  • import中的顺序
  • 格式化
  • 总结
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档