Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在新的本地化项目中处理遗留的django项目_Python_Django_Dependency Management_Legacy Code_Modularity - Fatal编程技术网

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

Python 在新的本地化项目中处理遗留的django项目,python,django,dependency-management,legacy-code,modularity,Python,Django,Dependency Management,Legacy Code,Modularity,我现在正在计划django项目的国际化,该项目主要包含遗留代码。旧项目本身有不同的应用程序,它们彼此之间有很强的依赖性,因此很难将它们分开。看看剩下的时间,这根本不可能 国际化的主要要求是: 每个国家都有单独的项目 每个国家稍后将有不同的模板 每个国家都将引入其他国家可能也想使用的新功能 主要的旧代码库仍将保留,并应与国家项目的新功能/更改一起使用 您是否有处理旧代码和启动依赖于旧代码和新功能的新项目的想法/设置?我想就此展开讨论。在可能的情况下,首先解耦组件,并将遗留代码转换为(可移植的)

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

国际化的主要要求是:

  • 每个国家都有单独的项目
  • 每个国家稍后将有不同的模板
  • 每个国家都将引入其他国家可能也想使用的新功能
  • 主要的旧代码库仍将保留,并应与国家项目的新功能/更改一起使用

您是否有处理旧代码和启动依赖于旧代码和新功能的新项目的想法/设置?我想就此展开讨论。

在可能的情况下,首先解耦组件,并将遗留代码转换为(可移植的)应用程序(如果还没有),并且遗留代码不应位于主项目树下

任何新特性都应该有很好的文档记录,并且应用程序或通用库本身是解耦的,即使它们覆盖/交互/依赖或甚至monkeypatch遗留代码。您希望您的大多数项目都位于主项目之外,并且可以通过pip安装,就像它们是第三方应用一样

主项目树不应超过项目主项目模板、url.py、settings.py、任何配置/部署模板和fabfile,以及任何很少定制的核心应用程序

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


不用说,如果每个团队都能致力于核心项目,那么良好的git/hg工作流是必不可少的,并使用具有良好测试套件的中央CI服务器。

假设每个国家办事处都有自己的开发人员,为什么不使用bitbucket、github、launchpad或类似工具进行协作呢,每个国家稍后都会有自己的开发团队。我们已经在使用github了。所以现在的想法是为每个国家创建一个分支。我不想先写下我们自己的想法,以免影响其他人的想法:-),但如果他们对主要遗留项目进行了更改,那么分叉会导致无法相互编写代码。