• 代码质量的几点新思考


      1、将代码合理的分块。HotSpot,即Hot Spot,“热点”。顾名思义,同其他java虚拟机相比,其最特色的强大功能就是热点代码探测技术。

            什么是热点代码探测?人体热成像知道吧,比如心脏在人体热成像的位置中属于热的地方之一;一个项目里的代码也是一样,不同位置的代码执行频率不一样,执行频率高的就是“热点”。当HotSpot虚拟机探测出热点代码后,会对之进行再编译,再编译会大幅度地提升代码的性能。

           究竟是在多久的时间内达到多少次才算是被再编译的“热点”代码,这个有机会咱仔细测测看。

           在写代码时,特别注意的是,在一个方法中,如果不同部分的代码段执行次数差异很大,这时候最好进行合理的代码分块——一个方法分成多个方法。例如,原来的代码中有普通代码和循环代码块,当循环执行的次数为N时,那么这个方法中的代码执行热度比为,普通代码:循环代码 = 1:N。如果你不对代码进行合理的拆分,HotSpot虚拟机会按照普通代码的执行频数来对待循环代码。这个时候代码性能显然是有提升空间的。笔者在一次Lucene搜索的时候,代码中的循环次数高达10万次,不合理拆分和合理拆分的执行时间比超过了10:1,也就是说代码拆分合理的话,性能提升了几十倍。

            2、明确业务主干、简化分支——方法调用主链,尽量细而不要太粗。如果业务主干不清晰,代码的可读性、可维护性就会很差。实现某项业务的时候,我们最好有一个基本的模型在脑海中,或者说要遵守业务主干明确、分支简化的原则。常常遇到这样的代码,围绕主干衍生出的分支代码嵌套较深,这就违背了分支简化的原则,同样会使代码可维护性大打折扣。

            3、面相对象的思想。面向对象的思想,在代码中有两种体现维度,第一种就是编程语言里的面向对象思想,第二种就是代码顺序及空行的使用,我这里就是强调第二种。例如,如果有一个pojo,它是一个复合对象,现有一大段set操作,那么这段set操作最好按照复合对象所包含的子对象依次写出,而不是子对象的set操作交替执行。一段代码完成某项基本操作的时候,最好进行一次换行,做好注释。

  • 相关阅读:
    ASPNET下的路径辅助类
    分析函数计算起始,结束日期.
    Debugging SQL Server 2005 Stored Procedures in Visual Studio
    Storing Binary Files Directly in the Database Using ASP.NET 2.0
    Fw:Managing View State in ASP.NET 4 Using the New ViewStateMode Property
    Using ASP.NET 3.5's ListView and DataPager Controls: Displaying Data with the ListView
    Passing Information Between Content and Master Pages .
    转:Querying a Hierarchical ParentChild Structure in LINQ
    续上篇:比较彻底的清除"代理木马下载器"的方法
    面向过程和面向对象--从C到C#
  • 原文地址:https://www.cnblogs.com/InformationGod/p/9256716.html
Copyright © 2020-2023  润新知