如何看待华为1100亿行规模的代码库?

1

华为1100亿行规模的代码库,从我10多年的从业经历来看,除了震惊之余,还有以下几个方面的解读。

1.华为做了很多事

网络设备的研发,基站、路由器、交换机等硬件设备,也需要驱动程序和操作系统也需要软件编程。手机业务这块,emui,鸿蒙操作系统、hms这些也需要编程。智能穿戴设备、内部信息化管理系统……等都需要编程。做的事情多,研发的产品多,做的系统多,代码量1100亿行也正常。

2.代码复用度高吗?

软件设计的重要作用就在于提高复用度,规划设计做的不好,出现大量的重复性代码也是导致代码库大的一个重要原因。由于没看华为代码库,所以,也不敢说华为的软件设计不好、代码复用度不高。

2

好吧,需要算算了。按美国平均水平,每个程序员每天10行代码,中国比较勤奋,就算30行吧!一人一年1万行吧。算下来大约是1100万人年。软件有生命期,好的情况下自己败坏周期在5-20年,质量一般的话,也就10年(如此大量代码,只能是行业平均水平)。也就是说,大约需要110万程序员。嗯,什么概念呢?大约至少得10个微软吧!

再说恐怖的,cmm3级(这不是平均水平,而是较高水平了),一千行大约3个问题出厂,1100亿大约是,3亿个bug(也就是3亿个问题)。解决这些问题足够让一个微软公司破产了。但华为活得好好的,其危机却与这个没关系。所以,可以明白的是目前华为的产品代码,绝对达不到这么大。如果此事真实,其中大多数代码应该被抛弃了,因为即便是cmm5也得有3千万bug,这不可能是真实的。

好了,如果代码库真的有这么多,到底是什么情况呢?估计多数是开源代码库的中依赖的部分复制和开发者保存的备份。这是防止断网影响项目进展的防范手段。所以别太嗨了。呵呵。

算完了,但果是不被质疑的。程序员的感受是,一天10行代码?搞笑呢?

那我先拿一个职业生涯中的例子看看个人生产情况:

3

这是真的吗?如此海量的代码库,应当是全球之最,可以申请吉尼斯世界纪录了。

1100亿行代码,是什么概念,我们做一些比较,就明白了。

上世纪九十年代,大家记忆很深的WPS1.0,求伯君先生个人开发的,源代码大致12万行。这只是华为代码库的百万分之一。


4

华为大多数的代码都是外包人员写的!外包写的!写的!

至于代码质量,只能说凑合吧!

在去年初,内部实行所有的研发人员必须写代码,标准是每人30行/天。


另外,至于1100亿行代码。其中有很多代码功能相似的模块,在华为内部,实行内部竞争,一个内部使用的工具,有可能有很多个部门在同时的进行研发,然后内部进行对比。选出更好的,所以在内部rtools上有很多工具,甚至有非常多的完整版工具都没人使用。

5

如果华为有1100亿行代码库,华为从成立到现在接近30年,平均每年40亿行代码。华为最初的程序员几十人到现在的7万人,取平均数3万人。40亿代码除以3万,人均每年要写13万行代码,一年按300工作日来算,每人每天要写400行代码,还要保证程序代码的调试,测试,模块组装,系统测试,改Bug。作为一个资深程序员,我认为除非是低水平重复劳动的复制粘贴代码,否则很难保障代码的质量,效率,稳定性和可扩展性。

程序设计,不是代码越多越好,真正动手敲代码之前,进行构架设计,分层和模块设计,接口设计,扩展性设计,稳定性设计,效率和容错性设计,这些才是程序员真正花时间精力的地方

6

确实有这么多,内部可以搜一下能看到1千多亿行代码,但是并不是每一行都是写出来的,华为的产品部门很多,其中重叠的功能也很多,但是各自的都有独立的代码仓,很多代码都是相互移植使用的,所以这一千多亿代码存在大量重复代码,这是不好的,说明部门之前独立战斗,未来趋势应该是平台组件化,你这个产品需要什么功能直接组件插入,而不是把别的部门源码拿来修修改改,自己维护。

