给你一个网站怎么做的西安网站设计建设公司 交通
news/
2025/9/28 21:01:34/
文章来源:
给你一个网站怎么做的,西安网站设计建设公司 交通,高端品牌网站建设需要注意什么,网站建设课程下载引言
在开发我的笔记系统时#xff0c;我遇到了一个问题。问题是#xff0c;在api-gate服务中#xff0c;我需要验证用户的access_code#xff0c;但是access_code的生成逻辑是在auth2服务中实现的。这个问题从架构设计的层面上看#xff0c;就是一个高耦合度问题。高耦合…引言
在开发我的笔记系统时我遇到了一个问题。问题是在api-gate服务中我需要验证用户的access_code但是access_code的生成逻辑是在auth2服务中实现的。这个问题从架构设计的层面上看就是一个高耦合度问题。高耦合度会给代码的扩展代码麻烦并给未来的系统维护带来隐患。
问题分析和解决
对于这个问题我想第一个想到的是将相关的代码抽出为一个模块然后两边同时引用这个模块。但是评估了一下这样做稍微麻烦了一些因为我只想共享代码段因此最后我想到了git submodule命令。 即创建一个新的git仓库将共享的代码块放在新的git仓库中例如上图的notes_redis_helper。然后再回到api-gate和auth2这两个git的本地仓库通过git submodule add命令将notes_redis_helper添加到本地仓库中。从而实现了代码段的共享。
git submodule 命令的优势 代码复用Git Submodule允许将一个Git仓库作为子模块引入到另一个Git仓库中使得可以在多个项目中共享和复用代码。这样可以避免重复编写相同的代码提高开发效率。 独立维护每个子模块都是独立的Git仓库有独立的版本控制。这意味着可以在子模块中独立进行开发、提交和发布而不影响主项目的开发和维护。这样可以更好地组织和管理代码减少耦合性。 版本控制Git Submodule可以确保子模块和主项目之间的版本控制保持一致。当子模块的代码发生变化时可以通过更新子模块来更新主项目中引用的代码。这样可以更好地管理和跟踪代码的变化。 逻辑清晰通过使用Git Submodule可以将功能相关的代码组织在一起使得项目的逻辑更加清晰和易于理解。每个子模块都可以专注于特定的功能或模块有助于减少代码的复杂性和维护成本。 并行开发使用Git Submodule可以实现并行开发不同的团队可以独立地开发和维护各自的子模块。这样可以提高团队的协作效率加快项目的开发速度。 (这一节内容为AI创作
操作步骤
创建一个独立仓库并将代码重构到这个仓库中例如gitgitee.com:hanshu_alan/notes_redis_helper.git。需要注意的是我们这里实际上是代码段级别的共享因此这个仓库不需要通过cargo new --lib 来初始化。进入api-gate项目的src目录运行git submodule add等命令。
git submodule add gitgitee.com:hanshu_alan/notes_redis_helper.git
git submodule init
git submodule update进入auth2项目的src 目录重复步骤2的操作。
使用体验
比正常情况要稍微麻烦一点比如我在api-gate本地仓库的目录下修改notes_redis_helper那么操作步骤如下
cd notes_redis_helper # 进入notes_redis_helper
git commit . -m changes
cd .. # 返回api-gate本地仓库
git commit . -m changes # 提交api-gate仓库的修改实际上就是提交notes_redis_helper的当前commit id
git push
cd ../../auth2 # 进入auth2 本地仓库
cd src/notes_redis_helper # 进入notes_redis_helper仓库
git pull
cd ..
git commit . -m # 提交auth2的修改因为这时notes_redis_helper的最新commit id已经改变
git push上面的代码来至于我的开源项目https://gitee.com/hanshu_alan 这篇文章收录我的Rust-实战专栏。请关注我不要错过更新哟。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921116.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!