(译)按部就班学习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) 来实时交流,甚至是分布式和碎片化。

相关文章
相关标签/搜索