17611538698
webmaster@21cto.com

Dart Frog:前端语言开始转移到后端

编程语言 0 625 2023-03-05 08:58:26

图片

导读:Dart Frog,一个目标在解决前端应用程序相关问题的后端框架。

Dart 以其在 Flutter 中的使用及其在移动应用程序中的部署而闻名软件开发界。

现在,一个名为 Dart Frog 的新框架允许开发人员在后端利用 Dart。它由 Very Good Ventures 公司创建,这是一家专门从事 Flutter 应用程序的咨询公司。VGV 以 Hamilton 应用程序而闻名,它是在 Google 之外使用 Flutter 构建的首批商业应用之一。

后端的问题会直接影响移动应用程序,因此开发团队管理后端和前端开发变得相当重要。

以下以 Very Good Ventures 公司首席工程师Angelov的第一人称描述:

“如果你的后端非常慢或者一个没有做好日志,开发人员会不断努力修补后端接口,但这会破坏用户体验,或者它会反映在发布的最终产品中。

Dart Frog 是我们一种热情探索的方式,将构建移动应用程序使用完全相同的编程语言和技术堆栈。也就是说在后端也同样使用 Flutter。”

为什么将 Dart 用于后端?


Dart 是一种多功能的编程语言,经过优化可以在任何平台上快速创建应用程序。Google 已经在后端应用了 Dart,它的包管理器 pub.dev 允许开发人员上传可以拉入项目的包,它就是在后端 Dart 中构建的。Angelov 说,后端更广泛使用的问题是没有相关的工具。


Angelov 说:


“这并不是说语言没有能力。只是在所有低级组件之上没有足够的工具和抽象来让它对人们更具吸引力,”


Dart 可以在服务器上运行,生成本地可执行文件或编译成 JavaScript 和机器代码。


“Dart 确实很酷。它是一种灵活的语言,可以用于很多很多的目标,这是它的特别之处。此外,随着 Flutter 越来越受欢迎,将会有更多的开发人员希望在后端使用 Dart“。


Dart Frog:从前端移至后端


图片

Dart Frog 框架仍处于起步阶段,据使用者反馈这个开源框架现在很稳定。


VGV 的团队正在努力在今年某个时音发布 1.0,详细目标是第三季度。作为 v1.0 版本的一部分,VGV 还提供了想要添加的特性路线图:


图片

地址:https://dartfrog.vgv.dev/docs/roadmap


Angelov 说目标是让开发者的体验尽可能简单,并保持框架轻量级。


这就是他将 Dart Frog 与 ServerPod 等产品区分开来的一种方式。ServerPod 是一种开源、可扩展的应用程序服务器,可用于在 Dart 中构建 API。ServerPod 结合了用于缓存的 Redis、用于数据库的 PostgresSQL 以及对“你可能需要或可能不需要的各种东西”的迁移支持。


Dart Frog 的理念:一个非常简单的内核,一组每个人都需要的功能,然后为你以后可能想要添加的东西再开发单独的模块。


Dark Frog的核心能力,是让开发者使用 Dart 快速创建节点,为相关开发人员提供实用程序,从而轻松地让代码可测试,实现热重载。


热重载是 Flutter 最受欢迎的功能之一。它确保所做的任何更改都会实时更新。这对于在应用程序上协同工作的团队来说是非常重要的实用功能。


Dart Frog 还能让开发都可以轻松地在云中部署 API,很方便的与前端应用程序进行“对话”。


基本上,可以在几分钟内生成一个新的 Dart Frog 项目,定义几个前端应用程序可以与其通信的节点,然后进行部署。VGV 还提供了一些针对现有流行云提供商的部署指南,比如Google Cloud、AWS 或 Digital Ocean等。


VGV 使用 Dart Frog 的一种典型方式,就是与客户公司开发或维护的遗留系统集成。它允许研发团队在不必破坏前端的情况下逐步淘汰遗留系统,这才是解决了大多数组织的一个真正问题。


Angelov 提到在 BMW 工作时,他们当时将前端迁移到了 Flutter,而作为迁移的一部分,又不得添加人手重新开发 API。


“如果使用 Dart Frog ,可以既可创建移动应用程序,也可以为前端层匹配创建后端,比如中间件层,然后与遗留系统通信,然后开发者们可以做各种各样的事情,比如优化与缓存机制。这样人们基本上完全控制了移动应用程序和后端之间的通信渠道。前端无需了解后端,它就像隐藏在黑匣子后面一样——并且不必再关心遗留 API 的实现细节。”


Dart Frog 还可以部署到一个代理中,比如“对数据进行规范化和转换的中间件”,他说。这样的层还将支持其它许多优化。


VGV 之所以使用这种方法,是因为有的客户通常不允许咨询机构访问更改遗留系统,因为这需要进行大规模修改,原有团队会承担较高风险。


“通过这种模式,你可以在客户端和遗留系统之间放置一个中间件,它给了我们作为开发人员更多的控制权,这样允许我们在前端和后端之间共享大量代码。这样一来,我们就不必在每次对遗留系统更改时都将新版本推送到 App Store。我们只需要修改中间件的一些代码。这样,客户就不必再担心——只要我们保持相同的方式,每个参与的人都会很高兴。”


“这样做确实是有很大的好处,它允许开发人员控制该协议,”Angelov补充道。


另外,Dart Frog 还帮助开发者生成一个Docker文件,该文件可以部署在任何支持容器的地方。


下面,将Dart Frog 当前版本特性总结如下:


  • 热重载⚡️

  • Dart 开发工具⚙️

  • 文件系统路由🚏

  • 索引路由🗂

  • 嵌套路由🪆

  • 动态路由🌓

  • 中间件🍔

  • 依赖注入💉

  • 生产构建器👷‍♂️

  • docker🐳

  • 静态文件支持



Dart Frog 即将推出


Dart Frog 的v1.0将计划支持更多的云提供厂商,比如专门针对 Heroku 和 Vercel 等新平台。所以,Dart Frog 一个能够流行的选项大概就是添加了部署命令,能够让开发者更轻松地部署到用户的任何云提供商。


“这是目前存在摩擦最大的一点。不是每个人都知道 Docker 是如何工作的,也不是每个人都知道如何将 Docker 容器上传到云端。因此,可能有很大的空间来优化部署过程,使用 Dart Frog,只需单击一下或者一个命令就可部署到云提供商。


VGV 最想做的一件事是直接为IDE提供工具或插件,例如 Visual Studio Code 和 Android Studio。


“我们将直接在 IDE 中提供工具,你可以在 Dart Frog 中直接创建一个新的节点,或者在 IDE 中附加调试工具,或者直接从 IDE 生成一个新项目”。


“你不必打开新终端并运行一些命令或其他任何东西。”


Dart Frog 是MIT 许可证。Angelov 也鼓励人们在 v1.0 发布之前试用并反馈给 Very Good Ventures 。


“Dart Frog 的目标:轻量化、快速和模块化,这样你就可以添加任何想要的东西,通过 Dart Frog 为开发者解决尽可能多的复杂性,并尝试为你提供与 Flutter 尽可能相似的开发体验。


你从 Flutter 获得的全部优势——比如调试、开发工具,以及 Flutter 提供的所有特性。我们将尝试用 Dart Frog 提供同样的好东西。”

作者:洛逸

评论