——Chris Bell Learning Elixir at Made by Manyhtml
在今年奥兰多的Elixir大会上演讲以后,就常常有人问我:大家团队是如何学习Elixir和OTP的?react
和学习其余语言同样,学习Elixir也须要付出时间,须要耐心。以咱们的经验来看,对Ruby和JavaScript很熟练的工程师,可以很好地适应Elixir。不过,咱们发现,整体来讲有三个难点:git
Programming Elixir, Dave Thomas (Pragmatic Programmers)
不要光看,要作练习。这样你才能了解这门语言的方方面面。说实话,我没有作彻底部的练习,可是我作完了OTP章节,而后本身开始了这方面的试验。github
Exercism.io Exercises
我很喜欢这里面的练习,类型不少。有些须要你花上一些时间来解决。我很享受这种简短的编程练习。web
Cameron Price’s talk on Micropatterns from Empex 2016
一篇关于模式的有趣演讲,适合刚开始学习Elixir的人。编程
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并非一个巨大的库,可是学会如何使用进程来构建软件,确实是一道须要跨越的障碍。你还须要对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)
大量优秀的设计模式和技巧。我刚开始读,不过已经被人推荐过不少次了。
一位咱们的工程师,Eli,设计了一个小游戏。你能够经过它来学习。
这里还有一些其它的游戏,能帮助你开始学习:
咱们能够用所学到的OTP知识来扩展它们,好比用Ecto来保存数据,用web sockets (Phoenix Channel) 来实时交流,甚至是分布式和碎片化。