用途:面向生产级 Erlang 系统,介绍 OTP(Open Telecom Platform)的行为模式,即常见进程类型的可复用抽象。这些抽象负责消息传递、错误处理与状态管理等复杂细节,让开发者专注业务逻辑,同时保持系统可靠性。
主要能力:覆盖 gen_server(有状态进程与客户端-服务器模式)、gen_statem(显式状态转移的有限状态机)、supervisor 与监督树(进程生命周期管理与故障恢复)、gen_event(事件分发协调)、application 行为(打包)以及构建健壮 OTP 系统的模式。
使用方式与示例:行为定义进程必须实现的接口,OTP 负责基础设施。gen_server 通过 start_link、handle_call(同步调用)、handle_cast(异步)、handle_info、terminate、code_change 等回调实现;资料给出 counter_server、cache_server、带超时的 session_server 示例。gen_statem 通过 callback_mode(如 state_functions、state_enter)与各状态函数实现,资料给出 door_fsm 与 connection_fsm 示例。supervisor 通过 init/1 返回 SupFlags 与 ChildSpecs,支持 one_for_one、one_for_all、rest_for_one 策略,可嵌套组成监督树,并可用 start_child/stop_child 动态监督。
适用场景:需要长生命周期有状态服务、复杂状态机、进程失败自动恢复与资源清理的 Erlang/OTP 系统。
限制与建议:资料列出最佳实践与常见陷阱,例如在 handle_call 中阻塞会导致死锁、未匹配全部消息模式会造成未处理消息堆积,建议实现全部回调、保持状态记录简单、为调用设置合适超时、按组件依赖设计监督层级并故意崩溃子进程验证恢复。资料未提供版本要求、性能数据或安装命令。