【问题标题】:How to "structure a web app" in Dart?如何在 Dart 中“构建 Web 应用程序”?
【发布时间】:2013-12-17 07:53:03
【问题描述】:

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

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

感谢您最终的澄清。

【问题讨论】:

    标签: dart dart-pub


    【解决方案1】:

    我从事 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 语言中很容易并且支持。

    【讨论】:

      【解决方案2】:
      • 库、包
      • 使用 pub 包管理器集成依赖管理
      • 基于类而不是基于原型
      • 现代语言中的变量范围
      • 静态语法检查
      • 更好的工具支持,例如代码完成

      【讨论】:

      • 此外,Dart VM 比 JavaScript 更快,还支持 Snapshotting,极大地缩短了初始启动时间,并将登陆 Chrome(希望未来还有其他供应商),并且已经用于 Dart 服务器端编程包括 dart2js 和 pub。
      猜你喜欢
      • 2015-03-31
      • 2013-02-20
      • 1970-01-01
      • 2011-11-22
      • 2011-01-25
      • 2014-09-20
      • 1970-01-01
      • 2012-02-01
      • 1970-01-01
      相关资源
      最近更新 更多