1100亿行代码!华为是如何管理的?

华为云代码托管CodeArts Repo:保护企业核心代码资产安全 华为云代码托管服务CodeArts Repo是一款全栈自研、基于Git的云端代码托管服务,旨在保护企业核心代码资产安全,提升企业研发质量和效率。 阅读详情

二十年前,我第一次写代码的时候,用记事本写的ASP程序,写完手工复制到IIS服务器上,然后检查下页面的基本功能,就算是测试通过了。

那个时候,业务简单,系统也简单,可以用这种手工作坊的方式来干,随着软件和互联网业的蓬勃发展,现在的系统动辄百万行千万行代码,需要成百上千人大规模协作,如果没有相应的配套工具来进行软件生命周期的全流程管理,把流程、需求、代码、测试等融为一体,软件开发将会是一团乱麻。 

软件开发工具虽然也是一类软件,但是非常独特,因为它的用户群体不是普通消费者,而是程序员,程序员的工作就是开发软件,一个工具好不好用,能不能提高效率,他们非常清楚。

所以我们看到软件开发工具主要被国外公司占据,他们的软件业起步早,配套的开发工具相应也更成熟更完善。

不过,国内软件业经过几十年的发展,也追了上来,比如华为,它上世纪90年代就投入软件研发,历经嵌入式软件开发、企业化软件开发、服务化应用开发和云服务开发等多种不同研发形态,现在的代码已经累积到了1100亿行这样“可怕”的规模,这样的规模在国内恐怕是独一份,世界范围看也是站在前列。

这么多的代码,背后肯定是大量的产品和项目,它们如何管理?怎么做Build?怎么做测试?怎么做审查?华为在这方面有三十多年的积累,有大量经过实践验证的开发流程和反复打磨的开发工具。 

云计算时代,能不能把这种研发能力给服务化了?能不能外溢到整个行业,让所有人都能受益,都能开发可靠性高,安全性强的高质量软件呢?

我最近看到华为云的CodeArts这个一站式软件开发平台,就明白华为已经在做这件事情了。

CodeArts是个好名字,Code表示代码,Art 是艺术,华为希望原本枯燥、流程化的开发工程能够变成焕发开发者激情与创造能力的过程,重塑程序员对开发的热情、梦想与追求,而不再是“码农”。

我先给大家简单介绍一下这个平台的功能。

01

开发软件的软件

CodeArts

1. CodeArts Req 让需求管理化繁为简

这是一款需求管理的软件,程序员都明白,需求搞不好,后面的设计、开发、测试都要翻车,返工成本极高,分析报告指出,需求管理不善导致项目失败的比率高达71%。

华为云CodeArts Req整合了华为多年需求管理的优秀实践,内置多种需求管理模板,对于大型企业和大规模团队,可以使用IPD项目模板;对于小型互联网公司,可以使用Scrum;对于个人/小型团队,可以使用轻量型看板,非常灵活。

a5e52d4aa8cf9dadecc455d07ef79638.gif

CodeArts Req即让小颗粒的服务开发健步如飞,又能够在大规模协作和契约化交付的产品级需求管理中游刃有余可以。

截止到2022年,CodeArts Req已经高效支持华为13万研发人员的需求协作,月API调用量超过15亿次,累计管理5000多万需求,覆盖华为终端、网络、云计算、芯片、汽车等全业务场景。

2. CodeArts Repo 让代码稳定可靠,安全无忧

源代码是企业最宝贵的资产之一,华为云CodeArts Repo是基于Git的云端代码托管服务,旨在保护企业核心代码资产安全,提升企业研发质量和效率。 

与其他代码库相比,CodeArts Repo特别强调安全,从不同层次,基于零信任思想进行防护,华为甚至成立“蓝军”部门,对代码库进行模拟攻击,以攻促防,提升安全能力。

CodeArts Repo支持Git Flow、Gitlab Flow、Github Flow等所有工作流,提供分散式和集中式的代码检视能力,支持团队随时开展代码检视活动,并且可以记录代码来龙去脉,双向可追溯,例如华为内部团队通过在代码托管工具设置规则,确保了每次的代码入库都有对应的工作项,可以及时发现不合格的代码。

30b4211ea6a48342812a00129deb81e9.png

如今,华为云CodeArts Repo管理并保护着华为1100亿行代码,支撑15万人开发作业,日均1亿次下载量、1PB传输流量、3亿次API调用,一套系统支撑了华为嵌入式、云、终端、车等各类型产品代码管理和协同开发。

3. CodeArts Build 分布式构建唯快不破

