代码质量的几点新思考
Posted informationgod
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码质量的几点新思考相关的知识,希望对你有一定的参考价值。
1、将代码合理的分块。HotSpot,即Hot Spot,“热点”。顾名思义,同其他java虚拟机相比,其最特色的强大功能就是热点代码探测技术。
什么是热点代码探测?人体热成像知道吧,比如心脏在人体热成像的位置中属于热的地方之一;一个项目里的代码也是一样,不同位置的代码执行频率不一样,执行频率高的就是“热点”。当HotSpot虚拟机探测出热点代码后,会对之进行再编译,再编译会大幅度地提升代码的性能。
究竟是在多久的时间内达到多少次才算是被再编译的“热点”代码,这个有机会咱仔细测测看。
在写代码时,特别注意的是,在一个方法中,如果不同部分的代码段执行次数差异很大,这时候最好进行合理的代码分块——一个方法分成多个方法。例如,原来的代码中有普通代码和循环代码块,当循环执行的次数为N时,那么这个方法中的代码执行热度比为,普通代码:循环代码 = 1:N。如果你不对代码进行合理的拆分,HotSpot虚拟机会按照普通代码的执行频数来对待循环代码。这个时候代码性能显然是有提升空间的。笔者在一次Lucene搜索的时候,代码中的循环次数高达10万次,不合理拆分和合理拆分的执行时间比超过了10:1,也就是说代码拆分合理的话,性能提升了几十倍。
2、明确业务主干、简化分支——方法调用主链,尽量细而不要太粗。如果业务主干不清晰,代码的可读性、可维护性就会很差。实现某项业务的时候,我们最好有一个基本的模型在脑海中,或者说要遵守业务主干明确、分支简化的原则。常常遇到这样的代码,围绕主干衍生出的分支代码嵌套较深,这就违背了分支简化的原则,同样会使代码可维护性大打折扣。
3、面相对象的思想。面向对象的思想,在代码中有两种体现维度,第一种就是编程语言里的面向对象思想,第二种就是代码顺序及空行的使用,我这里就是强调第二种。例如,如果有一个pojo,它是一个复合对象,现有一大段set操作,那么这段set操作最好按照复合对象所包含的子对象依次写出,而不是子对象的set操作交替执行。一段代码完成某项基本操作的时候,最好进行一次换行,做好注释。
以上是关于代码质量的几点新思考的主要内容,如果未能解决你的问题,请参考以下文章