是否值得创建一个自定义注解来表明一个方法只是为了提高可读性?
Is it worth while creating a custom annotation to show that a method is simply helping readability?
目前正在使用 Spring,我一直在学习可以用来提高代码可读性的方法,其中一个示例是用易于理解的方法调用替换复杂的条件。例如:
private void myMethod(){
//Bad
if(userAge < MIN_AGE){
//logic
}
//Good
if(userTooYoung()){
//logic
}
}
private boolean userTooYoung(){
return userAge < MIN_AGE;
}
我的问题是:创建自定义注释以显示 userTooYoung 只是为了提高可读性是否值得?例如:
@Assistant
private boolean userTooYoung(){
return userAge < MIN_AGE;
}
我真的想不出 @Assistant 注释可以提供的另一个功能,因此,它回避了一个问题:它真的值得吗?
编辑:
我一直在研究 @Assistant 注释的想法,并提出以下建议:
定义:
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.METHOD)
public @interface Assistant {
enum With {
CONDITIONAL_LOGIC, CONSTRUCTION_LOGIC
}
With help() default With.CONDITIONAL_LOGIC;
}
用法:
@Assistant(help = Assistant.With.CONDITIONAL_LOGIC)
你是在征求意见。在某种程度上,我同意 tsolakp;名称含糊的注解过多 会降低 可读性。同时,如果您需要在多个地方标记您所做的事情并且您正在做的事情并不明显,则仅用于提高可读性的自定义注释确实有意义。例如,Google Guava 提供了@VisibleForTesting 注解。当应该将私有方法设置为默认范围以便可以对其进行单元测试时使用它。当客户需要彻底的单元测试时,我会经常使用它。
就你的情况而言,它并没有增加任何清晰度,而且名称也不是很有意义。
tl;dr不是所有你能做的都应该做
我绝对不认为这样做值得,老实说你不应该这样做:
- 从干净代码的角度来看,您会在没有任何附加信息的情况下添加更多混乱。
- 这里的评论有什么不同,你会写评论吗?否
- 大多数私有方法只是为了提高可读性,这很好。为什么需要以显式方式添加此隐式信息?
目前正在使用 Spring,我一直在学习可以用来提高代码可读性的方法,其中一个示例是用易于理解的方法调用替换复杂的条件。例如:
private void myMethod(){
//Bad
if(userAge < MIN_AGE){
//logic
}
//Good
if(userTooYoung()){
//logic
}
}
private boolean userTooYoung(){
return userAge < MIN_AGE;
}
我的问题是:创建自定义注释以显示 userTooYoung 只是为了提高可读性是否值得?例如:
@Assistant
private boolean userTooYoung(){
return userAge < MIN_AGE;
}
我真的想不出 @Assistant 注释可以提供的另一个功能,因此,它回避了一个问题:它真的值得吗?
编辑: 我一直在研究 @Assistant 注释的想法,并提出以下建议:
定义:
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.METHOD)
public @interface Assistant {
enum With {
CONDITIONAL_LOGIC, CONSTRUCTION_LOGIC
}
With help() default With.CONDITIONAL_LOGIC;
}
用法:
@Assistant(help = Assistant.With.CONDITIONAL_LOGIC)
你是在征求意见。在某种程度上,我同意 tsolakp;名称含糊的注解过多 会降低 可读性。同时,如果您需要在多个地方标记您所做的事情并且您正在做的事情并不明显,则仅用于提高可读性的自定义注释确实有意义。例如,Google Guava 提供了@VisibleForTesting 注解。当应该将私有方法设置为默认范围以便可以对其进行单元测试时使用它。当客户需要彻底的单元测试时,我会经常使用它。
就你的情况而言,它并没有增加任何清晰度,而且名称也不是很有意义。
tl;dr不是所有你能做的都应该做
我绝对不认为这样做值得,老实说你不应该这样做:
- 从干净代码的角度来看,您会在没有任何附加信息的情况下添加更多混乱。
- 这里的评论有什么不同,你会写评论吗?否
- 大多数私有方法只是为了提高可读性,这很好。为什么需要以显式方式添加此隐式信息?