从大神Martin Fowler提出持续集成开始,经过多年的概念普及,持续集成早已深入人心,然而随着时代的发展,持续集成在实践上还面临很多痛点。

例如车载软件开发,它往往基于AOSP项目,代码仓库多达几百个,代码量有千万行甚至亿行,有100多G,代码全量下载一次就得几十分钟,完整构建长达数小时。这样的软件就没有办法快速的、持续的集成了。

华为云CodeArts Build提出了基于文件内容指纹的代码缓存技术、分布式编译、精确增量编译等技术,极大地提升了下载和编译效率。 

5564a69d0df444fd9bd4e9d3ba057dee.jpeg

华为云CodeArts Build内置130多种构建环境、30多个模板、20多个插件,用户开箱即用。提供BuildFlow编排模式,程序员可以基于依赖关系对组件按需编排。

1e2ee68119182bf494924bd481accc06.png

如今,CodeArts Build支撑着华为6万研发人员的软件高效集成,每日构建任务量达77万次,集中弹性调度24.8万台构建服务器。通过代码按需下载、云化、分布式、精准增量、弹性调度等关键技术,端到端加速软件集成过程,让开发人员编译结果分钟级反馈、版本包30分钟集成、亿级代码全量构建1小时完成。

4. CodeArts TestPlan 为测试管理正名

测试是产品质量的生命线,在很多程序员的眼中,觉得测试不就是在页面上点一点,最多写一点儿自动化的脚本吗?

其实不然,测试是一个包含计划、准备和测量活动的过程,现在的测试已经不仅仅是等待软件开发完了才开始,而是不断地向研发的最前端移动,从需求分析,架构设计开始就和开发并行了!

华为云CodeArts TestPlan一站式测试管理平台是华为30年来对高质量的严格要求,以及不断积累的相关测试工作方法和实践,最大的特色是“全“:它覆盖了从测试计划到测试设计、用例、执行、评估的全流程,不仅可以用于小型的敏捷化项目,而且也能支持大规模的,产品架构复杂的多组件、多分支的项目。

70b20a04eacf1dc600d800bf82131093.png

截至2022年年底,华为云CodeArts TestPlan已经高效支撑了华为超过4万测试人员的测试作业,测试用例月执行超过2亿次,月API调用量超过12亿次,累计管理10亿以上的测试用例,覆盖华为终端、网络、云计算、芯片、汽车等诸多业务场景。

除了上面所提到的工具之外,华为云CodeArts还包括CodeArts IDE Online服务(让程序员随时随地获取云上开发缓解),CodeArts Check服务(支持海量源代码的风格、质量和安全检查,可实现百亿行大规模并行扫描,并提供完善的修改指导和趋势分析,帮助企业有效管控代码质量),CodeArts Artifact制品仓库等服务,这里就不在详细展开了。 

看过这些CodeArts工具的介绍,大家应该能够感受到,软件开发工具已经从单体过渡到了云端,运算力的巨大提升和分布式的加持,整个软件开发的效率可以获得巨大的飞跃。

02

30年沉淀,厚积薄发

CodeArts

CodeArts涵盖了需求管理,代码管理,IDE, 测试管理,Build管理等软件开发的各个方面,华为能打出这么一套组合拳,来源于30年的沉淀,可以说是厚积薄发。 

在上世纪90年代,还处于手工测试阶段,华为的各个部门和产品线或者自建,或者购买商业软件,对测试用例进行管理。各自为政,野蛮生长了一段时间以后,华为发现这种方式不合时宜,需要建立统一的测试平台。 

2004~2005年,华为从各产品线抽调精英,收编了各种测试管理工具,制定了测试管理标准,成立了云龙平台。

在开发层面,华为的代码管理工具经历了“商用+开源”,到“边买边造”,再到“自给自足”的三个阶段。早在1998年,华为就开始使用商用的代码检查工具,随后持续投入数千万美元,攻克了静态分析技术检查准确性、效率等难题。类似的事情还有很多,到了2015年,华为云推出了DevCloud,整合了开发的流程、经验和最佳实践。 

随后,DevCloud和云龙平台进行整合,形成CodeArts的雏形。然后经过五六年的反复打磨、反复验证,2022年底CodeArts正式诞生,华为软件开发优秀的实践、流程、方法变成云端的服务,让大家都可以使用。

03

基础软件亟需产业生态共建

CodeArts

说起IT业的核心技术,大家立刻会想到芯片,想到操作系统,实际上,软件开发平台和工具也是非常关键的一环,因为它们是开发软件的软件。 

