什么样的代码才是优秀的代码¶
许多去 Google 参观的人,用完洗手间后,都会惊奇而略带羞涩地问:“你们马桶前面的门上,贴着的 Python 编程规范,是用来搞笑的吗?”
这事儿还真不是搞笑,Google 对编码规范的要求极其严格。今天,我们就来聊聊编程规范这件事儿。
1.代码是写给谁的?¶
随着科技与互联网的进步,今天得我们可以很容易从事计算机相关工作,基本上只要简单懂一些计算机编程相关的内容,就可以写出让计算机理解和执行的代码,但是处在当下的我们,写出的代码虽然是需要计算机执行.但是更多的情况下,我们编写的代码是给人类理解和阅读的.
代码更多是写给人看,而不是仅仅给机器跑而已
代码千万条,整洁第一条,代码不规范,同事两行泪
2.代码不规范导致的问题¶
- 刚找到一份新工作,想要快速融入,结果看看开发的项目代码一团如麻.
- 当你的上司看到你写的代码时,你解释了半天他依然一头雾水
- 作为一个老司机,本想在公司大干一场,结果天天在改代码找bug
- 作为团队中的一员,你们每个人的代码风格迥异.
- 在电脑前工作的你,码字速度越来越快,代码越写越多,结果最终你像码农一样垒代码.却跑题了..
- 无数个日夜疯狂敲代码的你,在提交代码后终于长舒一口气,却发现测试没过…
- 开发到一半的项目,在休假结束后,本想快速继续开发,却发现有点看不懂了..
- 总是被催促着,着急赶工,代码写的乱七八糟,特性越加越多,崩溃的几率越来越大,最后代码无法管理,产品下线,公司倒闭..
- 着急写出的烂代码居然能够运行,心想着有朝一日能够再回头清理,结果稍后等于永不
- 团队初期开发进展迅速,但是随着时间却慢如蜗牛,代码的每次修改都会影响其它几处代码.
- 项目随着开发团队人员的变动和迭代,每一次都会有所改变,却越来越糟糕,最后束手无策.
3.代码风格规范的好处¶
任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。
- 利于团队合作
- 发现潜在的bug
- 提高运行效率
- 降低维护成本
- 有助于代码审查
- 有利于代码安全
- 有助于自身的成长
- 令人心情愉悦
4.什么样的代码才是优秀的代码¶
好的代码,就像是好的笑话——无需解释就能让别人明白。如果你的代码能够做到不解自明,在大多数时候,你根本无需为其配备说明文档。
举例:
好代码像是一本写作技巧高超的人所写的书¶
1.容易理解
2.分章明确,每一章都有清晰的主旨
而坏的代码像是刚刚学会写字的人所写的书¶
1.各个章节之间纷乱复杂,每一章都没有明确的主旨
2.连篇累牍的重复一句话,而且毫无缘由
3.作者在一开始设定了一些规则,但是在后面的内容中却自己不断的违反这些规则
4.突然间书里出现了一个吸血鬼,而且还能在白天出来吸血。
优秀代码的特点¶
- 可读性——不只是你,还有你身边与你合作的其他开发者
- 可维护性——让你的代码在修改的时候很简单
- 简洁性——不要让你的代码看上去毫无必要的复杂
- 效率性——尽可能的让你的代码获得最快的运行速度
- 明确性——如果你的代码能够做到不解自明,在大多数时候,你根本无需为其配备说明文档。在为方法和属性命名的时候,做到尽可能的合理。把长的代码进行拆分。不要复制/粘贴代码块。
如果你的同事不能轻松的看懂你写的代码,那么你的代码就不够好。
如何知道我写的代码好不好?¶
简单的代码质量测试¶
1.找一个从来没读过你的代码的开发者,让他看你的代码,并且让他试着说出每一个模块的作用。
2.如果你经常需要向他进行解释,那么说明你的代码不够好。解释的次数越多,代码的质量就越低。
3.如果你只是静静的坐在一边,他无需问你任何问题,那说明你的代码质量很高。
当你在写代码的时候,一些信号可以证明你写的代码质量不错:¶
- 代码写的很聪明,但是又不会过分的聪明
- 无论在速度上,还是可读性上,你都使用了最佳的算法
- 类、变量和函数都得到了正确的命名,让人看一眼就能理解
- 休息了一个周末之后,你继续写代码,发现自己可以立刻继续之前的工作
- 那些需要重复使用的东西总是可用
- 你所使用的方法都很短,最理想的情况下要少于50行,最多不超过100行而且能够完美的执行单个任务
- 在调用方法的时候,你有着足够的信息,无需在代码堆中苦苦寻找
- 能够很轻松的在此前的代码中进行功能添加和修改
- try/catch块的体量尽可能的小
- 毫不费力的就可以写出单元测试
当然以上都是经验的总结,其实关于写代码,还是有很多编程规范可以遵循的.也是我们本次课程中的重点内容.