Elixir/Phoenix 1.3拆分上下文
在Phoenix 1.3中,建议将所有业务逻辑放在上下文中,但一个上下文可以处理许多实体(我不知道正确的词,因为Phoenix 1.3中不再存在“model”),而且它增长非常快。将上下文拆分为多个文件的正确方法是什么 编辑 我有帐户上下文和两个实体:用户和凭据。即使有这两个实体,上下文看起来也有点复杂。我必须滚动浏览用户的功能才能访问凭证的功能。现在这并不是一个真正的问题,但我认为在一个上下文中可以有两个以上的实体,然后它可以是非常巨大的。还是我错了Elixir/Phoenix 1.3拆分上下文,elixir,phoenix-framework,Elixir,Phoenix Framework,在Phoenix 1.3中,建议将所有业务逻辑放在上下文中,但一个上下文可以处理许多实体(我不知道正确的词,因为Phoenix 1.3中不再存在“model”),而且它增长非常快。将上下文拆分为多个文件的正确方法是什么 编辑 我有帐户上下文和两个实体:用户和凭据。即使有这两个实体,上下文看起来也有点复杂。我必须滚动浏览用户的功能才能访问凭证的功能。现在这并不是一个真正的问题,但我认为在一个上下文中可以有两个以上的实体,然后它可以是非常巨大的。还是我错了 这个例子来自phoenix的hexdocs
这个例子来自phoenix的hexdocs.pm,这是一个非常重要的问题,但实际上,如何组织代码完全取决于您自己。Phoenix不会影响您的任何风格,即使上下文只是一个建议,用于设计代码 现在,您的结构如下所示:
lib
> accounts
> accounts.ex
user.ex
credentials.ex
因此,您可以将凭证
和用户
拆分为完全独立的上下文,这可能不是最好的主意,因为它们与当前帐户
上下文相关,或者尝试从将其作为子上下文引入中获益。很可能您会与用户和凭据发生名称冲突。这仍然是可行的
凭证
可能会成为身份验证
上下文的一部分,如果您希望以这种方式设计的话。你可以选择几个方法来解决这个问题
假设您希望保持当前的结构,但引入子上下文,但在最后,您仍然希望通过主上下文调用它们,您可以在这里使用
最好的建议是考虑下一步你的代码会发生什么,并尝试以逻辑的方式把事情分类在一起。<代码>证书> /代码>只针对用户,但它们是授权用户的方式之一。因此,您可以将它们分组为模式和授权的子文本或帐户上下文。
您可能需要在多个上下文之间拆分实体。“你能告诉我们你是什么实体吗?”泰勒,我编辑了这个问题