现在核心的开发软件基本被国外公司控制,工业软件如EDA、CAD、CAE软件就不说了,程序员日常用的Visual Studio、VS Code、IDEA、GitHub、GitLab等著名的开发平台和工具都是国外产品, Microsoft、Jetbrains、Perforce、Atlassian、Adobe等巨头占据了整个市场的45%以上。

对于软件开发工具,国内的软件企业要么是购买美国的商业软件,要么依靠开源技术进行包装,一旦受到国外的制裁,开源技术被禁用,业务就会停摆。 

国外公司垄断的,不仅是工具体系,还包括了工程方法、技术标准、概念语言、技术演进趋势等。我国软件行业尽管产值每年持续快速增长,但欣欣向荣的成果仍搭建于国外的技术基础上。一旦技术底座被制裁,相关行业标准、商用工具无法继续获取或升级,中国的软件产业就会成为无根之木,导致产业发展停滞甚至危机。

所以国家在“十四五”规划中,把应用软件开发平台同云计算、操作系统、数据库一样的被定义为开发支撑基础软件,是非常有前瞻性的。随着国际形势变化和制裁加重带来的风险加剧,国内软件公司也在寻求国产化替代,达到自主可控。 

之前的开发工具,主要是在PC上运行,未来,软件开发将会发生在云端,开发者只要有一个浏览器,就能随时随地进行研发,这就开辟了一个新的赛道,给了国内以华为云为代表的玩家提供了“换道超车”的机会,华为云推出CodeArts也是努力抓住这个机会。

有机会就有挑战,软件业最大的挑战就是“生态系统”,在这个系统中芯片、操作系统、数据库,中间件、开发工具都紧密联系,环环相扣,想要实现国产化替代,单靠华为云CodeArts是不够的,这件事儿需要行业伙伴们一起行动。 

华为云面向产业链推出了众多措施,对企业开发者建立开发者群,和高校合作,推出教材,人才培养等。CodeArts IDE online提供了大量业务插件,帮开发者完成日常工作,同时成立了辅导团队开发者的官方组织,建立了内置于IDE内的独立插件市场。

CodeArts TestPlan也会进一步开放其测试管理平台,比如提供插件市场,更好地对接合作伙伴或第三方公司,引入更多的测试能力,共建测试管理平台。

云上软件的开发需要一个更加开放的生态,华为云与同行之间不是排他竞争,而是携手伙伴以及开发者共享共创共赢。

04

自主创新,期待国产基础软件突围

CodeArts

我们的一贯策略都是开放,学习并使用全世界的软件技术和先进流程,近几年,随着国际形势的变化,先进技术和产品的可获得性打了折扣,倒逼着我们必须要自主创新。

中国软件业想要安全发展,一定要有自己的根技术,为了软件供应链的安全和开发工具的安全,我们的“根”必须要扎得更深一些,让我们的软件行业更具韧性。

通过华为云CodeArts软件开发平台,华为将30多年来在研发上积累的经验、流程、方法沉淀在华为云上,转化为标准的云服务对行业客户进行赋能,不断提升软件开发的效率和质量,生态共建,保证软件供应的连续性。

在华为云以及众多伙伴的努力下,假以时日,国产基础软件一定会突出重围。

华为代码质量管理办法 华为代码质量管理办法,非常具有可落地性。 下载分为1保本而已。 立即下载

相关推荐

华为管理工具 stbmonitor

华为管理工具 stbmonitor

如何做好分支管理,保证高效CI/CD?

一文讲述git分支管理策略。

华为云官方博客 1655

华为代码统计工具CCT V2.0

代码统计工具CCT V2.0可以非常方便快速统计你的程序代码数量。

华为软件编程规范学习(九)--质量保证

华为软件编程规范学习(九)--质量保证9-1:在软件设计过程中构筑软件质量9-2:代码质量保证优先原则    (1)正确性,指程序要实现设计要求的功能。    (2)稳定性、安全性,指程序稳定、可靠、安全。    (3)可测试性,指程序要具有良好的可测试性。    (4)规范/可读性,指程序书写风格、命名规则等要符合规范。    (5)全局效率,指软件系统的整体效率。    (6)局部效率,指某个

ce123的技术博客 4505

华为项目管理工具

序号 模板名称 1 项目组成员表 2 项目策划/任务书 3 项目WBS表 4 项目进度计划表 5 项目风险管理表 6 项目沟通计划表 7 项目会议纪要 8 项目状态报告表 9 项目变更管理表 10 项目总结表

ESP8266入门(一)固件烧录及常见问题分析

