2.3.3.优化机能
机能是评价法度榜样员才能的一个重要指标,很多法度榜样员也对法度榜样的机能津津乐道。但法度榜样的机能很难直接经由过程代码看出来,往往要借助于一些机能测试对象,或者在实际情况中履行才能有结不雅。
如不雅仅大年夜代码的角度推敲,有两个评价履行效力的办法:
- 算法的时光复杂度,时光复杂度高的法度榜样运行效力必定会低。
- 单步操作耗时,单步耗时高的操作尽量少做,比如拜访数据库,拜访io等。
而实际工作中,也会见到一些法度榜样员过于热衷优化效力,相对的会带来法度榜样易读性的降低、复杂度进步、或者增长工期等等。对于这类情况,简单的办法是让作者说出这段法度榜样的瓶颈在哪里,为什么会有这个瓶颈,以及优化带来的收益。
当然,无论是优化不足照样优化过度,断定机能指标最好的办法是用数据措辞,而不是纯真看代码,机能测试这部分内容有些超出这篇文┞仿典范围,就不具体展开了。
2.3.4.日记
日记代表了法度榜样在出现问题时排查的难易程度,经(jing)验(chang)丰(cai)富(keng)的法度榜样员大年夜概都邑碰到过这个场景:排盘考题时就少一句日记,查不到某个变量的值不知道是什么,导致逝世活分析不出来问题到底出在哪。
2.3.5.扩大浏览
《Release It!: Design and Deploy Production-Ready Software》(不要看中文版,翻译的实袈溱是太烂了)
Numbers Everyone Should Know
2.4.可保护的代码
相对于前两类代率攀来说,可保护的代码评价标准更模糊一些,因为它要对应的是将来的情况,一般新人很难想象如今的一些做法会对将来造成什么竽暌拱响。不过根据我的经验,一般来说,只要反复的提问两个问题就可以了:
- 他离职了怎么办?
- 他没这么做怎么办?
2.4.1.避免反复
几乎所有法度榜样员都知道要避免拷代码,然则?销码这个现象照样弗成避免的成为了法度榜样可保护性的杀手。
代码反复分为两种:模块内反复和模块间反复。无论何种反复,都在必定程度上说清楚明了法度榜样员的程度有问题,模块内反复的问题更大年夜一些,如不雅在同一个文件里都能出现大年夜片反复的代码,那表示他什么弗成思议的代码都有可能写出来。
对于反复的断定并不须要反复浏览代码,一般来说现代的IDE都供给了检查反复代码的对象,只需点几下鼠标就可以了。
我见过一些新人乡⒚?每行代码前面写一句注释,比如:
看起来似乎很好懂,然则几年之后,这段代码就变成了:
- // 成员列表的长度>0并且<200
- if(memberList.size() > 0 && memberList.size() < 200 || (tmp.isOpen() && flag)) {
- // 返回当前成员列表
- return memberList;
- }
再之后可能会改成如许:
- // edit by axb 2015.07.30
- // 成员列表的长度>0并且<200
- //if(memberList.size() > 0 && memberList.size() < 200 || (tmp.isOpen() && flag)) {
- // 返回当前成员列表
- // return memberList;
- //}
- if(tmp.isOpen() && flag) {
- return memberList;
- }
如不雅在项目中发明好几个器械都在做同一件工作,比如经由过程注释描述代码在做什么,或者依附注释替代版本治理的功能,那么这些代码也不克不及称为好代码。
2.4.2.模块划分
一般来说可以大年夜代码长度上初步评价一个模块划分的是否合理,一个类的长度大年夜于2000行,或者一个函数的长度大年夜于两屏幕都是比较危险的旌旗灯号。
对于日记的评价标准有三个:
- 日记是否足够,所有异常、外部调用都须要有日记,而一条调用链路上的人口、出口和路径关键点上也须要有日记。
- 日记的表达是否清楚,包含是否能读懂,风格是否同一等。这个的评价标准跟代码的可读性一样,不反复了。
- 日记是否包含了足够的信息,这里包含了调用的高低文、外部的返回值,用于萌芽的关键字等,便于分析信息。
另一个可以或许表现模块划分程度的处所是依附。如不雅一个模块依附特别多,甚至出现了轮回依附,那么也可以反竽暌钩出作者对模块的筹划比较差,往后在保护这个工程的时刻很有可能出现牵一发而动全身的情况。
推荐阅读
机器学习研究趋势分析:TensorFlow已超越Caffe成研究最常用框架
还有,在 InceptionNet 之前谁在评论辩论「inception」?对此也很好奇。开打趣地说,如今提交论文的主题是不是应当环绕把全卷积编码器解码器BatchNorm ResNet GAN应用于风格迁徙,用 Adam >>>详细阅读
本文标题:关于烂代码的那些事——什么是好代码
地址:http://www.17bianji.com/lsqh/34700.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示