学习 Elixir:终极指南
学习 Elixir:终极指南
学习 Elixir:终极指南
如果你有面向对象编程的背景,Elixir 可能会让你有点困惑。
幸运的是,有很多资源可以帮助你学习这门语言和函数式编程范式。下面我列出了一些我认为最有价值的资源。
本文分为两部分。第一部分,我回顾了一些面向 Elixir 初学者的资源。完成第一部分后,第二部分将提供更多建议,帮助你提升技能。
由于每个人的学习方式都不同,我尽量提供多样化的学习资源,以便您可以选择适合自己学习风格的内容。祝您学习顺利!
利用这些资源学习 Elixir
Elixir 书籍
编程 Elixir 和 Elixir 实战
以下是两本最适合 Elixir 初学者的书籍:《Programming Elixir》和《Elixir in Action》。
两者都包含三个部分:引言/语法、OTP 以及现在可以跳过的内容。
两者之间存在一些差异。《Programming Elixir》更易于上手,对初学者更友好,而《Elixir in Action》则更加详细,这在语法部分是一个缺点,但在OTP(一次性编程)部分则是一个优点。
如果可以同时阅读这两本书,我建议你先读到第三部分。如果不能,那就选择《Elixir in Action》——它能让你更快地掌握生产级别的 Elixir 编程。
灵药的喜悦
以上两本书都假设你是从其他编程语言转而学习 Elixir。如果你是第一次接触 Elixir,《Joy of Elixir》非常适合完全的编程初学者。
在线资源
Elixir 的文档
Elixir 的主页内容几乎相当于一本 Elixir 专著。它可以作为语法的快速入门指南,如果您迫不及待地想要启动项目,它甚至可以替代一本“真正的书籍”。Elixir 的文档以其卓越品质而闻名,所以请放心使用。
Elixir School
Elixir School是一个非常棒的资源,涵盖了语法、OTP(一次性编程)以及 Ecto(Elixir 的数据库工具)和其他库的相关内容。它与 Elixir 官网上的入门介绍有些类似,但更加深入。
如果您想使用在线资源而不是书籍,或者您觉得用您的母语阅读 Elixir 更舒适(Elixir School 提供 24 种不同语言的翻译!),这可能是您的选择。
跟我一起学:灵药
Learn With Me: Elixir是一个很棒的资源,可以与 Joy of Elixir 搭配使用,帮助初学者进一步学习编程。它就像一个私人学习伙伴!
此外,如果您喜欢文笔更流畅的介绍,那么本系列文章正适合您。它涵盖了许多概念,如果您遇到文档或 Stack Overflow 上没有(或无法)解答的问题,它也能提供帮助。
由于这是一个博客,所以它总是在不断完善中,但基本内容已经涵盖。
编程练习
我建议在阅读书籍的同时进行Exercism 的练习,因为这是检验技能、学习新知识和练习 Elixir 的绝佳方式。Exercism 相较于其他“kata”(空手道套路)网站的优势在于,它提供免费的指导。
YouTube上的Elixir教程
有些人可能更容易通过视频理解信息。就我个人而言,当我的大脑还没准备好阅读冗长的书稿段落和代码示例时,我会观看 YouTube 视频来让自己沉浸在相关主题中。
Elixir 教程,作者:Derek Banas
一小时内即可了解 Elixir 的语法,并学习一些代码和关键概念。极其简单,极其有效,绝无废话。
Elixir 中的 OTP 简介
这是对OTP的全面概述。您可以在学习书籍或课程中的OTP部分之前观看此视频。
Elixir简介
如果你更喜欢通过视频学习,这里有一个包含十个视频的系列教程,涵盖了大多数入门编程书籍会涵盖的内容。
Elixir社区
学习过程中,不妨去看看r/Elixir和Elixir 论坛。特别是 Elixir 论坛,那里有很多本指南中未列出的额外内容,值得一看。
如果您想体验更像聊天一样的交流方式,可以加入Elixir Slack 工作区,那里有一个 #beginners 频道,里面有很多热心人士会解答您的问题。此外,也欢迎您来IRC 的#elixir-lang频道闲聊。
中间资源
更多书籍
市面上有很多很棒的 Elixir 书籍;这里推荐一些适合 Elixir 初学者的最佳选择。如果想了解更多,请访问Elixir 论坛的“书籍”版块。
凤凰编程
Phoenix 是 Elixir 的主要 Web 框架。如果你学习 Elixir 的目的是构建 Web 应用,那么你很可能会用到它。《Programming Phoenix》一书清晰地介绍了 Phoenix 及其底层原理。通过这本书,你可以学习 Phoenix 的同时,构建一个还算实用的应用。
编程 Ecto
虽然《Phoenix》一书涵盖了 Ecto 的基础知识,《Programming Ecto》一书则更深入地探讨了 Ecto 的理念以及你可以用它完成的所有事情。
为了搭配观看,这里还有一个关于Ecto的精彩视频:
使用 OTP 设计 Elixir 系统
用强大的“工蜂”做有趣的事情!《使用 OTP 设计 Elixir 系统》一书介绍了如何构建 Elixir 应用程序并正确使用 OTP。它简单易懂,而且一旦你开始使用更高级的功能,例如模块或框架之外的功能,它就非常实用。
EMx有一期节目邀请了作者,如果您想在购买前了解一下您将获得什么,可以去听听。
元编程 Elixir
你知道 Elixir 的大部分代码都是用 Elixir 编写的吗?下面就来揭晓答案。
一流元编程(或称“程序编写程序”)的实现最早在 Lisp 中引入。它在实践中最有用的功能是实现样板代码生成或编译时参数多态性。
Elixir 受 Lisp 的功能启发,为程序员提供了两种元编程方式:定义宏和代码生成。
信不信由你,你可以在编译时获取一个列表,遍历它,并根据列表中的值定义函数!如果你熟悉两个基本操作符:quote 和 unquote(它们实际上是宏,稍后你也可以阅读它们的代码),这一切就变得非常简单。一旦你理解了它们,编写 Elixir 代码就和其他代码一样轻松了。这真是一个非常有用的工具。
阅读《Elixir元编程》一书,深入了解Elixir元编程的各种可能性。
Elixir课程
Elixir for Programmers
《面向程序员的 Elixir》是由 Dave Thomas 编写的课程,他也是《程序员修炼之道》和《Elixir 编程》(本文开头提到的入门书籍)的作者。这门课程直接让你动手构建项目,你将使用 OTP 和 Phoenix 创建一个猜词游戏。如果你需要快速熟悉 Elixir 语言,这无疑是最佳途径。
这门课程不是免费的,但30美元的价格相当划算。
炼金术士营地
Alchemist Camp涵盖了各种主题,适合初级和中级Elixir开发者。虽然观看部分视频需要“专业会员”资格,但免费视频也已经非常值得一看。
Elixir 和 Phoenix 完整训练营
Udemy的课程现在名声不太好,但我浏览了一下这门课,却着实让我惊喜。虽然这门课比较短(也涉及Elixir,但只是浅尝辄止),所以我不推荐完全的初学者学习,但其中关于Phoenix的部分却做得非常出色。
可惜的是,它使用的是 Phoenix 1.2 版本,所以视频中的一些代码对于新版本的 Phoenix 来说已经过时了。不过,如果你足够有冒险精神,我觉得找到正确的代码应该不是什么问题。:)
播客
虽然这些并不是学习 Elixir 基础知识的最佳材料,但如果你想在空闲时间听点什么,为什么不试试呢?
圣水巫师
Elixir Wizards是由 Justus Eapen 和 Eric Oestrich 主持的播客节目。每期节目,他们都会邀请一位嘉宾,探讨嘉宾正在进行的项目或相关话题。目前,节目已播出三季,每季的主题都各有侧重:Elixir 在生产环境中的应用、Elixir 的内部机制以及招聘/培训。
灵药混合物
Elixir Mix的名字和 Elixir 的构建工具一样,虽然容易让人混淆,但它和 Elixir Wizards 非常相似:每期节目都会邀请一位嘉宾,让你了解他们擅长的领域。祝你收听愉快!
我钦佩你的勇气,并祝你成功。学习一门新语言可能很辛苦,但我希望这些资源能对你有所帮助。如果你想了解更多关于 Elixir 的内容,请务必查看我们带有Elixir 标签的文章。
文章来源:https://dev.to/serokell/learn-elixir-the-ultimate-guide-1l7d




