在Java中选择方法/参数名称
我应该如何选择在Java(或任何其他语言)中使用哪些方法名和参数名/类型?为什么有这么多的选择方式 如果有很多人在一个项目中工作,在代码的不同部分看到不同的命名方式是很烦人的,尤其是当人们对它们的用法不一致时。为什么语言的发明者不简单地声明一个标准——“这就是方法和参数命名的确切方式。句号。” 这样做编程就容易多了。每次我写一个方法时,我不得不在无数不同的参数/方法名称之间进行选择,并试图通过代码对我的选择进行总结,这让我感到压力在Java中选择方法/参数名称,java,naming-conventions,Java,Naming Conventions,我应该如何选择在Java(或任何其他语言)中使用哪些方法名和参数名/类型?为什么有这么多的选择方式 如果有很多人在一个项目中工作,在代码的不同部分看到不同的命名方式是很烦人的,尤其是当人们对它们的用法不一致时。为什么语言的发明者不简单地声明一个标准——“这就是方法和参数命名的确切方式。句号。” 这样做编程就容易多了。每次我写一个方法时,我不得不在无数不同的参数/方法名称之间进行选择,并试图通过代码对我的选择进行总结,这让我感到压力 例1: public void handleFile(Stri
例1:
public void handleFile(String file)
public void handleFile(String fileName)
public void handleFile(File file)
例2:
public void exec(String command)
public void exec(String cmd)
public void exec(String commandString)
public void exec(String cmdString)
public void execute(String command)
public void execute(Command command)
public void execute(Command cmdObj)
等等等等。如果你与一群人一起工作,那么建立一个编码标准可能是值得的。用谷歌搜索这个短语,你会发现一些例子。如果你与一群人一起工作,建立一个编码标准可能是值得的。用谷歌搜索这个短语,你会发现一些例子。参数名是对使用它的开发人员的一个提示,告诉他们应该传递什么。它们应该尽可能清晰,而不是不必要的冗长
我建议您做您认为更清楚的事情。参数名称是对使用它的开发人员的提示,提示应该传递什么。它们应该尽可能清晰,而不是不必要的冗长
我建议你做你认为更清楚的事。问题是——没关系。方法名更重要,参数名应该简单地描述参数。试图强制执行有关姓名的规则将很难——你无法为此制定足够的规则
另一方面,参数类型很重要-您应该选择最具体的参数类型。如果只需要一个文件名,则传递一个字符串。如果你需要知道你是否能阅读一个文件,传递
文件问题是-这不重要。方法名更重要,参数名应该简单地描述参数。试图强制执行有关姓名的规则将很难——你无法为此制定足够的规则
另一方面,参数类型很重要-您应该选择最具体的参数类型。如果只需要一个文件名,则传递一个字符串。如果你需要知道你是否能阅读一个文件,那么传递文件好吧,传统上人们被限制在屏幕上可以容纳的字符数量上,所以短变量名称是首选
现在有了大屏幕、自动换行和自动完成功能,你可以随意命名
这完全取决于您的团队如何决定最佳方式,您应该强制执行一个大家都同意的编码标准
就我个人而言,我试图命名变量以准确描述它们所持有的内容,因此它持有一个TableViewController
,我将其称为TableViewController
,这样,当我在一天、几周内再次查看代码时,就很清楚了。。。使用TableViewController
而无需再次检查的时间。如果我调用变量tvc
the或其他缩写,你可能会想,我的代码的意图可能不太清楚。传统上,人们被限制在屏幕上可以容纳的字符数量上,因此首选缩写变量名称
现在有了大屏幕、自动换行和自动完成功能,你可以随意命名
这完全取决于您的团队如何决定最佳方式,您应该强制执行一个大家都同意的编码标准
就我个人而言,我试图命名变量以准确描述它们所持有的内容,因此它持有一个TableViewController
,我将其称为TableViewController
,这样,当我在一天、几周内再次查看代码时,就很清楚了。。。使用TableViewController
而无需再次检查的时间。如果我调用变量tvc
the或其他缩写,您可能会想,我的代码的意图可能不太清楚。通常,第一个选择是以下参数类的名称:
除非字符串/原语或装箱时,您赋予其含义并通常删除类型:
void someMethod(String filename) // note filename is so common, it's rarely "fileName"
但有时它只是“一根弦”——这里有一些常见的选择
void trim(String aString)
void trim(String string)
void trim(String s)
无论是什么样式,您的团队都应该同意命名约定并使用它。通常,第一个选择是参数类的名称:
除非字符串/原语或装箱时,您赋予其含义并通常删除类型:
void someMethod(String filename) // note filename is so common, it's rarely "fileName"
但有时它只是“一根弦”——这里有一些常见的选择
void trim(String aString)
void trim(String string)
void trim(String s)
无论是何种风格,您的团队都应该同意并使用命名约定。事实上,Java语言存在命名约定:请参阅
像变量一样,参数应该用camelCase编写,除了众所周知的首字母缩略词(URL、HTTP等)外,一般不应该缩写,最重要的是,应该描述参数的作用,而不是其类型。它的类型是knwon:它写在参数之前
所以我更喜欢
void copy(SomeClass source, SomeClass destination)
到
关于你的例子,以下是我愿意接受的例子:
public void handleFile(String fileName)
public void handleFile(File file)
两者都可以接受,因为第一个处理名称,第二个处理文件
public void execute(String command)
public void execute(Command command)
事实上,Java语言存在命名约定:参见
像变量一样,参数应该用camelCase编写,除了众所周知的首字母缩略词(URL、HTTP等)外,一般不应该缩写,最重要的是,应该描述参数的作用,而不是其类型。它的类型是knwon:它写在参数之前
所以我更喜欢
void copy(SomeClass source, SomeClass destination)
到
关于你的例子,以下是我愿意接受的例子:
public void handleFile(String fileName)
public void handleFile(File file)
两者都是可以接受的,因为第一个处理名称,第二个处理名称