两全其美?Udash结合了Scala和JavaScript的力量

发布于:2021-01-14 09:51:13

0

79

0

javascript Scala Udash

Udash是一个Scala框架,它有望使Web开发尽可能地安全。在这里,我们看一下Udash的一些优点和缺点。

Udash是一种类型安全的开源框架,该框架使用共享的Scala代码以及前端和后端之间的接口。该框架还提供了将Scala编译为JavaScript以及与Twitter Bootstrap或jQuery之类的JavaScript库一起使用的功能。

用于构建美观且可维护的Web应用程序的框架

据官方网站称,由于与Scalatags和ScalaCSS库的合作,Udash在HTML,CSS和JS上提供了类型安全层,并将强大的数据绑定到DOM模板中。优点和有用功能的列表如下:

  • 反应性数据绑定–自动将用户界面与数据模型同步。

  • 类型安全的RPC和REST –基于类型化接口的客户端-服务器通信。通过WebSockets进行的双向RPC开箱即用。

  • 用户界面组件–通过Udash功能丰富的Twitter Bootstrap组件。

  • CSS – Scala代码中类型安全的CSS定义,具有最小的JavaScript尺寸占用空间和服务器端呈现。

  • i18n –由后端提供服务或翻译成JavaScript的翻译。

  • 生成器–生成自定义的应用程序,在5分钟内进行编译和试用。

  • 开源–整个框架代码可在Apache v2许可下的GitHub上获得。

  • 独立于后端– Udash为您的Web应用程序以及与服务器的通信提供了完整的支持,但不影响您的后端实现。

  • IDE支持–任何支持Scala语言的IDE。无需额外的插件。

根据Hacker News的文章,Udash是开发丰富的单页应用程序和大型复杂网站的理想选择,在这些网站中,您必须“在前端和后端之间共享模型和验证”。

让我们看一下经典的Hello World示例。

import io.udash._ import io.udash.css.CssView._ import io.udash.bootstrap._ import io.udash.bootstrap.alert._ import io.udash.bootstrap.button._ import io.udash.bootstrap.form._ import io.udash.bootstrap.modal._ import io.udash.bootstrap.utils._   import org.scalajs.dom   val name = Property("Udash")   UdashJumbotron(   div(BootstrapStyles.container)(     UdashBootstrap.loadBootstrapStyles(),     h1("Welcome to Udash!"),     UdashForm(       UdashForm.textInput()("Type your name: ")(name),       UdashAlert.success("Hello, ", b(bind(name)), "!").render     ).render   ) ).render

详细和低效?

尽管如此,在项目中使用Udash还是有一些缺点。首先,已经有很多批评 认为Scala首先不是一种有效的Web开发语言。但是,批评Scala不在本文的讨论范围之内。

特别是关于Udash,在同一Hacker News条目下给出了很多反馈。根据评论,Udash的明显缺陷如下:

  • 运行时错误–很难避免这些错误,至少在Elm这样做的程度上(通过设计)是可以避免的。

  • 复杂性–设计人员应至少在一定程度上精通Scala,以至于他们可以修复页面代码中的编译错误,否则,根本不可能共享模板。

  • 代码太多?–一些评论建议“仅呈现简单的html看起来确实很冗长”。

Udash是一个新框架,因此仍有大量的审查和改进空间。它是一个开放源代码框架,这一事实使它成为有希望的资产,因为用户的贡献和言论可以为进一步,更快地进行开发和改进提供有价值的见解。