易燃物匯聚 YouTube 有聲書與書評
Scala實用指南 封面

Scala實用指南

文卡特·蘇帕拉馬尼亞姆

1545人在讀
22.7萬字總字數
¥44.16定價

內容簡介

本書是爲想要快速學習或者正在學習Scala編程語言的Java開發者寫的,循序漸進地介紹了Scala編程語言的多個方面。

讀者書評

★★★★☆

此書是一本學習scala基礎入門的好書,但是總感覺文字內容過多,不夠簡潔,能夠一句話概括的還得繞一大圈,不過還好算相當不錯的學習scala語言的書,scala語法更偏向於java的流操作不過比流更加接近自然語言的寫法,雖然讀了scala這本書大致能夠看懂scala的一些案例,但最重要的是體會scala的設計理念及思想,讀的越多收穫越大,不懂的越多,加油,奧利給!

★★★★★

scala其實和Python裏面的pandas語法結構有點像,還有js裏面的箭頭函數啥的,反而和Java不太像了。

★★★☆☆

太過淺顯,適合Scala入門閱讀

★★★★★

書馬馬虎虎,如果對java的函數式編程精通的話,學起來應該不困難。

★★★★☆

Scala是一門多範式的編程語言,一種類似Java的編程語言,設計初衷是實現可伸縮的語言、並集成面向對象編程和函數式編程的各種特性。 Java語言在不停地變化之中,爲了優化自身代碼冗長和數據處理方面的不足,向Lisp,Clojure、Erlang、Haskell等函數式編程語言借鑑了經驗,Java8的出現才使得Java具備了函數式編程的能力,某些場景下開發效率大幅提高,讓我對Java有了更大的信心。 Scala的語法跟Java8比較接近,比如Scala特質Trait相當於Java的接口Interface,繼承都是extends,只要真正理解了面向對象OOP和函數式FP的思想,就不會覺得學習Scala困難。隨着Java的版本不斷升級,Java的特性是越來越靠近Scala,Java8引入函數式編程,Java11纔有了類型推斷,但是仍然沒有Scala那麼簡潔和強大: 1、Scala可以用一個簡單的下劃線“_”去表示一系列參數和參數列表。 2、Scala可以實現多重賦值和返回多個值。 3、Java的泛型存在類型檢測的缺陷,尤其是Map數據結構,即使Map的key是String類型,我們仍然可以向get方法傳入Integar類型的值,運行也不會報錯,但是卻獲取不了對應的value(null),導致粗心的程序員以爲是邏輯的錯誤,白白浪費了調試和檢查邏輯的時間! 4、Java對字符串的處理是日常開發中最經常做的事,用“+”拼接、StringBuffer、StringBuilder、String.formmat等等方式都很繁瑣,而且容易出錯,而Scala字符串插值真的很便捷。 5、當你在使用Java,你可能會爲double[]和Double[]之間不能直接賦值而煩惱,你可能會爲list列表轉Array數組、Array數組轉list列表專門寫了一些Util工具類,你可能爲了將單線程改成多線程,要把以前寫死的ArrayList類型一個一個地改寫成List接口或者Vector向量類型,你可能檢查很久才發現Map的get方法的參數類型傳錯而程序不報錯。 6、使用Scala編程,就已經具備了使用Lombok的@val @var @Getter @Setter @Accessors @Value @Data @Builder的便捷性。 7、Scala內置了協變的功能,能夠極大地提高使用集合類開發的效率,這一特性是Java8所不具備,Java8的協變要編寫泛型方法才能實現。 8、Java 8的惰性求值是通過實現Supplier接口,每一次都要提供初始化的方法,而Scala直接使用關鍵字lazy或者view,無需顯式調用get方法。 9、Scala沒有static,使用伴生對象實現單例,是真正意義上的面向對象OOP。 Java項目中通常會有很多Util工具類,而這些工具類的方法都是被寫成static靜態方法(類方法),是面向過程的設計而不是面向對象OOP的設計,導致封裝性和重用性極差(無狀態,無法鏈式調用等等)。 10、Scala擁有強大的模式匹配。Scala的模式變量是專門用於匹配模式的,可以被後續代碼引用。 注意!不熱愛學習的人,任何編程語言都難。不遵循代碼規範,不會總結編程方法論的人,任何語言都會寫出很爛的代碼,跟編程語言沒有太大關係,即使是使用Python也不例外。 Scala比其他函數式編程語言更進一步的是Actor模型,即基於共享數據的隔離對多線程代碼進行的封裝。使用Akka可以輕鬆實現健壯的高併發分佈式系統,Flink的一些版本集成了Akka作爲基礎組件。 Scala的生態完善,就應用來說,有大數據流計算框架spark、分佈式發佈訂閱系統Kafka、Akka、Play和Lift等Web框架、Rpc框架Finagle、測試框架Specs等等。 編程語言很多,Go、Python、Scala、Kotlin、Rust、Ruby、Dart、Julia,討論比較多的是Scala、Go、Python,就目前的應用而言: Go適合服務端開發。 Scala適合服務端、大數據、數據挖掘、NLP、圖像識別、機器學習、深度學習…等等開發。 Python適合快速地實現算法的原型。 但是,Python這門動態語言,性能是個問題,對於大型項目,架構和重構是災難。 (當你在使用Python,一小部分代碼的修改可能導致你要重新調整整個文件的縮進,一些本應該馬上報錯的地方卻只能在調試的時候才報錯,結果你要改很多地方。)

★★☆☆☆

寫的並不系統。 如果你是java還是不要學scala,第一是太小衆,沒有生態。第二語法差別很大。感覺是java,ruby,python,js的混合體,可想而知。 但如果你是spark工作者可以考慮學。如果不是java之外學python更合適。

★★★★☆

很基礎的一本書 不過學了一個scala的stack traits用來做decorate pattern的例子。比起java來的確簡潔了 不過學習難度又有上升. 所以說在代碼的readability和efficiency真是各有取捨

★★★★☆

雖然有些地方打印的不對,但是不影響閱讀,基本把Scala的方方面面介紹了一下,有效的結合Java來談談從語言級別的優勢。是本適合Java工程師過度到Scala的書,推薦閱讀

★★★★★

作爲一名熟悉Java語言的開發者,這本書幫我循序漸進地瞭解了Scala語言的特性,內容組織得非常好。

★★★☆☆

講的比較全,但是每部分講的都淺嘗輒止

書籍信息

作者文卡特·蘇帕拉馬尼亞姆
譯者何品,沈達
出版社人民郵電出版社
出版時間2018-07-01
ISBN9787115483560
分類計算機-編程設計
格式EPUB
完結狀態連載中
章節數45