首页 > 其他分享 >多人开发时的项目代码结构设计

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

时间:2024-07-13 20:20:26浏览次数:11  
标签:utils py module 文件夹 common 多人 代码 结构设计

首选多人开发项目,假设有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,py,module,文件夹,common,多人,代码,结构设计
From: https://www.cnblogs.com/chentiao/p/18300626

相关文章

  • HTML 语言代码
    ISO语言代码HTML的lang属性可用于网页或部分网页的语言。这对搜索引擎和浏览器是有帮助的。根据W3C推荐标准,您应该通过 <html> 标签中的 lang 属性对每张页面中的主要语言进行声明,比如:<htmllang="en">...</html>在XHTML中,采用如下方式在<html>标签中对语......
  • 优质WPF免费学习资源分享(含代码)
    WPF自学资源分享背景自身是winform开发,winform岗位比较少。wpf和winfom殊途同归,所以自身最近也在学习wpf。分享一下自己寻找到的wpf学习资源,希望对大家有帮助。学习资源推荐书籍学习资源《深入简出WPF》-刘铁猛作者是微软的高级开发工程师,多年的wpf开发经验。不过作者......
  • 【代码随想录|回溯算法 77. 组合】
    代码随想录|回溯算法77.组合,216.组合总和III,17.电话号码的字母组合一、77.组合1.核心代码2.输入输出3.问题总结python一、77.组合内容77.组合1.核心代码代码如下(示例):classSolution:defcombine(self,n:int,k:int)->List[List[int]]:......
  • 使用python绘制3D柱状图+完整代码展示
    一、首先进行代码效果图的展示        这是一个简单的3D模型图的展示,我们可以从官网上看到有类似的模型代码,但是大部分都没有加上全局系统配置,整体效果很单一,看不出来有什么特色,我们可以通过了解我们的python绘图工具pyecharts库。二、了解代码这个就是我们的全局......
  • 贪吃蛇代码第一天
    1.1初始化curses初始化cursesvoidinitscr_func(){initscr();keypad(stdscr,true);}1.2创建贪吃蛇点击查看代码//贪吃蛇创建snake_t*create_snake(introw,intcol){snake_head=(snake_t*)malloc(sizeof(snake_t));//蛇头分配内存s......
  • 基于ssm+vue.js+uniapp的汽车养护管理系统附带文章和源代码部署视频讲解等
    文章目录前言详细视频演示具体实现截图技术栈后端框架SSM前端框架Vue持久层框架MyBaits系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 全栈物联网项目:结合 C/C++、Python、Node.js 和 React 开发智能温控系统(附代码示例)
    1.项目概述本文详细介绍了一个基于STM32微控制器和AWSIoT云平台的智能温控器项目。该项目旨在实现远程温度监控和控制,具有以下主要特点:使用STM32F103微控制器作为主控芯片,负责数据采集、处理和控制逻辑采用DHT22数字温湿度传感器,精确采集环境温湿度数据通过ESP8266WiF......
  • 【华为OD】D卷真题100分:阿里巴巴找黄金宝箱(III) python代码实现[思路+代码]
    【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript-CSDN博客Java、JS、python、C、C++代码实现:【华为OD】D卷真题100分:阿里巴巴找黄金宝箱(III)Java代码实现[思路+代......
  • 【华为OD】D卷真题100分:内存资源分配 Java代码实现[思路+代码]
    【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript-CSDN博客JS、C、Java、python、C++代码实现:【华为OD】D卷真题100分:内存资源分配JavaScript代码实现[思路+代码]-C......
  • 基于Java+Vue的采购管理系统:实现采购业务数字化变革(整套代码)
    前言:采购管理系统是一个综合性的管理平台,旨在提高采购过程的效率、透明度,并优化供应商管理。以下是对各个模块的详细解释:一、供应商准入供应商注册:供应商通过在线平台进行注册,填写基本信息和资质文件。资质审核:系统对供应商提交的资质文件进行自动或人工审核,确保供应商符......