Python 如何最好地组织Django系统的规则组件?
我正在用Django设计(并最终编写)一个系统,它由两个主要组件组成:Python 如何最好地组织Django系统的规则组件?,python,django,architecture,code-organization,Python,Django,Architecture,Code Organization,我正在用Django设计(并最终编写)一个系统,它由两个主要组件组成: 游戏经理:这本质上是一个数据输入部件。受信任(非公开)用户将在游戏系统上输入信息,例如玩家可能拥有的选项。它的接口仅仅是Django管理控制台,除了保存信息之外,它不“做”任何事情 字符管理器:这是上述数据的使用者。公共用户将在上面定义的角色扮演系统中创建角色,从这些受信任用户输入的选项中提取。从Django的角度来看,这是项目中一个单独的应用程序 然而,有一件事我不知道该放在哪里,那就是与每一场比赛相关的“规则”。本质上,
提前感谢。我将使用游戏逻辑在应用程序中创建名为rules的子目录,并在其中创建以每个游戏命名的模块,供您使用。然后为这些模块创建一个通用接口,供您的游戏使用,并按名称导入适当的规则模块(如果您的游戏名为adom,则只需在主游戏引擎中导入('rules.adom'),并调用特定于游戏的方法 如果你的游戏没有创建自己的模型和视图,那么似乎没有理由为每个游戏创建特定的应用程序。这是一个微妙的问题,因为使用的代码基于数据库中存储的数据。你没有想过在数据库中存储额外的游戏脚本,然后将它们存储到
exec
中吗?这似乎更自然:游戏是一组与该游戏相关联的数据和附加脚本
与每个游戏相关联的“规则”
对于放入第一个应用程序的每个游戏,都有一组特定于该游戏的先决条件、限制和其他业务逻辑
那是游戏应用程序的一部分
还有类似的结构化逻辑,所有游戏都会用到
那是游戏应用程序的一部分
该逻辑用于验证特定角色的过程,但与特定游戏相关
正确。这是游戏应用程序的一部分。角色与一个或多个游戏关联
是否应该将验证绑定到角色管理器的表单
角色表单可以具有依赖于游戏的数据清理规则。游戏组件有自己的一组模型,但没有视图(管理控制台除外),并且所有游戏数据都在单个应用程序(“游戏管理器”)中输入,而不是在每个游戏的单独应用程序中。角色端将有来自游戏端的单独模型和视图,但会从该端提取一些数据。我考虑过游戏脚本方法,但担心这么多DB调用和执行的潜在速度问题。角色端将使用AJAX调用验证所做的每个更改。在你看来,这不是问题吗?啊,好吧。这很有道理。很高兴,我能帮上忙。我曾经也是RPG迷:-)