如何最好地组织Django系统的规则组件?
作者:互联网
我正在设计(并最终编写)Django中的一个系统,该系统由两个主要组件组成:
>游戏管理器:这本质上是一个数据输入部分.可信(非公共)用户将输入游戏系统的信息,例如玩家可能具有的选项.这个界面完全是Django管理控制台,除了保存信息外,它不会“做”任何事情.
>角色管理员:这是上述数据的消费者.公共用户将在上面定义的角色扮演系统中创建角色,从这些受信任用户输入的选项中提取.从Django的角度来看,这是一个单独的应用程序.
然而,有一件我不确定放在哪里,这就是与每场比赛相关的“规则”.基本上,对于放入第一个应用程序的每个游戏,都有一组特定于该游戏的先决条件,限制和其他业务逻辑. (也有类似结构的逻辑,对所有游戏都是通用的.)逻辑将用Python编码,而不是用户输入.
该逻辑用于验证特定角色的过程,但与特定游戏相关联,需要动态换出.它是一个单独的应用程序,还是应该验证与角色管理器的形式相关联?或者两者兼而有之?
这是我从头开始构建的第一个Django应用程序(而不是咀嚼别人的代码),而且我是Python新思想的新手,所以我全神贯注于此.
提前致谢.
解决方法:
我将在应用程序中使用游戏逻辑创建子目录命名规则,并创建以每个游戏命名的模块,您希望服务.然后为这些模块创建一个通用界面,将由您的游戏使用并按名称导入适当的规则模块(如果您的游戏在主游戏引擎中称为adom,那么只需__import __(‘rules.adom’)并调用特定游戏方法.
如果您的游戏没有创建自己的模型和视图,那么似乎没有理由为每个模型和视图创建特定的应用程序.这是一个微妙的问题,因为使用的代码基于存储在数据库中的数据.您是否考虑过将其他游戏脚本存储在数据库中然后执行它们?这似乎更自然:游戏是一组数据和与该游戏相关的其他脚本.
标签:python,code-organization,django,architecture 来源: https://codeday.me/bug/20190705/1383846.html