加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

写了十几年月码,我为什么还没有被拿去“祭天”?

发布时间:2019-04-15 23:42:28 所属栏目:移动互联 来源:伕名
导读:一天晚上,我和妻子谈天,说部分要我写个大咖谈软件的文章,妻子斜了我一眼,淡淡地说:Linus大神21岁就写出了Linux内核的雏形,创造了一个自由主义的开源天下;张小龙28岁写出了foxmail,在2000年就卖出了1200万的价值。大咖,熟悉您这么久了,还不太相识
副问题[/!--empirenews.page--]

一天晚上,我和妻子谈天,说部分要我写个“大咖谈软件”的文章,妻子斜了我一眼,淡淡地说:“Linus大神21岁就写出了Linux内核的雏形,创造了一个自由主义的开源天下;张小龙28岁写出了foxmail,在2000年就卖出了1200万的价值。大咖,熟悉您这么久了,还不太相识您有什么精巧的成绩?”我讪讪地咽了口水:“好吧,我从头组织下说话,我必要写个谈软件的文章……”

回顾已往这半年,软件总工、软件专家的录用,尚有新年伊始任总《全面晋升软件工程手段,打造可信的高质量产物》的发文,都让我们这些写了十多年月码的软件工程师感动不已。我2006年进入公司,险些参加了华为3G节制器产物的完备生命周期,见证了华为3G从起步、上升、魂灵深处的改造、顶峰、回落的波涛壮阔过程,并在35岁“高龄”有幸插手到5G开拓部的各人庭。

十几年来,我一向僵持在编码岗亭,经验了平凡开拓职员、TL、MDE、MDEL、SDM(云化团队)、Committer、软件专家等各类岗亭。然而我却深知,不算大牛的我,从事编码这个“高危”职业十几年而没有被拿去“祭天”,依赖的是一个措施员的自我涵养——踏实的基本软件手段、如履薄冰的事变立场、对技能孜孜不倦的追求。

1、好代码长什么边幅?

记得几年前部分第一次评比优越代码,我成为“金码奖”得到者之一。是由于代码很炫吗?并不是。我参加评比的代码,遵循着简朴的原则:简捷、逻辑清楚、函数职责单一、公道的数据布局计划。并没有行使高妙的编码能力,也没有应用某某计划模式。正如公司最新的C/C++说话编程类型,也是将编写简捷的措施放在首位。简捷、逻辑清楚的代码,易于阅读和维护,这段代码后头也因需求变革而被修改,但却从来没有引入过网上题目。

虽然,简朴不代表没有思索,恰好相反,更必要我们在写代码之前谋定尔后动、三思尔后行。有一次项目组布置我做机能优化,通过重复说明热门函数、重复测试比对差异话务模子下的机能差别,前前后后花了3个礼拜的时刻,我找到了引起机能恶化的最要害身分。最终我抉择回收修改备份机制、减小备份数据的优化法子。这些方案代码窜改都很小、很简朴,但现实优化结果却很好,满意了将来几年营业成长的需求。

再来看另一个例子,某局点进级新版本后呈现CPU负载上升的题目。颠末近两周的攻关,我最终定位是新版本在营业处理赏罚流程中新增了直接读取DB内核的操纵。直接读取DB内核,代码处理赏罚简朴,也能正常实现营业成果,可是机能却很是差。假如开拓进程中能多想一步,回收缓存的方案,机能会有天壤之别,也是更好的代码。

人们常说独一稳固的就是变革,客户需求一向在变革,我们的代码也会被动可能主动地在变革。计划出可扩展、自动顺应客户需求变革的软件架构,是软件工程师永恒的追求。这说说轻易,做起来却很难。必要我们不断蕴蓄营业常识,扩展常识面,勤于思索,辨认技能将来演进趋势。我们无法从一开始就做一个无所不能的架构,来包括将来的变化多端,纵然能,交付节拍也不必然应承。满意当前及将来一按时刻内营业必要的计划,或者就是最吻合的。

2、练好踏实的根基功

能写出好代码,更要能一连地写出好代码,必要我们深刻领略技能道理和营业逻辑。条件是具备踏实的编程基本,即基本软件手段,如基本的数据布局和算法、编译道理等。

客岁底,我跟部分几个软件好手一路,去外部介入了一次互联网架构大会。AI、区块链、物联网、云、中间件等时尚、热门、风口相干的议题很是多。可是我没想到,最火爆的却是一些基本软件计划、架构计划和演进之类的专题。就像武侠小说写的一样,练好根基功、练好内功,后续无论什么精妙招式,城市信手拈来。

其它,一些编程风俗,假如僵持下去,对付编程涵养晋升也长短常有效的。好比快捷键的行使、有用的代码注释、定名法则、代码气魄威风凛凛等。每次写代码除了追求好代码之外,我城市时候去思索软件上的优化,可否能行使更少的内存,可否有更好的机能。重视数据布局中的每一个字段,重视每一处小的代码优化,都有也许给我们带来意想不到的收成。好比客岁做机能优化,我们仅仅是将流程中的一处动态内存申请修改为静态内存池,却不测得到了30 CAPS(每秒呼唤次数)的机能晋升。

写了十几年月码,我为什么还没有被拿去“祭天”?

▲团队合影

3、一行代码激发的惨案

有人问,原理我都懂,为什么却依然写不出好代码?

许多开拓职员,由于小我私人风俗、赶工期、外部要求不高档多种缘故起因,在编程时出格随意,直接Copy-Paste。我认为措施员该当像追求糊口品格一样,养成不迁就的编程风俗、严谨的编程立场。

对付代码上库,我一向都是小心翼翼,如履薄冰。上库前我会重复看本身修改的代码,看修改代码的上下文,并举办修改前儿女码比对。代码上库后再看几遍,确保都已按预期合入。进入公司这么多年,本身从来没有多合、漏合、错合过任何一行代码。

各人也许会认为我这是小题大做,但究竟上,这都是汗青上曾经产生过的凄切教导。我们在某国进级新版本后发明用户接入乐成率恶化,最后定位是因为一行代码被误删除导致的。过后回溯,开拓职员本身都不记得这一行代码为什么会被删除。尚有一次,一行代码被误删除,导致一个要害KPI指标:软切换统计次数有改观。部分把这两起变乱总结为“一行代码激发的惨案”,无论是对产物品牌、客户印象、照旧对付小我私人,都造成了恶劣的影响。

过后各人都在思索,我们有结对编程、代码检视、开拓者自测试等很是完美的开拓流程,尚有MDE(模块计划师)检视作为代码上库前的“守门员”,为什么还会产生这么初级的错误?是流程没执行到位,照旧MDE疏忽、没把好关?

在IPD 2.0厘革中,公司小心开源组织的Committer运作,来增强我们的Committer机制和文化。5G开拓部也选拔、录用了一批Committer,我有幸成为个中之一。刚开始推行Committer职责时,我有点迷惑:这不就是给MDE脚色披上了新的外套,把MDE原先“私下”做的工作,通过Committer统计数据给泛起出来嘛?

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读