写点什么

dart 系列之: 这里不需要标新立异,dart 代码最佳实践

作者:程序那些事
  • 2021 年 12 月 19 日
  • 本文字数:1176 字

    阅读完需:约 4 分钟

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/

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

发布于: 2 小时前阅读数: 6
用户头像

关注公众号:程序那些事,更多精彩等着你! 2020.06.07 加入

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在公众号:程序那些事!

评论

发布
暂无评论
dart系列之:这里不需要标新立异,dart代码最佳实践