【问题标题】:Should I refactor my Django object model?我应该重构我的 Django 对象模型吗?
【发布时间】:2009-09-12 02:38:32
【问题描述】:
由于不值得讨论的原因,我正在处理的 django 应用程序的对象模型现在是“错误的”,因为许多 1 对多的关系被表示为多对多。应用程序正常运行,并且大部分都通过了 QA。它从未部署过。
我的设计强迫症让我想重构它以纠正问题唯一的好时机是现在,在它投入生产之前,但它仍然不是那么好的时机,因为必须重做 QA 和项目会滑倒。
是否有任何好的工程理由来进行重构?这是一个工具,其用户群数量为数万而不是数万,并且数据库不太可能在短期到中期甚至长期内增长到可观的规模。我强烈怀疑性能是否会成为一个因素。
【问题讨论】:
标签:
django
django-models
refactoring
【解决方案1】:
我认为可以证明重做 QA 的唯一商业原因是可维护性。我的问题是:
- 这个项目会长期使用吗?
- 这个项目是否会随着时间的推移而改变和调整?
- 以后需要更改时是否有足够的质量检查机会?
如果您现在进行重构,您将在短期内因长期生产力提升的潜在好处而受到影响,因为获得的简单性可能会提高可维护性。但是,没有正确的答案 - 这实际上取决于您的项目和部署的设置方式,以及您的软件将如何使用。
【解决方案2】:
在我看来,您的“不值得探讨的原因”在这里实际上很重要。 1 对多与多对多的设计问题让客户改变了他们的要求。这种情况经常发生,我想这就是这里发生的事情。
你真的应该决定从长远来看最便宜的路线,并确保改变他们要求的客户会支付时间。或者,您可以选择性地告知为该系统付费的任何人继续使用设计不正确的产品所涉及的风险,并让他们决定是否花费时间和金钱来修复它。