现在的位置: 首页 -> PHP学习 -> 代码整洁规范

代码整洁规范

2020-04-02 20:50 评论数 0 ⁄ 被浏览 277 views+

一、命名

1、名副其实

int userAge = 18; //看变量名就能知道是做什么的,一目了然,没有歧义。


2、避免误导

避免如使用o和l做变量名,因为看起来像“零”和“壹”。


3、易搜

比如有个变量或字段名为“type”,如果需要在项目中全局搜索,可能会搜到上千个结果。  

解决办法:  

(1) 数字或者短字符串可以用常量代替,如

public final static int SELECT_LIMIT_1000 = 100;
public final static String SWITCH_ON = "on";

查看引用就可以找到所有的入口。

  

(2) 避免使用 type、flag、status类型的命名。  


4、类名和方法名

类名应该是名词或名词短语,不应该是动词,如UserManager;  

方法名应该是动词或动词短语,如postPayment、save。  



二:函数

1、短小

一个函数代码量建议在100行以内。


2、只做一件事

相应的,我们的java接口也应该只做一件事。


3、避免标识参数

如下面代码中的“operation”:

public static function switchPrefix($data, $switchType) {
    if ($switchType == 1) {
        //todo something
    } else {
        //todo something
    }
    return $data;
}

建议拆成2个函数,如:

public static function switchPrefixToOld($data)
{
    //todo something
    return $data;
}

public static function switchPrefixToNew($data)
{
    //todo something
    return $data;
}


4、无副作用

比如校验用户名、密码的函数,里面不应该有写入会话的逻辑等等。本来只是想校验一下用户名是否正确,结果写入登陆会话了。代码如下:

public boolean checkPassword(String userName, String password) {
    User user = UserService.findByName(userName);
    if (user != null && password == user.getPassword) {
        Session.initialize(); // 写入会话
        return true;
    }
    return false;
}


5、分隔指令与询问

函数要么做什么,要么回答什么,不可两者并用。  



三:注释

注释是一种失败。我们总无法找到不用注释就能表达自我的方法,所以总要有注释,这并不值得庆贺。  


注释不一定能同代码与时俱进,会出现维护不当而导致与实际代码不符的情况。因此,想好如何写好注释还不如如何写好代码。  


1、用代码来阐述

如你愿看到这个:  

//Check to see if the employee is eligible for full benefits
if ((employee.flags & HOURLY_FLAG) && employee.age > 65)

还是这个?

if (employee.isEligibleForFullBenefits())


四、格式

1、垂直方向

(1)区块间要有隔开  

(2)相互联系的不要隔开,如2个成员变量是相同的概念  

(3)概相关的代码应该相互靠近,放到一起,相关性越强,彼此之间的距离应该就越短  

(4)变量申明尽可能靠近使用的位置  

(5)相关函数应该放到一起,且调用者尽可能放在被调用者的上面,避免阅读者在源文件中跳来跳去  


2、水平方向

(1)每行代码建议控制在120个字符内(不过个人习惯将代码在一行实现)  

(2)操作符两边加上空格,空格符加强了分隔效果

int num = page * size;

(3)函数多个参数之间加空格

create(String name, int age);


3、缩进

用4个空格,不要用tab。



五、不要让错误处理搞乱逻辑代码

1、使用异常而非返回码


2、异常应记录足够详细的内容


3、别返回null值

返回null值,调用方得加判断,非常冗余和繁琐,如下:

Integer uid = getUid();
if (uid != null) {
    List<String> names = getArticleByUid(uid);
    if (names != null) {
        for (String name : names) {
            System.out.println(name);
        }
    }
}

如果不返回null,代码会更简洁,如下:

Integer uid = getUid();
List<String> names = getArticleByUid(uid);
for (String name : names) {
    System.out.println(name);
}

private List<String> getArticleByUid(Integer uid) {
    if (...) {
        return Collections.emptyList();
    }
}


4、别传递null值



六、类

1、类的组织

类应该从一组变量列表开始(公共静态常量->私有静态变量->私有实体变量)。  

公共函数放到变量列表之后,某个公共函数调用的私有工具函数紧随该公共函数后面(自顶向下原则)。


2、类应该短小

通过计算权责衡量多大合适(函数一般通过代码行数衡量)。  


 

文章出自:https://www.daixiaorui.com/read/284.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。

目前有 0 条评论  @我要评论

您的每一个评论都是对我的一份支持

 博客二维码

昵称 *

邮箱 *