发布于:2021-01-14 09:51:13
0
79
0
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是一个新框架,因此仍有大量的审查和改进空间。它是一个开放源代码框架,这一事实使它成为有希望的资产,因为用户的贡献和言论可以为进一步,更快地进行开发和改进提供有价值的见解。
作者介绍