我需要一个可重复使用且可扩展的django应用程序,但我不确定如何设计它。
可重复使用的应用程序是一个双重会计系统。该应用程序有几个模型,最重要的是帐户和交易模型。交易(间接)依赖于账户。单独实现这个部分不是问题,我很清楚系统如果能够独立运行,将会如何运作。
当我尝试将其作为可重用的应用程序实现时会出现问题。我有两个需要解决的主要问题。首先,我希望每个使用会计应用程序的应用程序之间存在分离,即应用程序A不应该能够访问应用程序B创建的会计数据,反之亦然。其次,使用帐户应用的应用通常需要将帐户与其他实体相关联,例如,客户,客人,承包商等。为了能够找到属于每个实体的账户。
我想的越多,我越倾向于定义一个接口(Mixins?)并使用duck typing来使会计应用程序包含通用功能(主要是报告),并让每个应用程序定义Account和Transaction模型需要。我得到了很好的分离,但是我可以忍受一些缺乏可重用性。拥有一个能够完成上述两个方面的中央会计应用程序是很好的,但同时感觉不可能同时获得可扩展性和可重用性。
任何建议都将不胜感激。