分享
代码管理核心技术及实践.pdf
下载文档

ID:2357626

大小:9.43MB

页数:220页

格式:PDF

时间:2023-05-08

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
代码 管理 核心技术 实践
CMYCMMYCYCMYK“.pdf 1 2017/11/28 下午2:00 内 容 简 介 本书首先通过系统化的介绍和比较,从整体上讲解了代码管理工具和系统的历史和发展。其次分别从小型团队、中大型团队、分布式大团队、基于微服务的团队及开源团队的角度总结了代码管理的核心技术及实践经验,其中包括不同类型的团队对代码管理工具和系统的选择,以及代码管理的流程、策略和技巧,还有一些代码管理工具和系统的难点、痛点等,包括如何选择分支策略、如何管理多产品线的代码、代码备份策略,以及如何在大型团队中将代码从 Subversion 迁移到 Git 等。本书可帮助读者在现实中从团队的大小及代码管理模式是集中式还是分布式、开源还是闭源等各个角度去了解和思考代码管理的核心技术和实践经验,从而帮助团队建立起一套高效的代码管理系统、策略和流程。本书的读者对象主要是每天都需要使用代码管理工具的程序员、代码管理工具和系统的管理人员,以及团队的技术领导人员。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 代码管理核心技术及实践/刘冉,肖然,覃宇著.北京:电子工业出版社,2018.1 ISBN 978-7-121-32849-7 .代.刘 肖 覃.软件开发.TP311.52 中国版本图书馆 CIP 数据核字(2017)第 247838 号 策划编辑:董 英 责任编辑:徐津平 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编:100036 开 本:787980 1/16 印张:13.75 字数:251 千字 版 次:2018 年 1 月第 1 版 印 次:2018 年 1 月第 1 次印刷 印 数:2500 册 定价:59.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:010-51260888-819,。前 言 我从 2004 年开始直到现在都在从事软件开发工作,经历了没有代码版本管理、代码集中式管理,以及现在的分布式代码管理,在这一过程中,我深刻体会到代码管理在软件开发中的重要性。近几年,随着软件开发规模越来越大,开发团队的规模也随之扩大,出现了越来越多的分布式团队,工程效率问题也越来越突出,比如 QCon 在 2016 年首次举办了“工程效率提升”专题。由此可见工程效率已经成为现代软件业中一个无法让人忽视的问题。在工程效率这个范畴里,代码管理占据了举足轻重的地位,因为代码是开发人员每天工作的主要对象和内容,如果不能有效地管理,必然会影响开发人员的工作效率。随着团队规模的扩大,代码管理对团队工程效率的影响也越来越大。而高效的代码管理就像一根纽带,把所有程序员有效地串联起来,让程序员可以更高效地协同开发、编写代码,完成软件的开发工作。我们在咨询工作中遇到的很多客户都对使用代码版本管理有各种问题和困惑。出于以上原因,我们觉得有必要基于经验写一本代码管理实践相关的图书。鉴于时间有限,在本书中我们只选择了自己认为核心的技术及实践。本书首先通过系统化的介绍和比较,让读者从整体上系统地了解代码管理工具的历史和发展。然后分别从小型团队、中大型团队、分布式大团队、基于微服务的团队及开源团队的角度,总结了代码管理的核心技术及实践,其中包括不同类型的团队对代码管理工具的选择、代码管理的流程、策略和技巧,以及一些代码管理工具和系统的难点和痛点等,可帮助读者在现实中从团队规模的大小、集中式还是分布式、开源还是闭源等角度去了解和思考代码管理的实践经验。代码管理核心技术及实践 IV 全书共分 3 部分,其中第 1 部分主要系统化地介绍了代码管理的历史和分类,列举并简单比较了业界常用的各种代码管理工具和系统,以及迁移工具等基础知识,以帮助读者更好地选择代码管理工具。主要以集中式代码管理工具 Subversion 为主,并以一个虚拟小团队的工作流程介绍小团队的代码管理实践,最后总结了我们经历过的传统中大型团队的代码管理的核心技术及实践。第 2 部分以介绍当前流行的分布式代码工具 Git 为主,结合大型软件项目和分布式开发团队介绍了当前流行的分布式软件开发中代码管理的核心技术及实践。第 3 部分主要介绍了正在兴起的微服架构下的代码管理实践,以及一种越来越重要的软件开发模式:开源模式下的各种代码管理核心技术及实践。阅读提示:本书不是介绍代码管理工具的专业书籍,所以不会对书中提到的代码管理工具或系统进行全面性和系统性的介绍,所以读者需要对书中提到的代码管理工具或系统全面和深入地进行学习,并阅读与其对应的专业书籍,比如 Subversion 的 Version Control with Subversion、Git 的 Pro Git 等。如果读者来自一个大型团队,则可以略过第 2 章的独立小团队的内容,在剩下的章节中找到有用的知识点。如果读者来自一个小型团队,那么可以将第 3、4、5 章作为兴趣阅读,但是在尝试里面的一些核心技术和实践之前一定要认真思考,因为它们很可能并不适应读者现在的团队环境和规模。它们更像是一把双刃剑,所以不妨将这些内容作为未来团队扩张之前的知识储备。书中难免存在一些错误和不妥之处,敬请谅解并欢迎指出,我们将及时修改并发表在勘误中,谢谢。刘冉 2017 年 10 月 12 号写于成都 前 言 V 读者服务 轻松注册成为博文视点社区用户(),扫码直达本书页面。下载资源:本书如提供示例代码及资源文件,均可在 下载资源 处下载。提交勘误:您对书中内容的修改意见可在 提交勘误 处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一同学习交流。页面入口:http:/ 代码管理核心技术及实践 VI 目 录 第 1 部分 基础与传统 第 1 章 代码版本管理工具与系统.2 1.1 引言.2 1.2 代码版本管理工具的历史.3 1.2.1 第 1 代:本地代码管理.3 1.2.2 第 2 代:中心服务器代码管理.3 1.2.3 第 3 代:分布式代码管理.4 1.3 常用的代码管理工具.5 1.3.1 Perforce.5 1.3.2 Subversion.6 1.3.3 Git.6 1.3.4 Mercurial.7 1.3.5 Microsoft GVFS(Git Virtual File System).7 1.4 常用的代码管理系统.8 1.4.1 Virtual SVN Server.9 1.4.2 GitLab Server.9 1.4.3 Gerrit Server.10 1.5 从 Subversion 迁移到 Git 的常用工具和方法.11 1.5.1 SubGit.11 1.5.2 git-svn.12 1.5.3 手动.12 代码管理核心技术及实践 VIII 1.6 常用云端代码管理系统.13 1.6.1 Sourceforge 和 Google Code.13 1.6.2 GitHub.14 1.6.3 GitLab 和 Bitbucket.14 1.6.4 Coding、码云、阿里云 Code.15 第 2 章 独立小型团队.17 2.1 启程:团队与项目.17 2.2 痛点与需求.18 2.2.1 如何选择和搭建 Subversion Server.18 2.2.2 定制代码库结构.20 2.2.3 分支策略.22 2.2.4 日常工作模式.24 2.2.5 备份策略.26 2.3 阿里云 Code.27 2.3.1 将内网 Subversion 迁移到阿里云 Code.28 2.3.2 权限管理.31 2.3.3 日常工作模式.32 2.3.4 备份方案.33 2.4 小团队代码管理的经典模型.34 第 3 章 传统中大型团队.36 3.1 传统大型团队的特点.36 3.2 独立大型团队在代码管理上的痛点与需求.38 3.3 大型团队代码管理案例.39 3.3.1 代码模块依赖管理.41 3.3.2 建立相关运作机制.44 3.3.3 建立原子提交的纪律.46 3.3.4 建立持续集成守护机制.47 3.3.5 大型团队代码管理小结.51 3.4 大型团队的代码服务器迁移.51 目 录 IX 第 2 部分 当前与流行 第 4 章 分布式中大型团队.58 4.1 分布式中大型团队的特点.58 4.2 分布式中大型团队在代码管理上的痛点与需求.59 4.2.1 离线代码管理.60 4.2.2 在线代码审查.61 4.2.3 对代码进行分布式权限管理.66 4.2.4 对代码进行分布式提交和集成.73 4.3 代码仓库拆分与集成.74 4.3.1 优化单代码仓库.77 4.3.2 代码仓库的拆分.87 4.3.3 代码仓库的集成.91 4.3.4 小结.122 4.4 分支策略.123 4.4.1 主干开发分支策略.124 4.4.2 应对并行开发.132 4.4.3 定制分支策略.147 4.5 代码库热备份.150 4.5.1 服务器端热备份方案.150 4.5.2 客户端热备份方案.151 4.6 案例:Android 定制化系统开发.151 4.6.1 项目背景.151 4.6.2 项目及其代码管理介绍.152 4.6.3 分支策略.155 4.7 多产品线.157 4.7.1 多产品线介绍.158 4.7.2 多产品线开发的困境.158 4.7.3 多产品线解决方案.158 4.8 超大型分布式团队.166 代码管理核心技术及实践 X 第 3 部分 发展与未来 第 5 章 云时代微服务大型分布式团队.172 5.1 云时代和微服务架构.172 5.2 Everything as Code(一切即代码).173 5.3 代码管理团队自治.175 5.3.1 围绕团队的代码库管理.177 5.3.2 围绕服务的代码库管理.177 5.4 微服务架构下的代码管理挑战.179 5.5 微服务代码管理实例.180 第 6 章 开源项目与开源社区.184 6.1 开源软件.184 6.1.1 开源软件的特点.185 6.1.2 开源软件和社区.185 6.1.3 开源软件和商业.186 6.1.4 开源软件的代码管理.186 6.2 开源社区中的开源项目.187 6.2.1 简介.187 6.2.2 代码管理模型.187 6.2.3 典型的大型分布式开源项目.189 6.3 企业中的开源项目.193 6.3.1 简介.193 6.3.2 代码管理模型.193 6.4 GitHub 中的开源项目实践.195 6.4.1 分支管理.195 6.4.2 分库管理.197 6.4.3 把公开代码库转换成私有代码库.203 6.4.4 GitHub 的分支与复刻.205 参考文献.207 名词解释.209 第 1 部分 基础与传统 第 1 章 代码版本管理工具与系统 第 2 章 独立小型团队 第 3 章 传统中大型团队 代码管理核心技术及实践 2 第 1 章 代码版本管理工具与系统 1.1 引言 自从 20 世纪中叶有了现代软件编程语言以来,对软件代码的管理一直是软件开发中的一个不大不小的问题。随着软件规模的不断扩大,开发人员也不断增加,特别是 20 世纪末互联网的爆发及 21 世纪初移动互联网的崛起,使得软件系统开发已经从相对独立的开发模型变为一个复杂的开发模型,比如需要多种语言、使用大量的第三方代码库、出现大规模的分布式团队等,导致代码管理出现了类似于 20 世纪软件危机的代码管理危机。为了解决这种代码管理危机,近几十年以来,不同的软件公司或者个人做了各种努力,开发了各种代码管理工具和系统,用于解决在不同的时代和情况下遇到的各种代码管理问题,比如著名的 Subversion 和 Git 就是为了

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开