[译]Effective Dart

722 阅读3分钟

在过去的几年里,我们已经编写了大量的Dart代码,并且积累了如何开发出高效Dart代码经验。我们正在与您分享这一点,因此您也可以编写一致,强大,快速的代码。有两个总体主题:

  1. 始终如一。当谈到格式和语句时,关于哪个更好的论点是主观的,无解的。我们所知道的是,保持一致是客观有益的。如果两段代码看起来不同,那应该是因为它们以某种有意义的方式不同。当一些代码突出并引起你的注意时,它应该这样做是有用的。

  2. 简洁的。 Dart的设计非常熟悉,因此它继承了许多与C,Java,JavaScript和其他语言相同的语句和表达式。但我们创建了Dart,因为这些语言提供了很多改进的空间。我们添加了一系列功能,从字符串插值到初始化形式,以帮助您更简单,更轻松地表达您的意图。 如果有多种说法,你通常应该选择最简洁的方法。

指引

我们将指导方针分成几个单独的页面以便于理解:

  • 样式 : 定义了布局和组织代码的规则。dartfmt不为您处理的部分。样式指导指定了标识符的格式:camelCase,using_underscores等。
  • 文档 : 告诉您需要了解的内容。文档注释和代码注释。
  • 用法 : 将教您如何充分利用语言特性来实现功能。
  • 设计 : 这是最开放的指引,但却是范围最广的。它涵盖了一致性,可用API的设计。

如何阅读

每个指引分为一些章节。每个章节包含一系列指引。每个指引都以以下一个词开头:

  • DO 准则描述了应始终遵循的做法。你没有理由偏离它们。

  • DON'T 不应该做的事。希望我们没有其他语言那么多,因为我们的历史包袱较少。

  • PREFER 您应遵循的做法。

  • AVOID 是“PREFER”的双重指引:你不应该做的事情,但在极少数情况下可能有充分理由去做。

  • CONSIDER 凡事不必墨守成规,具体案例具体分析。

词汇表

为了保持简洁,我们使用一些术语来指代不同的Dart结构。

  • library member 库成员是顶级字段,getter,setter或函数。基本上,顶级的任何东西都不是一种类型。

  • class member 类成员是在类中声明的构造函数,字段,getter,setter,函数或运算符。类成员可以是实例或静态,抽象或具体。

  • member 库成员或类成员。

  • variable 变量是指顶级变量,参数和局部变量。它不包括静态或实例字段。

  • type 类型是任何命名的类型声明:class,typedef或enum。

  • property 属性是顶级变量,getter(在类内或顶层,实例或静态),setter(相同)或字段(实例或静态)。大致上任何“字段式”命名构造。


引用

Effective Dart 原文link