为什么不推荐使用 GenFsm?
Why GenFsm is deprecated?
为什么不推荐使用长生不老药的 GenFsm
行为?
我想实现具有 GenFsm
行为的有限状态机。
我认为 Agent
不足以描述有限状态机。
因为,Agent
不适合描述从同一输入返回每个状态的不同值。
查看相关提交:https://github.com/elixir-lang/elixir/commit/455eb4c4ace81ce60b347558f9419fe3c33d8bf7
基本上,您现在可以直接从 OTP 使用 :gen_fsm
,无需 Elixir 包装器。
Elixir 核心团队认为它太混乱了,建议开发人员寻求其他解决方案。
我 3 天前围绕它写了一个 Elixir 包装器,并将它推到 hex.pm,名称为 gen_fsm。这是 github 页面:https://github.com/pavlos/gen_fsm 如果您想查看。
:gen_fsm
也在 Erlang/OTP 20.0 中被弃用并替换为 :gen_statem
,因此请使用通用状态机。有关更多信息,请查看关于 Genstatem
的 link
This is a new behavior in Erlang/OTP 19.0. It has been thoroughly
reviewed, is stable enough to be used by at least two heavy OTP
applications, and is here to stay. Depending on user feedback, we do
not expect but can find it necessary to make minor not backward
compatible changes into Erlang/OTP 20.0
为什么不推荐使用长生不老药的 GenFsm
行为?
我想实现具有 GenFsm
行为的有限状态机。
我认为 Agent
不足以描述有限状态机。
因为,Agent
不适合描述从同一输入返回每个状态的不同值。
查看相关提交:https://github.com/elixir-lang/elixir/commit/455eb4c4ace81ce60b347558f9419fe3c33d8bf7
基本上,您现在可以直接从 OTP 使用 :gen_fsm
,无需 Elixir 包装器。
Elixir 核心团队认为它太混乱了,建议开发人员寻求其他解决方案。
我 3 天前围绕它写了一个 Elixir 包装器,并将它推到 hex.pm,名称为 gen_fsm。这是 github 页面:https://github.com/pavlos/gen_fsm 如果您想查看。
:gen_fsm
也在 Erlang/OTP 20.0 中被弃用并替换为 :gen_statem
,因此请使用通用状态机。有关更多信息,请查看关于 Genstatem
This is a new behavior in Erlang/OTP 19.0. It has been thoroughly reviewed, is stable enough to be used by at least two heavy OTP applications, and is here to stay. Depending on user feedback, we do not expect but can find it necessary to make minor not backward compatible changes into Erlang/OTP 20.0