關於Scala的一些感想(一)


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

在使用了一段時間下來以后,有一些不是很“清晰”的感受,說實話我自己還沒有很好的整理清楚,所以就先記錄下來,不保證一定正確,只是個人的在現有經驗下的看法而已

框架的選擇

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

而且由於Java畢竟已經在企業開發領域活了許久了,因此很多領域中,業界往往都已經選擇出了“佼佼者”,比如我們使用Spring來管理Bean的生命周期,使用Spring MVC作web框架,Mybatis作持久層的框架使用,AOP使用Spring AOP或者更強大的Aspectj等。

而由於Scala也是近幾年“流行”起來的,雖然使用Scala編寫的開源框架很多,但是在很多領域中,往往都還沒有選擇出其中的“佼佼者”,因此對於我們這些初學者來說,往往都會存在:「不知道該用什么框架」的疑惑。

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

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

  • 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來完成開發。之所以這么選擇主要還是因為沒有學習成本,而且進度,可能出現的問題我都可控制。

編程語言的定位

此處建議大家看看紫杉的回答,說的非常的好

后記

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM