【经验分享】企业大型代码仓库管理实践
共 1442字,需浏览 3分钟
·
2022-08-08 23:29
资料来源:Sourcegraph
关于大型代码库管理的关键问题探讨
(文末获取报名入口)
1、首要问题:扩展性
——————————
Google 资深软件工程师Titus 负责管理 大型C++ 代码库,大约十亿行代码中的四分之一他认为“一旦进入百万行代码领域,最重要的事情就是如何进行扩展。”
Titus Winters/ Google 资深软件工程师
“很多构建系统、CI 系统、版本控制策略、版本控制系统的固有问题可能会出现。你亟需找到一个好用的构建系统,如果你的构建系统是以函数式编程语言模型为基础,而非命令式编程语言模型,这个系统就具有了一个强大的功能,我们可以自由地对这些构建进行缓存、分发,构建速度、可依赖性和复制性也得到提升。一旦具备了这些功能,你构建的CI 管道也是可靠的……”
2、困难重重的依赖关系处理
——————————
Marc 是Mathworks(Matlab的创建者)资深架构师,具有 25 年的代码工作经验熟悉数百万行代码项目,并擅长处理依赖项难题:
“随着代码量的不断增长,性能、分区、稳固性都是挑战不断。代码数量增多,使上层和底层操作系统都会变得紧张,同时很多工具也会不堪重负。这种负担会进一步影响 CPU,调试所需的 RAM 量。”
代码之间依赖度过高,那么编码任务就永无止境。你无法做到改变共享模块,同时不造成其他破坏。更可怕的是,你也不知道你破坏了什么。当然,这并不全是真实情况,你可能熟悉你正在处理的类,也了解其中的依赖关系。但是你如何在数百万行代码中进行追踪呢?编译器中的工具可能可以帮点小忙,但这远不够用…… ”
3、如何有效利用微服务
——————————
尽管微服务和大型代码很少放在一起讨论,但在过去十年中,微服务流行的部分原因,是其有效地管理了大型代码。但在大型代码库中使用微服务是否会付出代价是需要关注的问题。关于微服务不同经历的专家给出了不同的使用建议。
除此之外,如何保证设计文档实时更新、分支合并与代码重构、瀑布式开发 vs. 敏捷开发等话题都将被探讨。
如何理解与处理依赖关系?
如何正确灵活利用微服务?
代码库内部更改——文档代码化实操方法。
分支合并与代码重构关键技巧。
搞定大型代码项目开发工具推荐
关于大型代码库管理的方方面面,参与8月9日 Incredibuild主办的线上圆桌论坛,获取答案。
报名活动,参与直播间抽奖!
Incredibuild 开发者定制T恤
<developement_never_stops>
活动及礼物详情,请添加Penny微信咨询