多人开发时的项目代码结构设计

首选多人开发项目,假设有abc三个人开发三个模块,采用gitlab管理代码时,要有一个主分支,和abc三个另外分支。在abc三个分支中,每个分支只放自己的代码,注意必须只放自己的代码!!!,任何重复的代码都不要有!!!!这样在合并到主分支时,只需要只使用分支代码替换即可。如果一旦和主分支有重复代码,主分支发生改变时就要解决两个冲突,这样就会增加合并分支的麻烦。

主分支只负责调用三个分支合并过来的代码,这样就能比较快速的管理代码,同时为了方便管理方法,我们可以在a、b、c三个文件夹中创建相同的文件名为common_module.py在这个基础上,我们继续开发讲解代码开发中的导入包问题。

假设现在有一个项目,项目路径下有一个utils文件夹和一个web-back文件夹,在web-back文件夹中有个server.py文件,该文件中会调用utils文件夹的方法。在utils中有三个文件夹,由三个人开发,a开发的方法放在a文件夹中,b开发的方法放在b文件夹中,c开发的方法放在c文件夹中。项目路径下执行python3 utils/server.py,如何保证可以正确的调用abc三个文件夹中的方法?

例如我们在server.py文件中想要比较像正规一样点的使用,应该这样

from utils.a.common_module import *
from utils.b.common_module import *
from utils.c.common_module import *

 

这样的话,就说明utils是一个python包,里面需要创建一个__init__.py文件,

其次三个文件夹中每个文件夹也需要创建一个__init__.py文件,这样就可以被识别为标准的python包,就可以导入了

所以整个项目代码的文件结构应该是这样的

project/
├── utils/
│   ├── __init__.py
│   ├── a/
│   │   ├── __init__.py
│   │   ├── common_module.py
│   │   └── a_b.py
│   ├── b/
│   │   ├── __init__.py
│   │   └── common_module.py
│   └── c/
│       ├── __init__.py
│       └── common_module.py
└── web-back/
    ├── __init__.py
    └── server.py

这里需要说明一下,如果a/common_module.py调用a/a_b.py中的方法,根据python的规则,包内的python代码互相调用采用相对路径,即from .a_b import *

另外,在utils中一个配置文件,abc三个文件夹都会编辑这个配置文件,这个时候如果配置文件被反复修改,合并分支又会给自己添麻烦,所以我是不想给自己找一丁点麻烦,最好的办法是让三个人吧需要的配置参数提提前说明一下,然后自己补充道main分支里

db数据库传入,可以放在配置文件中,和config字典一起import

 

posted @ 2024-07-13 20:10  海_纳百川  阅读(20)  评论(0编辑  收藏  举报
本站总访问量