發(fā)布于:2021-01-14 09:51:13
0
89
0
Udash是一個Scala框架,它有望使Web開發(fā)盡可能地安全。在這里,我們看一下Udash的一些優(yōu)點和缺點。
Udash是一種類型安全的開源框架,該框架使用共享的Scala代碼以及前端和后端之間的接口。該框架還提供了將Scala編譯為JavaScript以及與Twitter Bootstrap或jQuery之類的JavaScript庫一起使用的功能。
用于構(gòu)建美觀且可維護的Web應(yīng)用程序的框架
據(jù)官方網(wǎng)站稱,由于與Scalatags和ScalaCSS庫的合作,Udash在HTML,CSS和JS上提供了類型安全層,并將強大的數(shù)據(jù)綁定到DOM模板中。優(yōu)點和有用功能的列表如下:
反應(yīng)性數(shù)據(jù)綁定–自動將用戶界面與數(shù)據(jù)模型同步。
類型安全的RPC和REST –基于類型化接口的客戶端-服務(wù)器通信。通過WebSockets進行的雙向RPC開箱即用。
用戶界面組件–通過Udash功能豐富的Twitter Bootstrap組件。
CSS – Scala代碼中類型安全的CSS定義,具有最小的JavaScript尺寸占用空間和服務(wù)器端呈現(xiàn)。
i18n –由后端提供服務(wù)或翻譯成JavaScript的翻譯。
生成器–生成自定義的應(yīng)用程序,在5分鐘內(nèi)進行編譯和試用。
開源–整個框架代碼可在Apache v2許可下的GitHub上獲得。
獨立于后端– Udash為您的Web應(yīng)用程序以及與服務(wù)器的通信提供了完整的支持,但不影響您的后端實現(xiàn)。
IDE支持–任何支持Scala語言的IDE。無需額外的插件。
根據(jù)Hacker News的文章,Udash是開發(fā)豐富的單頁應(yīng)用程序和大型復(fù)雜網(wǎng)站的理想選擇,在這些網(wǎng)站中,您必須“在前端和后端之間共享模型和驗證”。
讓我們看一下經(jīng)典的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還是有一些缺點。首先,已經(jīng)有很多批評 認為Scala首先不是一種有效的Web開發(fā)語言。但是,批評Scala不在本文的討論范圍之內(nèi)。
特別是關(guān)于Udash,在同一Hacker News條目下給出了很多反饋。根據(jù)評論,Udash的明顯缺陷如下:
運行時錯誤–很難避免這些錯誤,至少在Elm這樣做的程度上(通過設(shè)計)是可以避免的。
復(fù)雜性–設(shè)計人員應(yīng)至少在一定程度上精通Scala,以至于他們可以修復(fù)頁面代碼中的編譯錯誤,否則,根本不可能共享模板。
代碼太多?–一些評論建議“僅呈現(xiàn)簡單的html看起來確實很冗長”。
Udash是一個新框架,因此仍有大量的審查和改進空間。它是一個開放源代碼框架,這一事實使它成為有希望的資產(chǎn),因為用戶的貢獻和言論可以為進一步,更快地進行開發(fā)和改進提供有價值的見解。