学习
Elixir 的官方文档包含一个 入门指南,可帮助您了解 Elixir 的基础知识。之后,它将探讨如何使用 Mix 和 OTP 来构建项目。Elixir 还包含 丰富的 API 文档。
Elixir 社区也制作了大量资源,可以帮助来自不同背景和视角的人学习这门语言。我们将在下面列出其中一些。我们相信您会找到适合您学习节奏和目标的资源。
书籍
Elixir in Action
《Elixir in Action》是一本教程书籍,旨在帮助新接触 Elixir 和 Erlang 的开发者,让他们能够独立开发复杂的系统。不需要任何关于 Elixir、Erlang 或函数式编程的知识,但假设读者有几年使用主流面向对象语言(例如 C#、Java、Python 或 Ruby)的生产经验。
这本书从 Elixir 语言和函数式编程习语的基本介绍开始。书的中心部分涉及 Erlang VM 和 OTP,讨论并发编程、容错和分布式系统等主题。最后,您将学习如何将代码打包成组件,创建独立的可部署版本,以及排查运行中的系统问题。理论部分通过一个简化的示例来演示,这个示例在整本书中逐步扩展成一个完全独立的可发布系统。
Programming Elixir 1.6
本书是面向有经验的程序员的 Elixir 入门书,针对 Elixir 1.6 及更高版本进行了全面更新。探索函数式编程,但没有学术上的过度强调(再跟我说一遍单子)。创建并发应用程序,但无需进行任何锁定和一致性方面的繁琐处理。
了解 Elixir,这是一种现代的、函数式的、并发的语言,构建在坚如磐石的 Erlang VM 之上。Elixir 的实用语法和内置的元编程支持将使您工作效率更高,并让您长期保持兴趣。也许现在是下一件大事出现的时候了。也许那就是 Elixir。
Adopting Elixir
采用不仅仅是编程。Elixir 是一种激动人心的新语言,但要成功地将您的应用程序从头到尾地开发出来,您需要了解的不仅仅是语言本身。您需要这本书中的案例研究和策略。
学习从设计和团队建设到管理利益相关者,再到部署和监控,涵盖应用程序整个生命周期的最佳实践。超越语法和工具,学习从概念到生产开发 Elixir 应用程序所需的技巧。
Joy of Elixir
Joy of Elixir 是一本面向已经了解一些计算机知识但几乎没有编程经验的人的编程入门书。
本书将以一种有趣且愉快的的方式教授您 Elixir 编程语言的核心概念。如果您完全是编程新手,想学习如何使用编程的力量让计算机执行操作,并且想在学习过程中体验快乐,那么请阅读本书!
Learn Functional Programming With Elixir
Elixir 的直观语法和本指南为您提供了一条清晰简单的路径,可以学习现代函数式编程技巧。不需要任何函数式编程经验!本书将以合适的节奏引导您学习正确的概念,探索不可变的值和显式数据转换、函数、模块、递归函数、模式匹配、高阶函数、多态性和错误处理,同时避免副作用。不要带着命令式思维踏上 Elixir 之旅!要充分利用函数式语言,您需要用函数式思维思考。本书将帮助您实现这一目标。
The Toy Robot Walkthrough
The Toy Robot 是面向新程序员的常见面试练习。这本简短的书将通过 BDD 风格,以一些很棒的解释和图像,引导您学习如何在 Elixir 中实现它。
如果您是新接触 Elixir 的开发人员,已经学习过一些 Elixir 的基础教程,并且正在寻找下一阶段的学习内容来提高自己的技能,那么本书是一个不错的起点。它涵盖了从头到尾的 Toy Robot 练习,并在过程中使用 Elixir 特性(例如 ExUnit 和 Doctests)进行测试。
Elixir Succinctly免费
Elixir Succinctly 是一本免费电子书,可以帮助您开始学习 Elixir。它涵盖了安装和语言和语法的入门步骤。然后它描述了 Erlang/OTP 平台,描述了消息、进程和 GenServer。最后一部分涵盖了构建示例 Elixir 应用程序。
深入书籍
Metaprogramming Elixir
使用 Elixir 宏编写代码来编写代码。宏使元编程成为可能,并定义了语言本身。在本书中,您将学习如何使用宏来扩展语言,使用快速、易于维护的代码,并以您从未想过的方式共享功能。您将发现如何用您自己的首选特性来扩展 Elixir,优化性能,以及创建特定于领域的语言。
Designing Elixir Systems with OTP
您知道如何在 Elixir 中编写代码;现在学习如何用 Elixir 的思维思考。学习如何设计具有智能层的库,这些层可以塑造正确的数据结构,从一个函数流向另一个函数,并提供正确的 API。拥抱与我们电话系统保持可靠和快速运行 30 多年的 OTP。超越对 OTP 函数的理解,了解底层发生的事情,以及为什么这很重要。利用这些知识,本能地知道如何设计能够为您的用户提供快速且弹性服务的系统,这一切都以 Elixir 为中心。
Concurrent Data Processing in Elixir
学习在 Elixir 中编写并发代码的不同方法,提高应用程序的性能,而不会牺牲可扩展性或容错能力。大多数项目都从运行后台任务和并发处理数据中获益,但 OTP 和各种库的世界可能具有挑战性。使用哪个 Supervisor 和什么策略?GenServer 怎么样?也许您需要背压,但 GenStage、Flow 或 Broadway 是更好的选择吗?您将学习所有需要了解的知识来回答这些问题,立即开始构建高度并发应用程序,并编写不仅快速,而且对错误具有弹性且易于扩展的代码。
Erlang in Anger免费
本书旨在成为一份关于如何在战争时期成为 Erlang 医生的指南。它首先是一个关于如何理解故障来源的技巧和窍门的集合,以及一个关于不同代码片段和实践的词典,这些代码片段和实践帮助开发人员调试用 Erlang 构建的生产系统。
课程
Elixir School免费
Elixir-School 是一项由社区驱动的开源项目,灵感来自 Twitter 的 Scala School。该网站的内容包括关于各种 Elixir 主题的同行评审的课程,难度各不相同。这些课程目前提供 10 多种语言版本,旨在使 Elixir 编程更容易被非英语使用者访问。
Pragmatic Studio's Elixir/OTP Course
在本课程中,您将从头开始构建一个并发、容错的应用程序,将 Elixir 和 OTP 付诸实践。通过开发一个使用真实代码的真实应用程序,您将获得实践经验,将所有部分整合在一起,以 Elixir/OTP 方式构建应用程序。
课程的前半部分侧重于 Elixir 的核心方面、原则和技术。在后半部分,我们将超越基础知识,重点介绍使 Elixir/OTP 独树一帜的方面:并发进程、Actor 模型、OTP 行为和故障恢复。
如果您是 Elixir 新手,您将以一种引人入胜的格式获得循序渐进的指导,这种格式在其他地方找不到。如果您有 Elixir 经验,您将对一直被您认为理所当然的事情有更深入的了解,并填补任何知识空白。
grox.io's Elixir Course
学习像编程语言这样复杂的概念,最好使用多种格式。Groxio 的学习方法采用交互式迷你书面向初学者,视频概述面向新手,在线书籍面向展示更高层次的概念,带有实时编码的视频通过对初学者和专家都有意义的项目来模拟高级结对编程。
Elixir 模块是一个完整的程序,包含一本 80 页的书、8 个视频、数十个练习和两个完整的测试优先项目。初学者可以学习这门语言,而专家则可以填补典型的盲点,例如编写符号、构建宏和使用流。
grox.io's OTP Course
本课程从设计的角度教授 OTP,展示了一个将项目分解成层的系统。本课程在这些分层概念的基础上构建,包含一本 60 页的书、12 个视频、项目和精选链接,以便对棘手的 OTP 概念进行更深入的探讨。
了解背压是如何工作的,进入监管树内部,并学习构建您的动态监管器。初次学习 OTP,或通过阅读书籍、观看视频和完成使用 Groxio 的媒体混合的引导项目来巩固您的直觉,这种媒体混合旨在帮助您从新手到专家。
ThinkingElixir.com's Pattern Matching Course免费
模式匹配是一个非常强大的语言特性。它几乎存在于 Elixir 的每个角落。为了让您能够阅读 Elixir 代码并进行跟踪,您必须了解模式匹配。
一旦您“理解”了模式匹配,它就会感觉像一种超级力量。模式匹配使新的编码模式成为可能。您开始忘记在其他语言中使用的一些模式,因为现在您可以创建比以前更清晰、更优雅的代码!
本课程涵盖了 Elixir 的设置、数据类型、如何对每个数据类型进行模式匹配等等!包含的 TDD 项目可以帮助您轻松应用所学知识。
LearnElixir.tv
LearnElixir.tv 是一门视频课程,提供关于 Elixir 主要特性的深入、循序渐进的视频。视频时长从 7 分钟到 15 分钟不等。
它旨在帮助初学者通过逐步积累知识来熟悉 Elixir 的所有特性。有经验的 Elixir 开发人员也可能会学到一两招。
Educative.io's Metaprogramming in Elixir Course
了解元编程的概念。通过发现 Elixir 中宏系统的全部潜力,学习如何提升您的编程技能。在基础层面上理解元编程的来龙去脉,并通过编写更少的代码来实现更多功能,从而编写出不可思议的库。
Learn-Elixir.dev
按照自己的节奏,学习 132 个视频、30 个测验、9 个作业和 2 个您选择的重大项目,以展示您对生产级代码质量的掌握。您将学习语法/基础知识、REST、GraphQL with Absinthe、Phoenix、OTP、测试、Ecto、架构、如何扩展、如何进行分布式等等…
每周三太平洋时间中午 12:00 参加我们的每周直播辅导课程,以弥补任何知识空白,并获得您特定问题的具体答案!
找到你的创业点子,迁移代码库,构建你的应用程序!我们的中期和最终项目为你创造了一个双赢的场景,让你在掌握语言的同时完成你的个人项目。或者,如果你更专注于职业发展,我们可以提供推荐、建议或参考,并将你完成的项目托管在 GitHub 上,向招聘经理展示你熟练的 Elixir 编程能力。
屏幕录制
ElixirStreams免费
ElixirStreams 提供免费的视频提示(少于 3 分钟!),涵盖各种 Elixir 和 Phoenix 主题。这些视频帮助你在学习新工具和技巧的同时磨练技能,并让你了解语言的最新发展。
ElixirCasts.io免费
ElixirCasts 是一个简单屏幕录制的集合,涵盖了广泛的 Elixir 和 Phoenix 主题。每一集都解决一个特定的问题或探索一个新的库,用易于理解的语言对其进行解释。
剧集范围从初学者到更中等和高级的主题。让我们一起构建你的 Elixir 知识,每次一集。
Alchemist Camp免费
Alchemist Camp 是最大的免费 Elixir 屏幕录制制作商,在 YouTube 上拥有数十小时的屏幕录制。这些视频通常是长篇形式,围绕项目展开,例如构建一个小型 Phoenix 克隆,或者构建一个 OTP 工作器来定期从多个 API 收集统计数据。内容由观众需求驱动。
Alchemist Camp 针对那些具有一定 Web 开发经验并希望在 Elixir 中发布实际项目的个人。
其他资源
Elixir 记忆卡
Elixir 记忆卡是一套精美制作的、专业印刷的扑克大小的记忆卡,帮助你掌握 Elixir 语言。
记忆卡是突出知识差距、识别误解或错误观念以及帮助你记忆关键概念的好方法。在小组或团队中使用时,记忆卡可以帮助激发有趣的讨论,并通过玩游戏帮助人们以一种有趣的方式聚在一起学习。
与书籍、教程和屏幕录制相结合,使用记忆卡是掌握 Elixir 的杀手组合。
Elixir Koans免费
Elixir koans 是一种有趣、简单的方式来开始学习 Elixir 编程语言。它是一次对该语言的习惯性探索。
Exercism.io免费
Exercism.io 是一个开源平台,提供许多语言(包括 Elixir)的免费练习和指导。它提供了各种难度的练习,从字符串处理到使用 OTP,这些练习由志愿者指导。完成练习后,你还可以查看其他学生的解决方案。
Running in Production 播客免费
Running in Production 是一个播客,开发人员和工程师在其中讨论在生产环境中运行小型和大型 Elixir / Phoenix Web 应用程序。
主题包括技术栈、成功案例、经验教训和部署技巧。