设计模式 - 编程规范

2022-04-19  本文已影响0人  Zeppelin421

编程规范大部分都简单明了,在代码细节方面,能立竿见影地改善代码质量。持续低层次、小规模重构依赖的基本上都是编码规范,这也是改善代码可读性的有效手段。

命名

命名对于代码的可读性来说非常重要,甚至可以说起决定性作用的。对于影响范围比较大的命名,比如包名、接口、类名,一定要反复斟酌、推敲。

public class User {
    private String userName;
    private String userPassword;
    private String userAvatarUrl;
    //...
}

public void uploadUserAvatarImageToAliyun(String userAvatarImageUri);
//利用上下文简化为:
public void uploadUserAvatarImageToAliyun(String imageUri);

注释

注释跟命名一样也很重要。很多人认为好的命名完全可以替代注释,如果需要注释,那说明命名不够好,这种观点有点太过极端。命名再好,毕竟有长度限制,不可能足够详尽,这时候注释就是一个很好的补充。

/**
 * (what) Bean factory to create beans. 
 * (why) The class likes Spring IOC framework, but is more lightweight. 
 * (how) Create objects from different sources sequentially:
 * user specified object > SPI > configuration > default object.
 */
public class BeansFactory {
    // ...
}

很多人认为“做什么、怎么做”可以在代码中体现出来,所以不要写,其实不然:

  • 注释比代码承载的信息更多
    对于类来说,包含的信息比较多,一个简单的命名不够全面详尽,这个时候在注释中写明“做什么”就合情合理
  • 注释起到总结性作用、文档的作用
    在注释中,关于具体的代码实现思路,我们可以写一些总结性的说明、特殊情况的说明。这样能够让阅读代码的人通过注释就能大概了解代码的实现思路,阅读起来就会更加容易
  • 一些总结性注释能让代码结构更清晰
    对于逻辑比较复杂的代码或者比较长的函数,如果不好提炼、不好拆分成小的函数调用,可以借助总结性的注释来让代码结构更清晰、更有条理

代码风格

在一个团队、项目中保持风格统一,让代码像同一个人写出来的,整齐划一,这才是最好的风格。这样能减少阅读干扰,提高代码的可读性。

编程技巧

public List matchStrings(List strList,String substr) {
    List matchedStrings = new ArrayList<>();
    if (strList != null && substr != null) {
        for (String str : strList) {
            // 跟下面的if语句可以合并在一起 
            if (str != null) { 
                if (str.contains(substr)) { 
                    matchedStrings.add(str); 
                } 
            } 
        } 
    } 
    return matchedStrings;
}
public double CalculateCircularArea(double radius) {
    return (3.1415) * radius * radius;
}
// 常量替代魔法数字
public static final Double PI = 3.1415;
public double CalculateCircularArea(double radius) {
    return PI * radius * radius;
}
if (date.after(SUMMER_START) && date.before(SUMMER_END)) { 
    // ...
}
// 引入解释性变量后逻辑更加清晰
boolean isSummer = date.after(SUMMER_START)&&date.before(SUMMER_END);
if (isSummer) { 
    // ...
}
上一篇 下一篇

猜你喜欢

热点阅读