1. 问题场景
今天发现我的多个python工程代码都使用到了很多相同的代码,比如文件io,json的序列化和反序列化等。就想着把这部分代码给提炼成单独的python文件,像是c++的头文件一样,在需要使用的时候在引入进来。
2.需求解析
- 提炼出公用部分代码
- 定期的增加或者删减部分代码接口
- 不同的项目使用到的代码有细微差别,需要有不同的版本管理
3.设计部分
- 使用一个公用文件夹存放所有公用部分代码,命名为python_common_modules
- 使用面像对象的思想来将所有公共部分接口,分成不同的文件,比如json序列化反序列化的接口所有相关接口放置在名为 file_helper.py的文件中。所有接口放置在名为FileHepler的对象中。
- 所有公用代码放置在一个新的仓库中来进行版本管理
- 如果某个项目需要引用这部分代码的话,就是用git工具的子模块来进行引用。
- 文件位置放置在项目最上层。
4.项目实现
- 仓库名
- 对象命名
- 版本管理状态
- 项目引用
切换路径到项目顶层目录,使用以下指令将,远程仓库公用代码拉取出来
git submodule add <url> <repo_name>
通过vscode git插件可以观察到当前子模块的分支和commit点
从而实现代码的抽象,统一管理,以及版本控制。
5.参考文章
https://iphysresearch.github.io/blog/post/programing/git/git_submodule/