標籤:

akka有哪些比較好的學習資料?

新人,個人感覺http://doc.akka.io的內容寫得對入門者不太好,但除了官方,似乎資料也不多。除了看源碼,還找了兩本離現在比較近的書《Akka in Action》和《Learning Akka》,在書籍方面應該沒其他更好的了。

所以,除此之外有哪些博客或者文檔適合新手,github上哪個項目會比較容易閱讀一些?


我個人當初是看 Akka 官方文檔的,感覺在眾多開源項目中,文檔質量算是不錯的吧。不過我之前有一定的 Erlang 基礎,對於 actor model 的基本概念和動機都已經很熟悉了,一定程度上放緩了學習曲線。對於文檔上不清楚的地方,可以直接去看對應 API 相關的 test。


瀉腰,其實應該 @祖與占 或者 B大 @bhuztez 的,因為要向erlang老祖宗低頭(劃掉)學習。

因為祖上仙不願意回答,那就多說幾句。

akka的理論基礎是actor model, 某大神說過,這才 we do OO right。

因為長期的OOP教育(荼毒?)很多人剛接觸akka的時候主要的閱讀理解障礙是 為啥要這麼干,然後才是有啥好處,加上語法(Java版也是)的一些非主流寫法,使得大家覺得好像很難。為了理解akka,很多人用自己的經驗做不少比較,比如說,它是容器嗎?它是微服務嗎?它是新的EJB嗎?這些學習習慣反而把akka的學習搞的更複雜了。

那麼有什麼入門書應該看呢?首先去看最入門的是actor model的理論,wiki也行,那裡有很多其它語言的actor model實現可以參考。

假如理論上覺得接受了,那麼回來看看JVM的一些thread scheduler,因為這個是akka和erlang 生態系統的實現基礎最大差別,也是erlang眾鄙視akka的點。

至於scala類型系統的學習可以先放一邊。


謝邀。

我覺得http://akka.io已經很好了啊。


我推薦下面幾本書,建議都買來看看:

《Java並發編程實戰》—— 基礎,因為 Akka 默認使用的是Java 7所引進的ForkJoin線程池,目前最新的實現是自己內嵌的一個ForkJoin線程池。

《Erlang趣學指南》—— 基礎,因為學習 Akka不得不了解 Actor 模型的來源,以及實現。這本書生動有趣,不但涵蓋了基礎知識還包含了OTP的內容,即 Akka 集群。

《Akka 入門與實踐》 —— 入門,本書是入門的 Akka 書,可以保證您快速地上手 Akka,譯者也是摩根的大牛,清華高材生。

《反應式設計模型》—— 進階,本書我們還在翻譯,原書是前 Akka Tech Lead 編寫的 《Reactive Design Patterns》,這本書可以幫助你了解更深的理論層次的知識。

《領域驅動設計 ——軟體核心複雜性應對之道》 —— 進階,這本書雖然不是教你具體的 Akka代碼,但是對你如何使用 Akka 來解決複雜的現實的業務問題幫助非常大。

以上是個人的一點建議,雖然我也是為了擴大我們 Akka 社區的圈子:)

當然如果你想要了解 Netty 也可以關註:如何評價《Netty實戰》這本書? - 知乎


akka的官方文檔還不錯,有Java和Scala的PDF下載。

新手入門有一個Note系列,我個人覺得是入門非常好的讀物,blog地址:

Summary of Notes(讀akka那部分)

也有中文翻譯,你google下。


相對來說AKKA的入門還是比較難的, 主要難在從寫一個hello world到寫出真正可以用的系統需要挺長時間的,我自己就花了兩年時間。推薦看看 effective akka 會讓你離實際使用更近一些。


Akka 的文檔高度精鍊,入門的確有難度。我的體會是抓住幾個要點:

  • 我覺得用 Akka 的話,最好還是學習 Scala, 用 Scala 來編寫 Akka 項目的代碼。這就需要看一兩本經典入門的 Scala 語言的書,數量不要多,內容不要太深。最好是英文原版,因為你後面需要搜索問題的時候,英文資源非常豐富。
  • Akka 官網文檔的 sample code 中的 test code 仔細研究。調試、運行這些 test code.
  • Akka 文檔中不懂的地方用英文上 Google 來搜索,有很多英文博客、Stackoverflow 問答貼解釋這些點。這些資源非常豐富,請放心。


我主要用akka-http。理解actor模型和相關操作,比如收到不同的消息會做什麼樣的事情。

把消息封裝成case class, 然後用future非同步來處理callback。

最近看了effective akka, 很短,只有70頁,適合初學者。還有akka in action也還在看。

Scala類型轉換,還有Spray-json可以了解一下。

測試框架 比如Scalatest, Scalamock也可以幫忙寫出好代碼。


Akka中文文檔

不過翻譯質量不太好,部分章節沒有,建議和英文對照看。

最好的學習方法是一邊寫一邊看文檔。


推薦閱讀:

如何學習scala,akka,play framework?

TAG:Scala | Akka |