如何在Dart中“构建一个Web应用程序”?

时间:2013-12-17 07:53:03

标签: dart dart-pub

我开始研究Dart。它似乎是一种很好的语言,在某些方面是对JavaScript的真正改进。虽然它声称带有“包含电池”并且用于“结构化网络应用程序”,但我无法理解如何用它来实际构建Web应用程序。几乎所有的教程都专注于语言功能,但Dart非常简单,并且有许多熟悉的部分,所以这很容易。 最近我爱上了AngularJs。现在路由,双向绑定,嵌套范围,关注点的清晰分离......这实际上意味着“结构化”给我。但我找到的所有Dart示例都是关于选择HTML元素并将侦听器附加到它们。这是类似jQuery的旧式Web编程,坦率地说,与我在阅读“结构化”时的想法相反。 我不想比较语言和框架,我知道Angular Dart已经出局了,但是我担心我会遗漏一些vanilla Dart,因为如果它是关于lambdas的更短语法,基于类的OOP与原型OOP等等,我不知道它应该如何改变游戏规则:还有很多其他语言可以提供另一种JS语法(例如CoffeeScript)并编译成它,它们不会以失败为代价与现有的JavaScript库和工具完美集成。

当然,它有可选的静态类型,这可能很棒,但这更多地取决于偏好。我是一名全职Python和Ruby开发人员,我对动态语言非常好。这是“结构化”的意思吗?

感谢您最终的澄清。

2 个答案:

答案 0 :(得分:7)

我在AngularDart工作,并且有一些构建Web应用程序的经验。

在Dart中构建Web应用程序时,您会选择一个Web应用程序框架,例如AngularDart或polymer.dart。 Web应用程序框架有很多意见,这些意见不适合核心库。在这方面,“香草飞镖”非常香草。

由于我最熟悉Angular,我将讨论Angular + Dart组合。然而,这篇文章的其余部分也适用于polymer.dart。

Angular为您的应用提供了大量结构。我们已经能够为Dart和Javascript提供类似的结构。指令,数据绑定和依赖注入的概念都存在于两者中。

Dart提供了更多结构,我们在构建AngularDart时能够使用该结构。例如指令API是根据注释定义的,这意味着IDE可以理解它们并可以帮助您进行编码。

Dart中有许多“结构”功能。我最喜欢的一个是工具。使用类型和注释可以获得更好的工具支持。

与工具结合使用时,Dart中的类型最有用。自动完成非常棒,但对于大型Web项目,静态分析甚至更好。例如,在AngularDart中,由于指令是带注释的类,我们可以断言注释是正确的。更有趣的是构建工具的潜力。在AngularDart中,我们有一个工具可以提取和分析所有指令。这种类型的工具可以在Javascript中使用,但很容易并且由Dart中的语言支持。

答案 1 :(得分:1)

  • libraries,packages
  • 使用pub包管理器集成依赖关系管理
  • 基于类而非基于原型的
  • 现代语言所期望的变量范围
  • 静态语法检查
  • 更好的工具支持,如代码完成