在新的本地化项目中处理遗留的django项目

时间:2011-07-01 12:20:02

标签: python django dependency-management legacy-code modularity

我现在正处于计划主要包含遗留代码的django项目国际化的情况。旧项目本身具有不同的应用程序,它们之间具有很强的依赖性,因此很难将它们分开。看着剩下的时间,根本不可能。

国际化的主要要求是:

  • 为每个国家/地区设立单独的项目
  • 每个国家/地区稍后会有不同的模板
  • 每个国家/地区都会引入其​​他国家/地区可能也想要使用的新功能
  • 仍旧维护主要的旧代码库,并且应该使用国家/地区项目的新功能/更改

您是否有任何想法/设置来处理旧代码并启动与旧代码和新功能相关的新项目?我想开始讨论这个问题。

1 个答案:

答案 0 :(得分:1)

首先在可能的情况下解耦组件,然后将遗留代码转换为(便携式)应用程序(如果不是这种情况),遗留代码不应位于主项目树下。

任何新功能都应该有很好的文档和解耦的应用程序或通用库本身,即使它们覆盖/交互/依赖甚至monkeypatch旧代码。您希望项目的大部分内容都位于主项目之外,并且可以通过pip进行安装,就好像它们是第三方应用程序一样。

主项目树应该不仅仅是项目主项目模板,urls.py,settings.py,任何配置/部署模板和fabfile,以及很少定制的任何核心应用程序。

每个本地化的自定义应该只是“自定义”应用程序本身,或者是对主项目的小调整(应该通过fab或您选择的任何提供商以可重现的方式进行)

毋庸置疑,如果每个团队都可以提交核心项目,那么一个好的git / hg工作流程是必不可少的,并且使用具有良好测试套件的中央CI服务器。