BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Dart 1.8:采访Google工程师Seth Ladd

| 作者 James Chesters 关注 1 他的粉丝 ,译者 臧秀涛 关注 2 他的粉丝 发布于 2014年12月27日. 估计阅读时间: 5 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Google近期发布了其开源Web编程语言Dart的1.8版本。该版本带来了对枚举的实验性支持,Google的Dart开发倡导者Seth Ladd介绍说,枚举是请求最多的特性之一。为了解该特性相关的更多信息,以及Dart项目的最新信息,InfoQ采访了Ladd。

InfoQ: Seth,你提到枚举是Dart中请求最多的特性之一,为什么说枚举这么好呢,缺乏枚举会有什么不便吗?为什么有人这么关心这个特性?

Ladd:枚举可以帮助开发者用最少的代码清晰地表达其意图,还可以帮助工具捕获潜在的bug。开发者可以方便地使用枚举来命名一组相关的术语或值。

对于喜欢看代码的开发者,我们先看一个例子。在引入枚举之前,开发者必须像下面这样指定来自业务中的状态(OPEN、INPROGRESS和CLOSED):

// 在引入枚举之前
class FormState {
  static const FormState OPEN = const FormState._(0);
  static const FormState INPROGRESS = const FormState._(1);
  static const FormState CLOSED = const FormState._(2);
  final int value;
  const FormState._(this.value);
  static const List values = const [OPEN, INPROGRESS, CLOSED];
}

而有了枚举的适当支持,代码简洁了很多:

enum FormState { OPEN, INPROGRESS, CLOSED }

新的语法可以帮助开发者识别潜在的bug。枚举经常用在switch语句中。为确保开发者处理了枚举中所有可能的状态,Dart工具可以在缺失显式的case语句时给出警告。

InfoQ:枚举支持目前的描述还是“实验性特性”。那如何确定实验是否取得成功呢?

Ladd:之所以将枚举标记位“实验性特性”,这是因为,一方面语言规范已经完成,还在等待ECMA TC52的批准;另一方面,我们还希望我们所有的工具都能正确处理枚举。我们希望开发者现在就开始使用枚举,并报告发现的实现中存在的问题。我们期待尽快去掉“实验性”的标签。

InfoQ:在你看来,社区对枚举的实验性支持反应如何?

Ladd:Dart 1.8还非常新,反馈还在收集。然而,枚举是社区要求最多的特性之一,所以我们非常激动地想看到开发者使用它。有些开发者还要求支持将整数值赋给枚举值,未来的ECMA TC52会议会讨论这个特性请求。

InfoQ:除了枚举,Dart 1.8还有其他一些变化。你可以给读者详细介绍下吗?

Ladd:在Dart 1.8中,添加了新的JsonUtf8Encoder,以帮助开发者编写性能更好的服务器。我们注意到,将JSON解码为UTF8这种操作很常见,所以我们希望提供一个优化的解决方案。

API也有一些小变化,主要是为提高开发效率。

InfoQ:InfoQ的读者对Dart 1.9可以有哪些期待呢?对于2.0版本,有哪些特性我们可以先睹为快吗?

Ladd:我们正在努力实现async / await,这个特性可以帮助开发者编写异步代码,而且是看上去更像同步代码的异步代码。这意味着减小了进入“回掉黑洞”的机会。

关于Dart 2.0,目前还没有什么可以分享的。按照我们的期望,1.9版本之后会是Dart 1.10。

InfoQ:你还有什么想要跟大家分享的吗?

Ladd:希望开发者参加我们的第一届Dart Summit,将于2015年4月在旧金山举行。大会是学习Dart方方面面知识的好机会,可以直接跟我们的工程师和 Dart 社区交流。大会现在也在开放征集演讲提议

Dart团队也欢迎大家向该项目做出贡献。InfoQ的读者可以通过报告bug、回答StackOverflow上的问题以及提交代码来做贡献。更多信息,可以参见该页面

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT