你知道华为为了让你好好写代码,做了哪些努力吗?

2024-06-13 03:28

本文主要是介绍你知道华为为了让你好好写代码,做了哪些努力吗?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在华为最轻松快乐的事就是写代码。方案设计、逻辑思路、接口定义、数据结构在设计阶段都已经定好了,研发人员只需要按照领导给的设计文档来编写代码就好,几乎不用费脑子,第一个需求研发的时候我几乎不知道这个需求是干啥用的只需要按照接口就完成了研发要求。

同样在华子最烦的事是定方案和扯皮。事来需要先定位边界,一般定位边界的时间,一个BUG都快写完了[冷汗],我曾经最高记录拉了40多个人陆陆续续进会议定位BUG,从上午9点一直到下午5点中午饭在别人定位BUG的时候我吃了碗泡面。

为了让你写好代码,华为做了哪些努力呢?

1. 硬件

在华为每个人的能领到电脑都比较不错,几乎都是高于项目本身要求的配置。如果遇到大型的项目编译,可以申请服务器进行编译,大大缩短了编译时间。(想想我以前的公司,我们做浏览器研发电脑配置16G,编译一次浏览器,一个下午就过去了,并且你还不能动电脑,你动·还会闹脾气死给你看。虽然有两台电脑但是也无济于事呀,申请了很久才给换),每个人几乎都是双屏显示,一边看文档一边写代码事半功倍。

2. 培训

进入华为的项目前都要考试,安全考试和编码规范考试,通过以后才能进入项目,并且项目组定期会做编码培训和编码安全培训,编码培训会就近期的代码问题进行培训,大家就大概知道有哪些问题需要注意。编码安全培训,会就一些常见的漏洞进行培训教组员要避免出现安全问题,例如日志打印,异常处理可能会提示系统信息,如何避免sql注入,哪些操作需要写日志等。

3. 代码门禁

3.1 流水门禁

这东西很好,在你的代码上传时就会触发,会对代码的风格、复杂度、函数长度、代码格式、引用包的顺序、代码重复度、变量名称合规、接口是否有关键注释、是否使用了违规函数等进行检测。
通过检测后的代码几乎长得差不多了。代码风格都是统一的。

3.2 CodeReview

不同于原来的公司的是,华为的同事确确实实会帮你看代码,当然我也喜欢看别人的代码,一般我不会提问题,因为我不是学java的,所以也看不出什么问题,之所以喜欢看别人的代码是想学习别人的代码是怎么写的。因为我是新手所以很多人都会给我看代码,告诉那里不对,虽然有时候为了提交一个代码需要来来回回修改很多次,但是也学到了很多东西。下次就不会出现同样的问题。

通过上面重重的考验能够提交的到仓库的代码几乎不会有太大的问题(业务逻辑问题除外)。

这篇关于你知道华为为了让你好好写代码,做了哪些努力吗?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1056149

相关文章

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,