(译)循序渐进学习Elixir

为什么80%的码农都做不了架构师?>>>   hot3.png

——Chris Bell Learning Elixir at Made by Many

在今年奥兰多的Elixir大会上演讲之后,就经常有人问我:你们团队是如何学习Elixir和OTP的?

和学习其他语言一样,学习Elixir也需要付出时间,需要耐心。以我们的经验来看,对Ruby和JavaScript很熟练的工程师,能够很好地适应Elixir。不过,我们发现,总体来说有三个难点:

  1. 语法和函数式的思维方式。
  2. Phoenix和Ecto。
  3. OTP和进程的概念。

语法&函数式思维方式

Programming Elixir, Dave Thomas (Pragmatic Programmers)
不要光看,要做练习。这样你才能了解这门语言的方方面面。说实话,我没有做完全部的练习,但是我做完了OTP章节,然后自己开始了这方面的试验。

Exercism.io Exercises
我很喜欢这里面的练习,类型很多。有些需要你花上一些时间来解决。我很享受这种简短的编程练习。

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应用。

A Deep Dive into Ecto, Lew Parker
很详细,有些内容有点过时。

Working with Ecto Associations and Embeds, Jose Valim
当我要处理Ecto中的Changeset和嵌套关系时,常常就会想到这篇文章。

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) 来实时交流,甚至是分布式和碎片化。

转载于:https://my.oschina.net/ljzn/blog/753550

你可能感兴趣的:((译)循序渐进学习Elixir)