什么样的代码才是优秀的代码

许多去 Google 参观的人,用完洗手间后,都会惊奇而略带羞涩地问:“你们马桶前面的门上,贴着的 Python 编程规范,是用来搞笑的吗?”

这事儿还真不是搞笑,Google 对编码规范的要求极其严格。今天,我们就来聊聊编程规范这件事儿。

1.代码是写给谁的?

随着科技与互联网的进步,今天得我们可以很容易从事计算机相关工作,基本上只要简单懂一些计算机编程相关的内容,就可以写出让计算机理解和执行的代码,但是处在当下的我们,写出的代码虽然是需要计算机执行.但是更多的情况下,我们编写的代码是给人类理解和阅读的.

代码更多是写给人看,而不是仅仅给机器跑而已

代码千万条,整洁第一条,代码不规范,同事两行泪

2.代码不规范导致的问题

  • 刚找到一份新工作,想要快速融入,结果看看开发的项目代码一团如麻.
  • 当你的上司看到你写的代码时,你解释了半天他依然一头雾水
  • 作为一个老司机,本想在公司大干一场,结果天天在改代码找bug
  • 作为团队中的一员,你们每个人的代码风格迥异.
  • 在电脑前工作的你,码字速度越来越快,代码越写越多,结果最终你像码农一样垒代码.却跑题了..
  • 无数个日夜疯狂敲代码的你,在提交代码后终于长舒一口气,却发现测试没过…
  • 开发到一半的项目,在休假结束后,本想快速继续开发,却发现有点看不懂了..
  • 总是被催促着,着急赶工,代码写的乱七八糟,特性越加越多,崩溃的几率越来越大,最后代码无法管理,产品下线,公司倒闭..
  • 着急写出的烂代码居然能够运行,心想着有朝一日能够再回头清理,结果稍后等于永不
  • 团队初期开发进展迅速,但是随着时间却慢如蜗牛,代码的每次修改都会影响其它几处代码.
  • 项目随着开发团队人员的变动和迭代,每一次都会有所改变,却越来越糟糕,最后束手无策.

3.代码风格规范的好处

任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。
  • 利于团队合作
  • 发现潜在的bug
  • 提高运行效率
  • 降低维护成本
  • 有助于代码审查
  • 有利于代码安全
  • 有助于自身的成长
  • 令人心情愉悦

4.什么样的代码才是优秀的代码

好的代码,就像是好的笑话——无需解释就能让别人明白。如果你的代码能够做到不解自明,在大多数时候,你根本无需为其配备说明文档。

举例:

好代码像是一本写作技巧高超的人所写的书

1.容易理解

2.分章明确,每一章都有清晰的主旨

而坏的代码像是刚刚学会写字的人所写的书

1.各个章节之间纷乱复杂,每一章都没有明确的主旨

2.连篇累牍的重复一句话,而且毫无缘由

3.作者在一开始设定了一些规则,但是在后面的内容中却自己不断的违反这些规则

4.突然间书里出现了一个吸血鬼,而且还能在白天出来吸血。

优秀代码的特点

  • 可读性——不只是你,还有你身边与你合作的其他开发者
  • 可维护性——让你的代码在修改的时候很简单
  • 简洁性——不要让你的代码看上去毫无必要的复杂
  • 效率性——尽可能的让你的代码获得最快的运行速度
  • 明确性——如果你的代码能够做到不解自明,在大多数时候,你根本无需为其配备说明文档。在为方法和属性命名的时候,做到尽可能的合理。把长的代码进行拆分。不要复制/粘贴代码块。

如果你的同事不能轻松的看懂你写的代码,那么你的代码就不够好。

如何知道我写的代码好不好?

简单的代码质量测试

1.找一个从来没读过你的代码的开发者,让他看你的代码,并且让他试着说出每一个模块的作用。

2.如果你经常需要向他进行解释,那么说明你的代码不够好。解释的次数越多,代码的质量就越低。

3.如果你只是静静的坐在一边,他无需问你任何问题,那说明你的代码质量很高。

当你在写代码的时候,一些信号可以证明你写的代码质量不错:

  • 代码写的很聪明,但是又不会过分的聪明
  • 无论在速度上,还是可读性上,你都使用了最佳的算法
  • 类、变量和函数都得到了正确的命名,让人看一眼就能理解
  • 休息了一个周末之后,你继续写代码,发现自己可以立刻继续之前的工作
  • 那些需要重复使用的东西总是可用
  • 你所使用的方法都很短,最理想的情况下要少于50行,最多不超过100行而且能够完美的执行单个任务
  • 在调用方法的时候,你有着足够的信息,无需在代码堆中苦苦寻找
  • 能够很轻松的在此前的代码中进行功能添加和修改
  • try/catch块的体量尽可能的小
  • 毫不费力的就可以写出单元测试

当然以上都是经验的总结,其实关于写代码,还是有很多编程规范可以遵循的.也是我们本次课程中的重点内容.

总结:好看+安全+高效