OTP Essentials 是一份用于 Elixir/OTP 开发的编码规范,适用于在编写 GenServer、Supervisor、Task、Agent、Registry 或 ETS 之前参考。其核心观点是:进程用于并发、状态与隔离,不用于组织代码;业务逻辑放在纯模块中,回调只做协调。
主要规则包括:不要为了“归类函数”而创建 GenServer;handle_call、handle_cast、handle_info 等回调保持轻薄;init/1 要快速返回,繁重工作用 {:ok, state, {:continue, term}} 延迟执行;对外提供公共 API 模块(如 MyApp.Foo.do_thing/1),不直接调用 GenServer.call/2;每个回调加 @impl true;长期存活进程必须纳入监督树;进程命名用 Registry 而非动态原子;ETS 采用 :protected 并由属主进程写入,读可绕过 GenServer;处理 Task.async_stream 的 {:exit, reason};让进程在监督下崩溃,避免在回调中笼统 try/rescue。
使用方式上,文档给出 GenServer、Task、Agent、Registry、ETS 的骨架示例与正确/错误对照,并建议监督策略默认使用 :one_for_one。限制方面,资料未提供安装命令、版本要求、收费信息或配套工具,相关内容暂未提供。