本文来自《华为人》,作者:徐宏伟
原标题:写了十几年代码,我为什么还没有被拿去“祭天”?
一天晚上,我和老婆聊天,说部门要我写个“大咖谈软件”的文章,老婆斜了我一眼,淡淡地说:“Linus大神21岁就写出了Linux内核的雏形,缔造了一个自由主义的开源世界;张小龙28岁写出了foxmail,在2000年就卖出了1200万的价格。大咖,认识您这么久了,还不太了解您有什么杰出的成就?”我讪讪地咽了口水:“好吧,我重新组织下语言,我需要写个谈软件的文章……”
回首过去这半年,软件总工、软件专家的任命,还有新年伊始任总《全面提升软件工程能力,打造可信的高质量产品》的发文,都让我们这些写了十多年代码的软件工程师激动不已。我2006年进入公司,几乎参与了华为3G控制器产品的完整生命周期,见证了华为3G从起步、上升、灵魂深处的改进、巅峰、回落的波澜壮阔历程,并在35岁“高龄”有幸加入到5G开发部的大家庭。
十几年来,我一直坚持在编码岗位,经历了普通开发人员、TL、MDE、MDEL、SDM(云化团队)、Committer、软件专家等各种岗位。然而我却深知,不算大牛的我,从事编码这个“高危”职业十几年而没有被拿去“祭天”,依靠的是一个程序员的自我修养——扎实的基础软件能力、如履薄冰的工作态度、对技术孜孜不倦的追求。
1 好代码长什么模样?
记得几年前部门第一次评选优秀代码,我成为“金码奖”获得者之一。是因为代码很炫吗?并不是。我参与评选的代码,遵循着简单的原则:简洁、逻辑清晰、函数职责单一、合理的数据结构设计。并没有使用高深的编码技巧,也没有应用某某设计模式。正如公司最新的C/C++语言编程规范,也是将编写简洁的程序放在首位。简洁、逻辑清晰的代码,易于阅读和维护,这段代码后面也因需求变化而被修改,但却从来没有引入过网上问题。
当然,简单不代表没有思考,恰恰相反,更需要我们在写代码之前谋定而后动、三思而后行。有一次项目组安排我做性能优化,通过反复分析热点