为了实现对数据的远程收集和分析,偶然间发现了esp8266这个模块,对此进行了深入的学习,可是在学习之初遇到了大量的问题,这个系列文章就为大家讲讲我遇到的坑以及解决办法,还有esp8266如何连上oneNet云平台的方法。因为我用的是esp8266nodemcu,可以直接连接usb进行烧录,如果用模块的话接线就比较麻烦,可以去搜搜看.

Jerryxuzherui的博客 8956

【华为云实战开发】5.如何快速创建免费Git代码仓库

1 文章目的 本文主要帮助已经掌握或者想要掌握Git的开发者,如何更好的应用Git,以及更好的将Git与DevCloud结合应用。 2概述 2.1版本控制系统介绍 从狭义上来说,版本控制系统是软件项目开发过程中管理代码所有修订版本的软件,能够存储、追踪文件的修改历史,记录多个版本的开发和维护,事实上我们可以将任何对项目有帮助的文档交付版本控制系统进行管理。版本控制系统(Version ...

华为云官方博客 4059

MATLAB仿真耗散孤子共振与金兹堡-朗道方程解析

耗散孤子共振(DSR)是非线性光学中的特殊脉冲现象,通过平衡非线性效应、色散与能量耗散实现稳定传输。其核心数学模型金兹堡-朗道方程(GLE)描述了光脉冲在增益介质中的演化规律,采用分步傅里叶方法(SSFM)可高效求解这类非线性偏微分方程。该技术在光纤激光器设计、高速光通信系统优化等领域具有重要价值,特别是在需要高能量脉冲保持稳定传输的场景。MATLAB数值仿真为理解DSR物理机制提供了直观工具,通过参数扫描可验证脉冲能量与宽度的线性关系特征,并为实际器件设计提供预测依据。

weixin_31240035的博客 259

华为软开云2--玩转代码托管

2.玩转代码托管 提供基于Git的在线代码托管服务 配置管理服务&git基本使用方法 1.怎样配置git环境 安装好git和ter之后,启动gitbash配置用户名和邮箱信息 通过putty key genetor生成SSH密钥 分别保存好私钥和公钥信息 复制出公钥信息 2.怎样上传代码到云端git 此时远程建立的项目已经克隆到本地了 把本地已经写好的代码粘贴到gi...

AthlenaA的博客 2820

Mac用户解决WPS中的俄语显示红线问题(WPS添加外语拼写检查)

我所使用的WPS版本:AppleStore 下载的 MacOs版 3.3.0 首先,对于 在访达-应用程序中,找到WPS,右键-点击“显示包内容” 然后按照下图的索引目录(Contents\Resource\office6\dicts\spellcheck),最后进入一个叫“spellcheck”的文件夹 最后将下载好的字典包(例如上图中的 en_US就代表美式英语;ru_RU就代表俄语) 关于字典包资源下载,我在网上找到一个Google云盘,里面包含了法语,德语,西语,意大利语,葡萄牙.

qq_48159150的博客 7904

TortoiseSVN的安装与使用

TortoiseSVN的安装与应用1、安装1.1、下载TortoiseSVN    点击下载TortoiseSvn1.2、下载汉化包。上面的页面中,找到Chinese, simplified汉化包,点击32位或者64位的Setup,下载汉化包。1.3、安装TortoiseSVN。在选择安装路径页面时要记得勾选“command line client tools”,默认不是勾选的。这里不勾选的话在I...

qq_28566071的博客 4万+

1100亿行源代码,这家公司如何应对大规模代码托管的挑战

更多精彩内容请关注我们随着 AI 技术发展导致开发复杂度增加,软件的可信再次受到了行业的重视。从互联网到产业互联网到 IoT,随着多样设备的接入,以及更多私密信息的上云,...

579

8卡H20运行DeepSeek-V3-0324性能和推理实测

最近在一台 8卡H20 机器上,先后部署了 DeepSeek-R1-AWQ (671B)和最新的 DeepSeek-V3-0324 (685B) ,测试了下性能和数学问题跑分。服务器由火山引擎提供。

weixin_53138109的博客 3367

为何Google、微软、华为将亿级源代码放一个仓库?从全球最大代码管理库说起...

作者 | 夕颜编辑 | Just出品 | AI 科技大本营(ID:rgznai100)【导读】2017 年,在当时微软的一篇官方博客中,时任微软云开发服务副总裁的 Bri...

AI科技大本营 1万+

Java 网络编程(超级详细)

1. 网络编程 1.1 网络编程概述 计算机网络 是指将地理位置相同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 1.2 网络编程三要素 1、IP地址 要想让网络中的计算机能够互相通信,必须为计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,而IP地址就是这个标识号,也就是设备的标识。 2、端口 网络的通信,本质上是两个应用程序的通信。每台计算机都有很多的应用程

imByte的博客 3万+

17、扩展景深成像的瞳孔函数工程技术解析

本文详细解析了扩展景深成像的关键技术,包括基于焦距堆栈的数字处理方法、立方相位掩模的光学设计、对数非球面透镜的应用以及旋转点扩散函数的深度编码功能。通过实验验证和实际应用分析,展示了这些技术在显微镜成像、工业检测和医疗影像中的广泛用途及优势。同时探讨了未来发展方向,如智能算法优化、新型光学材料和多模态成像技术,为相关领域的技术创新提供了参考。

y2z3a4b5c的博客 169

【量子芯链】终于要弯道超车了?华为投入1100亿,量子芯片技术取得重大突破

通过提高自主创新能力,加大投资和研发力度,加强合作交流,注重人才培养和技术储备,中国芯片行业有望迎来新的发展机遇,实现从“中国制造”到“中国创造”的跨越。这些专利显示了华为在量子芯片技术方面的创新能力和实力,也为华为在量子芯片领域的未来发展奠定了坚实的基础。华为在量子芯片领域的突破,不仅展示了华为在量子科技领域的雄心和实力,也为未来科技的发展带来了新的可能和机遇。在这个背景下,华为公司积极加大研发投入,成功突破了自研芯片的难关,特别是超导量子芯片的研发成功极大地推动了中国科研事业的发展,具有重要的意义。

LL7755的博客 2059

8.9华为OD机试真题 新系统 - 灯带颜色变换 (Java/Py/C/C++/Js/Go)

8.9华为OD机试真题 新系统 - 灯带颜色变换 (Java/Py/C/C++/Js/Go)

算法大师! 672

为何Google、微软、华为将亿级源代码放一个仓库?

作者 | 夕颜编辑 | Just出品 | AI 科技大本营(ID:rgznai100)【导读】2017 年,在当时微软的一篇官方博客中,时任微软云开发服务副总裁的 Bri...

程序人生的博客 1085

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

华为裁员1100人!任正非痛批管理层:这种领导鼠目寸光

Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲华为还是裁员了,一裁就是1100人。距离任正非4.2...

iOS_开发 783

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

一张图看懂CodeArts Repo 6大特性,带你玩转代码托管服务

是华为全栈自研的代码托管服务,基于Git提供分布式代码管理和协同开发能力,包括成员管理、权限控制、代码托管、代码检查、代码审核、代码追溯、持续集成等功能,助力不同规模企业的研发质量和效率提升,如今管理并保护着华为1100亿行代码,支撑15万人开发作业,日均1亿次下载量、1PB传输流量、3亿次API调用,一套系统支撑了华为嵌入式、云、终端、车等各类型产品代码管理和协同开发。

middleware2018的博客 311

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

彻底退出,刘强东转让所持京东股份;华为前三季研发费用超 1100 亿;腾讯会议部分功能开始收费 | EA周报...

EA周报2022年11月4日每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事、掌握IT核心技术。周报看点1、国美被曝停发员工工资2、彻底退出,刘强东转让所持京东股份3、马斯克要求 Twitter 工程师默写代码4、腾讯会议部分功能开始收费5、华为前三季研发费用超 1100 亿6、华硕开设首个AI智能工厂7、微服务+低代码创新方案 | 统信软件携手普元加速赋能数字化转型热点大事件国美被曝停...

低代码开发,数据,中间件,企业架构原创技术分享 1407

华为某部门裁员千人,任正非痛批:“这种领导鼠目寸光“,称职的CFO随时可以接任CEO!...

点击“开发者技术前线”,选择“星标????”在看|星标|留言, 真爱作者:任正非、咔嚓;来源:蓝血研究回复“666”,获取一份专属大礼包近日,任正非在平台协调会上直接表达了自己度某些...

开发者技术前线-DevolperFront 894

CI/CD相关软件-华为CodeArts

最近做一些CI/CD的活,正好华为的ERP软件发布比较热,了解之后觉得作为一个confluence、jira、artifactory、Jenkins等交互功能替代是可行的,所以分享一下。

良知犹存的博客 1620
上一篇: 世界上最流行的编程语言,用户数超过Python,Java,JavaScript,C的总和!
下一篇: 世界上最完美的两个软件,太厉害了!
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值