谢尔盖·布林|菜鸟程序员如何渡过小白期呢?

谢尔盖·布林|菜鸟程序员如何渡过小白期呢?

文章图片

谢尔盖·布林|菜鸟程序员如何渡过小白期呢?

相信小习惯的力量
菜鸟和大牛的区别除了写代码、debug的核心能力差距之外 , 另外一个很大的差别就是在习惯上 。 大牛经过摸爬滚打练出了一系列优良的习惯 , 而菜鸟好习惯还没养成 , 坏习惯有了一堆 。 所以身为菜鸟的时候一定要有规范和习惯意识 , 养成好习惯 , 去掉坏习惯让自己越来越习惯写出优质的代码 。
关于习惯仁者见仁 , 每个人也都有自己的习惯 。 我简单提几个 , 给大家抛砖引玉 。
一个函数只做一件事
如果有一天你接手了另外一个同事的代码 , 发现他有一个函数里面装了三千行代码 , 你会是什么感受?
这是我亲身的经历 , 我当时看到代码的第一反应就是把这个人揪出来暴打一顿 。 代码和其他文本信息不同 , 越拥挤可读性越差 。 优质的代码和优质的文章很像 , 结构清晰、层次分明、表达准确 。 一个函数里面装几千行代码显然是老太太的裹脚布——又臭又长 。
对于一个函数里究竟应该写多少代码 , 每个人有不同的理解 。 实际上我们也没必要硬扣 , 遵守一个简单的原则即可 , 一个函数只做一件事 。 举个简单的例子 , 假设我们要从上游读一批数据 , 然后画出某一个函数作用之后的结果 。 我们简单分析一下 , 表面上是画图这一件事情 , 但是这一件事情当中其实包含了好几个步骤 , 比如说从上游获取数据 , 获得函数作用的结果 , 最后才是画图 。 那么我们完全可以拆分成三个函数 , 一个函数获取数据 , 一个函数获取结果 , 一个函数画图 。
这样别人以及以后的自己看这段代码就会非常清楚 , 每个函数做了什么一目了然 。 假如有一天老板无意间翻了大家的代码 , 别人的代码一个函数里装了几千行 , 你的代码层次分明 , 每个函数做什么都一目了然 , 你说老板会怎么想?
起长一点的变量名
新手一个很大的问题就是总喜欢起很短的变量名 , 像是abcd 。 或者是什么bdaa什么的 , 看起来非常难看 , 可读性也很差 。 之前有几个同学找我帮他们看代码 , 给的都是这种代码 , 看起来感觉眼睛都被针扎了……
吐槽归吐槽 , 老实说我在之前打acm的时候也是喜欢短变量名 , 虽然不至于这么夸张 , 但一般一个变量名也不会很长 。 当然这是由于当时比赛的需要 , 大家争分夺秒 , 别人一个变量名叫btn , 你叫binary_tree_node , 很显然拼敲代码的速度你一定输 。
但问题是后来毕业了之后我也一直保留这样的风格 , 不出意外地遭到了老板和同事的毒打 。 大家都表示不喜欢我这样的代码风格 , 我当时还坚持 , 觉得是自己代码能力的体现 。 后来去读了一下一些大牛的代码 , 尝试换了一种风格之后 , 发现真香了 。 虽然写起来的时候麻烦了一点(其实也还好 , 现在有各种代码补全功能) , 但是读起来是真的很舒服 , 思路也清楚了很多 。 所以如果你现在的代码不是这种风格的话 , 请一定尝试改一下 , 对自己对其他人都好 。

另外一点是我们起名的时候可以是不规范的英文 , 哪怕不太准确也没问题 , 但一定一定不要用拼音 。拼音阅读起来比半通不通的英文还要费劲 , 而且用拼音做变量或者是函数名是一件非常非常low的事情 , 绝对会让对方对你的能力产生怀疑 。 市面上也有一些帮助起名的插件 , 有这方面需求的同学请务必去了解一下 。
遵守代码规范