没有对比就没有伤害,优秀的代码VS糟糕的代码
如果你还没有发现代码质量的区别,如果你从未见过优秀的代码,或者从未见过糟糕的代码,那么本文将以直观地对比,告诉你代码质量究竟会有多大的区别。
我们知道代码量显示着功能的复杂程度,例如Windows XP的代码量超过2000万行,Linux内核有1500万行(2012年)。然而代码量和功能数量之间并非线性关系。
优秀的设计中,代码量和功能数的关系是这样的:
糟糕的设计中,代码量和功能数的关系是这样的:
优秀的系统往往会有优秀的结构设计:层次清晰、职责单一、模块化,方便扩展或者复用。功能的添加往往只是在现有框架中添加少量代码。
然而糟糕的设计中,层次混乱、互相耦合、难以阅读,既难以复用又不易扩展。每当被要求添加功能时,不得不几乎完整地实现整个功能的流程,并修复与原系统的所有兼容问题。
优秀的代码中,注释是这样的:
糟糕的代码中,注释是这样的:
最愚蠢的程序员都能写出机器能读懂的代码,而优秀的程序员能写出人可以读懂的代码。
程序的注释是为了让人读得懂。多数优秀的代码中,注释几乎接近代码行数的一半,描述函数功能、解释参数配置、指出陷阱所在。而糟糕的代码中不仅不含这些注释,甚至会保留大量残余代码,可读性差又难以重构。
优秀的代码中,命名是这样的:
糟糕的代码中,命名是这样的:
命名是为了让代码更加容易阅读,使用规范的术语不仅更加易懂,同时也是开发者知识水平和开发经验的表现。如果说以中文拼音命名显得奇怪,那么直接以a
, b
, c
, d
命名的便会显得可恨,谁记得你的a
是神马东西!
看一个经典的例子,字符串替换:
稍微有点Javascript常识的便会想到正则表达式:
何必拷贝这一堆的代码给老板看呢?开发中确实有很多时候,直接拷贝代码既能立竿见影地完成功能,又不会影响原有功能。但这样的代码多起来之后,万一功能调整你便需要重新debug所有的副本。花一些时间学习更优雅的用法是值得的。
保持函数的短小,使你的代码更加易读,例如:
将复杂的逻辑分步骤完成。如果写在一起将会是这样的:
相信我,一旦你写了这样的函数,它会随着时间的推移变得越来越长,直到有一天,你也忘了其中的一段代码到底是做什么的。
事实上,复杂的函数不仅可以按照步骤划分,更应按照层次来细化。不要在一个函数中进行不同层次的操作,否则它会变得非常难懂。
文章来源:猿份
编辑 | 神经码
图片源于网络,版权归原作者所
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 习近平拉美之行的三个“一” 7938602
- 2 山里藏价值6000亿元黄金?村民发声 7973799
- 3 微信或史诗级“瘦身” 内存有救了 7853964
- 4 中国主张成为G20峰会的一抹亮色 7700372
- 5 朝鲜将军队提升至战斗准备状态 7667564
- 6 广东潮汕现“关门潮”?社区回应 7560900
- 7 女教师被指出轨学生 校方通报 7432401
- 8 美元创下一年来最长连涨纪录 7378028
- 9 带96岁母亲酒店养老遭拉黑 男子发声 7224786
- 10 千年古镇“因网而变、因数而兴” 7126008