【问题标题】:Why GenFsm is deprecated?为什么不推荐使用 GenFsm?
【发布时间】:2016-06-19 17:24:17
【问题描述】:

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

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

【问题讨论】:

    标签: elixir erlang-otp


    【解决方案1】:

    查看相关提交:https://github.com/elixir-lang/elixir/commit/455eb4c4ace81ce60b347558f9419fe3c33d8bf7

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

    【讨论】:

    • 谢谢。我将直接使用:gen_fsm。
    【解决方案2】:

    Elixir 核心团队认为这太混乱了,建议开发人员寻求其他解决方案。

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

    【讨论】:

      【解决方案3】:

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

      这是 Erlang/OTP 19.0 中的新行为。已经彻底 经过审查,足够稳定,至少可供两个重度 OTP 使用 应用程序,并留在这里。根据用户反馈,我们会 不期望但可以发现有必要使小而不落后 Erlang/OTP 20.0 的兼容更改

      【讨论】:

      • 链接到404,请修复。
      猜你喜欢
      • 2016-02-23
      • 2017-11-04
      • 2011-10-22
      • 2011-04-11
      • 2021-10-12
      • 2012-12-07
      • 2012-05-16
      • 2020-06-29
      • 2014-08-11
      相关资源
      最近更新 更多