7

华为公司有如此大规模的代码库其实也不是一件很奇怪的事情,比较华为公司已经成立30多年了,无论是硬件还是软件层面都积累了大量的资料,单是代码层面就是一个天文数字的存在了,而且华为产品种类非常繁多,每种产品都会有相应的产品迭代能力,所以达到这种规模的代码行数其实也是可以理解的,而且很多功能模块是可以共用的,所以弄成一个大的代码库也方面代码之间进行共享,在代码共享这方面谷歌公司做的比较靠前,谷歌内部的代码在提交的时候都有严格的代码规范,所以只要拿到了权限就可以根据规则找到自己需要的代码块,非常的方便快捷。

关于谷歌这种模式华为公司也从深层次进行过研究,当初任正非老爷在在接受采访的时候讲到美国的几个科技巨头每家都有值得学习之处,特别是谷歌公司在安卓生态建设过程中所做的事情,更是简单直接高效虽然安卓的代码是开源的,但是全球没有几家企业能够跟的上谷歌的节奏,谷歌正是用这种模式在移动操作系统领域杀出了属于自己的一片天地,华为手机在海外销售还要受到谷歌GMS的制约。

按照华为公司目前公司的规模只是研发人员就达到将近十万的级别,单单是软件开发人员都有几万之众了,而且华为公司在内部管理方面有着高效的机制运转,之前同华为公司接触过,华为在使用安卓系统进行开发的功能的时候,底层代码经过了大量的修正而且修改的地方非常之众多,也就是讲华为公司在产品研发上的迭代的速度非常之快,而且已经快到了让人窒息的程度,几万人的规模加上企业已经成立了30多年的时间了代码行数达到1100亿行的规模也不是一件特别让人诧异的事情。

由于美国针对华为公司的实体清单事件,让华为公司在国内成为响当当的企业,其实从另外的层面讲美国给华为公司做了最大的免费广告,让之前一直处于低调状态的华为公司突然之间成为大家在街头讨论的重点,而且华为公司的手机产品在4月份占据全国的65%,这是一个非常恐怖的数字也难怪小米的高管喊出来这种比例的销售量对于市场竞争是极其不利的话语。

华为现在是国内最大的民营企业而且绝大部分的收入来源来自于海外,这是国内无数不多的赚取海外利润的企业,单从这点上讲华为公司的很多策略都是值得国内很多企业去学习,而且从成立到现在一直致力于通讯行业技术的研发,终于数十年磨一剑成就了如今的华为公司,中国也因为有华为这种优秀的企业而感到高兴,最重要的是华为公司在5G领域有着绝对意义上的领先优势,而且随着时间的推移这种优势还在不断的加深,而且华为公司每年提交大量的有效专利也保证了这家在国际市场生存稳定性越来越强,在历史从来没有一个国家针对一个企业下如此大的砝码,从这点上讲非常值得大家赞扬,能够拥有1100亿的代码数量更加能从侧面证明华为公司的强大之处,希望能帮到你。

8

作为一个曾经的华为外包,我想从这几个角度发表一下我自己的感想。

纯手敲个人观点,如有不对,还望海涵。

第一点:代码数量。

看到这个标题可能会让许多朋友为之一震。没错,1100亿是一个什么样的数字?2020年全国所有软件开发人员(从新手到大牛)估算数量为500万左右,那么照这个数字计算,国内每一个软件开发人员今年需要为此贡献两万多行代码。所以仅看这个数字我们会认为是一个非常夸张的数字。聊完了量级问题,那么质量又会怎么样呢?我们继续往下聊...

第二点:世界级企业——华为。

9

需要一个X项目对整个代码重新设计优化。就像重新写C库或OS。华为人才很厉害,但与国外顶尖人才比要弱的多,基础库,云基础软件,AI基础软件,os和实时os都没有自己的,编译器不知是否真的自己搞的。

10

作为前东家员工,我的看法华为的代码是从人里多少年堆出来的!光是之前暴露的方舟代码居然是动画,代码水平无法恭维!

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章