(譯)按部就班學習Elixir

——Chris Bell Learning Elixir at Made by Manyhtml

在今年奧蘭多的Elixir大會上演講以後,就常常有人問我:大家團隊是如何學習Elixir和OTP的?react

和學習其餘語言同樣,學習Elixir也須要付出時間,須要耐心。以咱們的經驗來看,對Ruby和JavaScript很熟練的工程師,可以很好地適應Elixir。不過,咱們發現,整體來講有三個難點:git

  1. 語法和函數式的思惟方式。
  2. Phoenix和Ecto。
  3. OTP和進程的概念。

語法&函數式思惟方式

Programming Elixir, Dave Thomas (Pragmatic Programmers)
不要光看,要作練習。這樣你才能瞭解這門語言的方方面面。說實話,我沒有作徹底部的練習,可是我作完了OTP章節,而後本身開始了這方面的試驗。github

Exercism.io Exercises
我很喜歡這裏面的練習,類型不少。有些須要你花上一些時間來解決。我很享受這種簡短的編程練習。web

Cameron Price’s talk on Micropatterns from Empex 2016
一篇關於模式的有趣演講,適合剛開始學習Elixir的人。編程

Phoenix 和 Ecto

Programming Phoenix: Chris McCord, Jose Valim and Bruce Tate (Pragmatic Programmers)
參考書中的聖經。咱們用它來搞清楚構建Phoenix應用的正確方法,它也是一個很好的Phoenix和Ecto入門書。設計模式

Writing a Blog Engine in Phoenix, Brandon Richie
教你從零開始構建Phoenix應用。socket

A Deep Dive into Ecto, Lew Parker
很詳細,有些內容有點過期。分佈式

Working with Ecto Associations and Embeds, Jose Valim
當我要處理Ecto中的Changeset和嵌套關係時,經常就會想到這篇文章。ide

OTP和進程的概念

這裏就開始深刻了。OTP並非一個巨大的庫,可是學會如何使用進程來構建軟件,確實是一道須要跨越的障礙。你還須要對BEAM有所瞭解。

Mix and OTP Guide, Elixir Lang
這對你熟悉一些基本概念頗有幫助。儘管看完了你可能還有些迷惑,但不要緊。

The Zen Of Erlang, Fred T-H
我找不到比這篇文章更好的對Erlang的歸納了。我數不清有多少次打開它。這是一篇長文,你須要準備好書籤。

Intro to OTP, Jesse J Anderson
從零開始構建一個GenServer,能幫助你理解它們是如何工做的。

The Most Basic Erlang Service -> Worker Pattern
一篇Supervisor的例子。沒有什麼特別的地方,可是一篇很好的介紹,關於以Erlang的方式構建軟件。

Designing for Scalability with Erlang/OTP, Francesco Cesarini, Steve Vinoski (O’Reilly Media)
大量優秀的設計模式和技巧。我剛開始讀,不過已經被人推薦過不少次了。

用OTP作個遊戲

一位咱們的工程師,Eli,設計了一個小遊戲。你能夠經過它來學習。

這裏還有一些其它的遊戲,能幫助你開始學習:

  1. Building Battleship in Phoenix
  2. Playing Poker with Elixir
  3. Tic-Tac-Toe in Elixir

咱們能夠用所學到的OTP知識來擴展它們,好比用Ecto來保存數據,用web sockets (Phoenix Channel) 來實時交流,甚至是分佈式和碎片化。

相關文章
相關標籤/搜索