Elixir 1.17 · Phoenix 1.7 · LiveView 1.0 · BEAM

Elixir / Phoenix 实战

Erlang BEAM 虚拟机上的现代 Web 开发——天生并发、进程隔离、容错自愈、热代码升级。Phoenix + LiveView 让你不写一行 JavaScript 就能做出实时交互界面,背后是 WhatsApp 与 Discord 同款的技术基石。

10 章 · 深度讲透 BEAM / OTP / Phoenix 从语法到 Fly.io 部署

为什么选 Elixir

继承 Erlang 三十年电信级可靠性,补上现代语法与元编程

Elixir 运行在 Erlang 的 BEAM 虚拟机上。这个 VM 由爱立信于 1980 年代为电信系统设计,目标是九个九的可用性 (99.9999999%)、热代码更新与百万并发连接——这些特性被 Elixir 完整继承,并配上了友好语法、强大元编程与 Mix 构建生态。

Phoenix LiveView 则是革命性的:服务端渲染 + WebSocket 差量更新,无需写一行 JavaScript 就能构建实时交互界面。Discord 用 Elixir 支撑 1100 万并发用户;WhatsApp 用 Erlang 以仅 50 名工程师服务 4.5 亿用户。

并发模型对比最直观:BEAM 进程约 2KB 初始堆、天生隔离,同一台机器轻松 200 万+ 并发连接;Go goroutine 堆 8KB 起、GC 暂停影响尾延迟,典型量级在数十万;Node.js 单线程事件循环,维持万级连接就要精心调优。换句话说,"并发"对 BEAM 是基本单位,对其他语言是要额外付出代价才能争取的能力。

课程大纲

10 章 · 从语法到 OTP、Phoenix、LiveView 到生产部署

Chapter 01 Elixir 简介与安装 José Valim 与 BEAM 故事 · Elixir vs Go vs Node.js 并发对比 · asdf/brew 安装 · iex REPL · mix 构建工具 · Hello World · 关键名词解释
入门环境
Chapter 02 Elixir 基础语法 不可变数据 · 原子 :atom · 元组/列表/映射 · 模式匹配 = 运算符 · def/defp 函数 · 管道运算符 |> · Guard 守卫 · 实战:数据转换管道
语法基础
Chapter 03 函数式编程核心 Enum.map/filter/reduce · 匿名函数 fn/& · 闭包 · 尾递归优化 · Stream 惰性计算 · for 推导式 · defmodule · 实战:数据处理流水线
函数式Stream
Chapter 04 模式匹配与宏 嵌套结构解构 · 多子句函数 · case/cond/with 表达式 · defmacro 元编程 · defstruct · Protocol 协议 · 实战:解析复杂 JSON
元编程
Chapter 05 并发与 OTP spawn/send/receive · Task 异步 · GenServer 状态服务器 · Supervisor 监督树 · Application 结构 · Agent · 实战:并发 Web 爬虫
OTP并发
Chapter 06 Phoenix 框架基础 mix phx.new · MVC 架构 · Plug 中间件管道 · Ecto Schema/Changeset/Query · 数据库迁移 · RESTful API 完整实现
PhoenixPlug
Chapter 07 Phoenix LiveView 实时 UI LiveView 原理:WebSocket + 差量更新 · mount/handle_event/handle_info 生命周期 · HEEx 模板 · Form 绑定 · 无需 JS 的实时特性
LiveViewHEEx
Chapter 08 Phoenix Channels 实时通信 Channel vs LiveView 选型 · 加入/离开频道 · 广播消息 · 前端 JS 客户端 · Presence 在线追踪 · 实战:多人聊天室
ChannelsWebSocket
Chapter 09 Ecto 数据库深度 belongs_to/has_many/many_to_many 关联 · Ecto.Query DSL · 事务 Repo.transaction · 虚拟字段 · N+1 preload · 实战:博客系统数据建模
Ecto数据库
Chapter 10 测试、部署与生态 ExUnit 测试框架 · ExMachina 工厂 · mix release 自包含发布 · Docker 化 · Fly.io 托管 · LiveView 未来展望 · 学习资源
测试部署