为什么GenFsm被弃用了?

时间:2016-03-06 01:40:35

标签: elixir otp

为什么不推荐使用elixir的NullPointerException行为?

我想用GenFsm行为实现有限状态机。 我认为GenFsm不足以描述有限状态机。 因为,Agent不适合描述从同一输入返回每个状态的不同值。

3 个答案:

答案 0 :(得分:12)

请参阅相关提交:https://github.com/elixir-lang/elixir/commit/455eb4c4ace81ce60b347558f9419fe3c33d8bf7

基本上,您现在可以直接从OTP使用:gen_fsm,而不使用Elixir包装器。

答案 1 :(得分:5)

:gen_fsm也被:gen_statem在Erlang / OTP 20.0中弃用和替换,因此请使用通用状态机。有关更多信息,请查看有关Genstatem

的链接
  

这是Erlang / OTP 19.0中的新行为。它已经彻底了   经过评论,足够稳定,可供至少两种重度OTP使用   应用程序,并留在这里。根据用户的反馈,我们会这样做   不要指望,但可以发现有必要让未成年人不落后   兼容的Erlang / OTP 20.0更改

答案 2 :(得分:2)

Elixir核心团队认为它过于混乱,并建议开发人员寻求其他解决方案。

3天前我在它周围写了一个Elixir包装器,并将其推到hex.pm,名称为gen_fsm。这是github页面:https://github.com/pavlos/gen_fsm如果你想查看它。