作家
登录

没有对比就没有伤害,优秀的代码VS糟糕的代码

作者: 来源: 2017-10-09 13:33:33 阅读 我要评论


可持续开辟不仅在于项目架构设计,还与代码质量密切相干,代码的┞符洁度和质量成正比。—— Robert C. Martin, “Clean Code”

如不雅你还没有发明代码质量的差别,如不雅你大年夜未见过优良的代码,或者大年夜未见过糟糕的代码,那么本文将以直不雅地比较,告诉你代码质量毕竟会有多大年夜的差别。

没有比较就没有伤害,优良的代码VS糟糕的代码

定名是为了让代码加倍轻易浏览,应用规范的术语不仅加倍易懂,同时也是开辟者常识水平和开辟经验的表示。如不雅说以中文拼音定名显得奇怪,那么直接以a, b, c, d定名的便会显得可恨,谁记得你的a是神马器械!

[ 代码量 ]

我们知道代码量显示着功能的复杂程度,例如Windows XP的代码量跨越2000万行,Linux内核有1500万行(2012年)。然而代码量和功能数量之间并非线性关系。

没有比较就没有伤害,优良的代码VS糟糕的代码

优良的设计中,代码量和功能数的关系是如许的:

糟糕的设计中,代码量和功能数的关系是如许的:

没有比较就没有伤害,优良的代码VS糟糕的代码

优良的体系往往会有优良的构造设计:层次清楚、职责单一、模块化,便利扩大或者复竽暌姑。功能的添加往往只是在现有框架中添加少量代码。

然而糟糕的设计中,层次纷乱、互相耦合、难以浏览,艰苦以复竽暌姑又不易扩大。每当被请求添加功能时,不得不几乎完全地实现全部功能的流程,并修复竽暌闺原体系的所有兼容问题。

[ 注释 ]

优良的代铝闼楝注释是如许的:

没有比较就没有伤害,优良的代码VS糟糕的代码

糟糕的代铝闼楝注释是如许的:

没有比较就没有伤害,优良的代码VS糟糕的代码

最愚蠢的法度榜样员都能写出机械能读懂的代码,而优良的法度榜样员能写进出可以读懂的代码。

法度榜样的注释是为了让人读得懂。多半优良的代铝闼楝注释几乎接近代码行数的一半,描述函数功能、解释参数设备、指出陷阱地点。而糟糕的代码中不仅不含这些注释,甚至会保存大年夜量残存代码,可读性差又难以重构。

信赖我,一旦你写了如许的函数,它会跟着时光的推移变得越来越长,直到有一天,你也忘了个中的一段代码到底是做什么的。

[ 定名 ]

优良的代铝闼楝定名是如许的:

没有比较就没有伤害,优良的代码VS糟糕的代码

糟糕的代铝闼楝定名是如许的:

没有比较就没有伤害,优良的代码VS糟糕的代码

看一个经典的例子,字符串调换:

没有比较就没有伤害,优良的代码VS糟糕的代码

稍微有点Java常识的便会想到正则表达式:

何必拷贝这一堆的代码给老板看呢?开辟中确切有很多时刻,直接拷贝代码既能立竿见影地完成功能,又不会影响原有功能。但如许的代码多起来之后,万一功能调剂你便须要从新debug所有的副本。花一些时光进修更优雅的用法是值得的。

[ 函数 ]

保持函数的短小,使你的代码加倍易读,例如:

没有比较就没有伤害,优良的代码VS糟糕的代码

没有比较就没有伤害,优良的代码VS糟糕的代码

将复杂的逻辑分步调完成。如不雅写在一路将会是如许的:

没有比较就没有伤害,优良的代码VS糟糕的代码


  推荐阅读

  神经网络求解新思路:OpenAI用线性网络计算非线性问题

我们展示了深度线性收集(应用浮点运算实现)实际上并不是线性的,它可以履行非线性计算。我们应用这一点应用进化策略在线性收集中寻找参数,使我们可以或许解决重要问题。神经收集平日由一>>>详细阅读


本文标题:没有对比就没有伤害,优秀的代码VS糟糕的代码

地址:http://www.17bianji.com/lsqh/37729.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)