第六章:代码库管理

0.0.0.0.1 基本功能
创建代码仓库分组和仓库,同时支持各类权限授权管理,实际这些代码库的初始化动作,并不需要人为的操作而来,可以考虑从DevOps系统在需求任务分配计划阶段就选择相对应的模板信息,然后一键生成所需要的基础代码库信息资源,包括仓库的初始化语言,代码基础的模板框架内容,扫描规则,构建及部署的流水线,选择部署的方式和环境信息等,在第一步就可以完成项目的走向。
0.0.0.0.2 分支管理
一个优秀的团队第一步就得有完美的代码管理模式,其中分支管理尤为重要,良好的分支结构,不仅提高开发效率,而且保证各个版本发布和上线的代码没有遭受污染,有条不紊,代码严禁,出现问题概率极低,修复问题时快速准确无误。
git flow分支模型
|
|
|
|
|
|
|
|
Aone flow分支模型
AoneFlow模型更加适合敏捷迭代开发,更加灵活和同时具有其他分支模型功能,它基本上兼顾了 TrunkBased 的“易于持续集成”和 GitFlow 的“易于管理需求”特点,同时规避掉 GitFlow 的那些繁文缛节。
AoneFlow 只使用三种分支类型:主干分支、特性分支、发布分支,以及三条基本规则。
每个工作项(可以是一个人完成,或是多个人协作完成)对应一个特性分支,所有的修改都不允许直接提交到主干。
AoneFlow 的发布分支设计十分巧妙,可谓整个体系的精髓。GitFlow 先将已经完成的特性分支合并回公共主线(即开发分支),然后从公共主线拉出发布分支。TrunkBased 同样是等所有需要的特性都在主干分支上开发完成,然后从主干分支的特定位置拉出发布分支。而 AoneFlow 的思路是,从主干上拉出一条新分支,将所有本次要集成或发布的特性分支依次合并过去,从而得到发布分支。发布分支通常以release/前缀命名。
3.发布到线上正式环境后,合并相应的发布分支到主干,在主干添加标签,同时删除该发布分支关联的特性分支。
当一条发布分支上的流水线完成了一次线上正式环境的部署,就意味着相应的功能真正的发布了,此时应该将这条发布分支合并到主干。为了避免在代码仓库里堆积大量历史上的特性分支,还应该清理掉已经上线部分特性分支。与 GitFlow 相似,主干分支上的最新版本始终与线上版本一致,如果要回溯历史版本,只需在主干分支上找到相应的版本标签即可。
0.0.0.0.3 代码质量
很多代码库在日常的管理和开发中,时不时会为了开发快速,而忽略了代码的质量,其中代码质量包括,静态代码质量:代码缺陷,漏洞,重复率,技术债务,覆盖率等。代码安全扫描:代码中包含的依赖或者代码不安全问题。单元测试覆盖率:可以单独作为开发对自己代码覆盖测试的标准。整个过程会提升代码质量。
0.0.0.0.4 代码评审
为了更好的支持团队多人协助开发,同时保证代码提交的第一关质量保证,因此需要进行代码合并评审操作,就是由开发人员写好代码后,发起一个合并评审请求,再由开发负责人或者其他开发成员进行code review,没有问题的情况下进行代码合并。
0.0.0.0.5 代码钩子
当需要根据代码提交或者合并时候做出的额外的动作时,这时候web hook就很有用处啦。提交代码或合并的时候触发一些列流水线或者检查校验动作,目的为了减少开发成员人为参与和遗漏操作,同时保证代码库在整个开发环节都会涉及所有必要操作都参与操作。例如:jira任务调度,Jenkins流水线操作调度,提交信息校验等。
相关内容
如果你觉得这篇文章对你有所帮助,欢迎赞赏~
赞赏