是否有一种在编程中进行函数/方法调用的正确方法

时间:2012-12-13 18:27:26

标签: coding-style

所以,我正在编码,我基本上得到了这行代码

  

返回parseInt(trim(elem.value.substring(1,elem.value.length)))

我在想,这是正确的还是教授/雇主会因为允许这样的代码而抨击我。

我觉得,虽然整洁,但很难理解乍一看我做的废话是什么。这个不是那么糟糕b / c大多数调用都很常见(确保它是一个int,修剪字符串以便转换工作并从字符串的开头删除不必要的信息)

但是,这可以吗?或者我应该将其细分并评论每一行,以便更容易理解未来的程序员? 像...

var returnInt;
returnInt = elem.value.substring(1, elem.value.length); //remove $ symbol
returnInt = trim(returnInt); //trim whitespace
returnInt = parseInt(returnInt); //convert to int
return returnInt;

我不知道如何搜索这个,所以如果有什么事情我就道歉。

3 个答案:

答案 0 :(得分:1)

第一种格式很好,除了它可以使像NullPointerExceptions这样的运行时异常难以调试(因为堆栈跟踪返回一个行号,并且它可以在一行上有多个东西)。因此,如果NPE可以发生,请将其写成多行。

并且没有必要在每行结束评论。很明显,除了最新手的程序员之外,修剪和解析对任何人都有什么作用,而简单的谷歌搜索无论如何都会转向它。

答案 1 :(得分:1)

只要您很好地格式化代码就可以了。例如你的行可能看起来像:

return parseInt(
         trim(
           elem.value.substring(1, elem.value.length)))

报价:

  

或者我应该将其分解并评论每一行,以便更容易理解未来的程序员?像...

var returnInt;
returnInt = elem.value.substring(1, elem.value.length); //remove $ symbol
returnInt = trim(returnInt); //trim whitespace
returnInt = parseInt(returnInt); //convert to int
return returnInt;

这并不容易。过度的可变性是邪恶的;如果你的值有不同的类型,这将不起作用。 (糟糕,您可能正在使用动态类型语言,但是var returnInt的名称会产生误导,因为在某些程序状态下确实不是Int)。请不要写这样的代码。

答案 2 :(得分:0)

我不关心教授或雇主会怎么想。除非真的很长,否则我总是将这些简单的陈述内联,因为它们更容易理解和清晰。

我认为当你把它分解时看起来会更复杂。而且我讨厌无用的分配和平等的标志。当我做一些非常复杂的事情时,我只会断言,而且将来需要对其他人和我的评论。

在您的示例中,所有语句都非常简单明了。他们都不需要对普通开发人员进行评论或解释。

相关问题