java代码怎么读_如何提⾼Java代码可读性?
可读性强的代码,不仅能让团队成员清晰了解代码意图;⽽且⾯对频繁变更的需求,也是维护代码的基础。然⽽在实践中怎样才能逐渐增强
代码的可读性呢?以下⼏点⼼得可供参考。
避免巨复杂的表达式
将复杂表达式按照与、或、⾮逻辑进⾏拆分,并以合理的变量名对逻辑单元进⾏注释(以变量名代替注释)。
例如:
if(("csv".equals(ing(dexOf(".")+1)))||
("json".equals(ing(dexOf(".")+1))){
//..
}el{
//..
}
改写成如下:
booleanisCsv="csv".equals(ing(dexOf(".")+1);
booleanisJson="json".equals(ing(dexOf(".")+1);
if(isCsv||isJson){
//..
}el{
//..
}
避免⼜臭⼜长的⽅法
按照⼀个⽅法只做⼀件事原则,将⼤功能抽象拆分成⼩功能,在本⽅法中只关注⼩功能之间的关系,并递归处理⼩功能。
例如:将⼤象装进冰箱,可以抽象成三个步骤:打开冰箱门、放⼊⼤象、关上冰箱门,即三个⽅法。⽽不是把所有的代码都写到⼀个上层⽅
法中。
避免超⼤的类
超⼤类表现在类的成员变量越来越多、类的⽅法越来越多,即该类承担的责任越来越⼤。这个时候就要考虑将⼀些⾮本类核⼼功能的⽅法抽
离出去,或者是将该类的功能合理拆分,并分别由⼏个⼩类来实现。
例如:Spark框架中SparkContext是⽤户的编程⼊⼝,也是框架执⾏的⼤管家,需要管理DAG划分、Task执⾏、RPC调⽤、UI等等。这
⾥的每⼀部分在分布式框架中都极其复杂,如果实现细节都写在SparkContext中,那么该类将变得极其臃肿形成⼀个超⼤类难以维护,因
此Spark框架分别将上述功能在DAGScheduler、RpcEndpointRef、TaskScheduleSparkUI等类中单独实现,并维护⼏个实例。
避免过重的模块
与类拆分思路相似,当⼯程过于复杂后将其拆分成不同模块。
避免魔幻值
代码中每⼀个变量、常量、函数等都需要⼀个能够准确表达其含义的名称,这样才能让⼈理解。⼀个代表特定含义的值却没有对应的说明,
不免让⼈费解。⽐如,if(type==1){//..}el{//..},这⾥的1其实代表了⼀个特定的类别,如性别中的男,读代码的⼈却只能猜。解决此
类问题,可以使⽤静态常量或枚举类型,通过名称对其含义进⾏准确地说明。
避免参数列表过长
将多个参数封装成对象,即将⼏个特定的参数封装成⼀个有意义的对象参数中。
例如:时间参数from和to,可以封装成⼀个range对象参数,其中包含from和to两个成员变量。
精准的命名
准确的命名,既可以表达其含义,⼜能够揭⽰其内在联系
例如:时间参数from和to,不仅见名知义,⽽且隐含from在to之前的关系(边界检查)
本文发布于:2022-12-04 02:00:59,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/48149.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |