Learning
XIII
Volume XIII · Elixir 编程

Elixir

Concurrent, fault-tolerant systems on the BEAM.

28 dispatches · Last entry 26 JUL 2026
Index · 28 entries
01
Anki

A: 像 Clojure 的 keyword / Haskell 的 Symbol。:ok、:error、:running、:foo_bar。

25 JUL 2026 · 9 min
02
Concepts Vultr Glossary

Vultr 的"一台虚拟机"。类比 AWS EC2 Instance / DigitalOcean Droplet / Hetzner Cloud Server。

25 JUL 2026 · 12 min
03
Extensions

如果你赶时间(目标:3 天能改 ex/elixir 的代码):

25 JUL 2026 · 14 min
04
Extensions Cf Ai Rag

┌──────────────┐ ┌──────────────┐ ┌──────────────┐

25 JUL 2026 · 9 min
05
Extensions Serverless Architecture

Elixir 相比 JVM/Node 在"按需起 VM"场景有 3 个独有优势:

25 JUL 2026 · 23 min
06
Elixir 语法全景

一节课覆盖所有语法点——基于你已知的 Haskell/Clojure/Scala 经验做对照。

01 JAN 1970 · 12 min
07
Elixir 并发与 OTP

BEAM 进程 + GenServer + Supervisor——Elixir 区别于其他 FP 语言的独门。

01 JAN 1970 · 11 min
08
Elixir 独门机制

协议 / 行为 / 宏 / 热代码——这些是 Elixir 区别于其他 FP 语言的独门武器,读完能看懂任何 Oban/Ecto 库的源码。

01 JAN 1970 · 11 min
09
Elixir vs Go / Clojure / C / Java / Kotlin

一节课把 Elixir 跟 5 个主流语言的核心差异过一遍,速查表为主。

01 JAN 1970 · 10 min
10
综合测验 + 代码练习

8 道读代码 + 2 道改代码 + 5 道综合题。检验你 0001-0004 是否掌握。

01 JAN 1970 · 4 min
11
Mix 构建工具速通

Elixir 的官方构建工具,对比你熟知的 Clojure Leiningen 和 Java Maven。

01 JAN 1970 · 12 min
12
Cloudflare 速通 — 8 个 killer features

不是 CF 全家桶介绍,是 对 agquant.com 真正有用 的 8 个功能。

01 JAN 1970 · 11 min
13
Vultr 速通 — API + Snapshot + 按小时起 VM

不是 Vultr 介绍,是 对 agquant.com / ex/elixir 项目真正有用 的 8 个能力。

01 JAN 1970 · 9 min
14
SEO 速通 — 让 agquant.com 被搜到

不是 SEO 入门,是 让 agquant.com/learning/ 在 Google / Bing / 百度 上排名 的 10 个实战步骤。

01 JAN 1970 · 13 min
15
Auth 系统速通 — 零后端 + 反爬虫 + 不用微信 300/年

给 agquant.com/learning/ 的实战方案:不写后端、不被脚本注册、便宜到不肉疼、不用微信年费。

01 JAN 1970 · 10 min
16
Oban 任务队列实战

把一次 HTTP 请求,变成可靠、可重试、可观测的后台工作。

01 JAN 1970 · 6 min
17
Ecto Schema 深潜:prefix / 复合主键 / Changeset

Ecto 的 schema 不仅是字段映射:prefix 决定表落在哪个 PostgreSQL schema,复合主键需要显式声明,changeset 才是真正的"写入网关"。

01 JAN 1970 · 6 min
18
Ecto Query DSL 与 SQL:能 query 就不要 raw

Ecto.Query 几乎能覆盖所有标准 SQL:join、聚合、窗口、CTE、FILTER、LEFT JOIN。raw SQL 应该留给"DSL 真的写不出来"的场景。

01 JAN 1970 · 6 min
19
Plug.Router:match / dispatch / Parsers / CORS / JSON

Plug 既是 Web 服务器抽象,也是中间件协议。Plug.Router 用宏定义路由,背后是一个 match-dispatch 流水线;Parsers 把请求体变成你能用的 map;CORS 是一个普通 Plug。

01 JAN 1970 · 5 min
20
OTP 监督树:Application / Supervisor / 条件 child / test 环境

OTP 监督树不是"启动一些进程"那么简单:它规定了"哪些进程必须活"、"哪些可以暂时缺"、"哪些只在测试环境出现"。

01 JAN 1970 · 6 min
21
Finch HTTP 客户端:timeout / 业务错误 / SSE

Finch 是 Elixir 生态里基于 Mint / :httpc 的 HTTP 客户端。它走 BEAM 进程模型,能复用连接、能做 SSE、能精确控制超时和错误语义。

01 JAN 1970 · 6 min
22
Behaviour / Protocol / Macro:把多态写进代码结构

Elixir 是动态类型语言,但并不意味着没有"接口"。Behaviour、Protocol 和 Macro 是三种把多态写在结构里、让代码自我描述的工具。

01 JAN 1970 · 8 min
23
GenServer / ETS / Code.reload 热重载

GenServer 是 OTP 的核心并发原语;ETS 是 BEAM 自带的内存表;把代码文件和它们结合起来,你就能做出"运行时改业务规则"的系统。

01 JAN 1970 · 7 min
24
Redix bounded LPUSH / 背压 / 队列监控

Redis 的 LIST 是最简单的队列,但生产环境必须解决三个问题:连接池、上游背压、运行时监控。Redix 是 Elixir 生态首选的 Redis 客户端。

01 JAN 1970 · 7 min
25
Oban cron / queue / retry / discarded / 失败通知

Oban 不只是"入队-出队"。它在数据库里维护 Job 状态机,提供 cron 调度、唯一约束、retry 策略、discarded 告警。掌握这些钩子,才能让后台任务真正可靠。

01 JAN 1970 · 7 min
26
ExUnit / DataCase / Sandbox / Behaviour 替换 / 集成测试

Elixir 的测试生态不只是 ExUnit。Ecto Sandbox 让测试可以并行跑、互不干扰;Mox 让你在测试里替换 Behaviour 实现;Phoenix / Plug 测试让 HTTP 集成变得自然。

01 JAN 1970 · 7 min
27
IEx 与 REPL 实战

不要只把 REPL 当计算器:用 IEx 读代码、查进程、调试监督树和验证数据库查询。

01 JAN 1970 · 5 min
28
Readme

本教程几乎所有 Elixir 代码例子都来自 ex/elixir/ 下的实际项目:

26 JUL 2026 · 5 min