關於Scala的一些感想(一)

最近在完成本身的開源項目Application-center的時候,使用了Scala編程語言。git

在使用了一段時間下來之後,有一些不是很「清晰」的感覺,說實話我本身尚未很好的整理清楚,因此就先記錄下來,不保證必定正確,只是我的的在現有經驗下的見解而已github

框架的選擇

Java之因此這麼繁榮很大的程度上是由於第三方開源社區的支持,當咱們使用Java完成一些項目的時候,我每每都是先求助於開源社區,看看是否存在現有的解決方案,絕大多數時候咱們都能找到合適的框架,而後直接用或者稍微修改一下就行了。web

並且因爲Java畢竟已經在企業開發領域活了許久了,所以不少領域中,業界每每都已經選擇出了「佼佼者」,好比咱們使用Spring來管理Bean的生命週期,使用Spring MVC做web框架,Mybatis做持久層的框架使用,AOP使用Spring AOP或者更強大的Aspectj等。數據庫

而因爲Scala也是近幾年「流行」起來的,雖然使用Scala編寫的開源框架不少,可是在不少領域中,每每都尚未選擇出其中的「佼佼者」,所以對於咱們這些初學者來講,每每都會存在:「不知道該用什麼框架」的疑惑。編程

雖然有Awesome Scala 可是咱們也開源發現不多有一家獨大的狀況。不過好在Scala基於JVM,可使用Java的框架,這樣咱們的選擇面也更加的多了起來。後端

我最初在完成Application-center的時候,調研了下面的幾組方案:app

  • Play framework + Slick 3.0.3
  • Spray-can + Slick
  • Spring MVC + Mybatis
  • scalatra

Play Framework從目前來看在Scala編寫的web框架中處於稍微「領先」的地位,可是對於以前一直使用Spring Mvc的Java開發者來講,在使用習慣上差異太大了。還有Slick,感受這個框架是像整合hibernate和Mybatis的優良屬性,可是目前感受有點「四不像」,並且對事務的支持感受過低級了,完成無法和Spring的事務管理器相提並論。也由不少開發者,包括我也使用Scala基於JDBC的風格編寫過一個Scala JDBC小工具來和關係型數據庫打交道。可是說實話都不是太好用。Spray的那一套東西,基於Akka,性能很不錯,可是那套東西不是爲了web開發而弄的,更多的是爲了後端數據接口弄的。並且對於不熟悉Akka的開發者來講,學習成本簡直不要過高過高。框架

項目初期我都使用新的工程嘗試了前兩種解決方案,多是由於我對Scala和Akka還不是很熟練,因此感受學習成本高了不少,尤爲是Spray那玩意,讓我一度懷疑個人智商。編程語言

所以爲了「不折騰」爲了加速開發進度,我最終仍是選擇了Spring Boot + Mybatis來完成開發。之因此這麼選擇主要仍是由於沒有學習成本,並且進度,可能出現的問題我均可控制。工具

編程語言的定位

此處建議你們看看紫杉的回答,說的很是的好

後記

暫時只想到了這麼多,後續有更多的想法的時候,我再更新這個文章。

相關文章
相關標籤/搜索