所以,我正在编码,我基本上得到了这行代码
返回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;
我不知道如何搜索这个,所以如果有什么事情我就道歉。
答案 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)
我不关心教授或雇主会怎么想。除非真的很长,否则我总是将这些简单的陈述内联,因为它们更容易理解和清晰。
我认为当你把它分解时看起来会更复杂。而且我讨厌无用的分配和平等的标志。当我做一些非常复杂的事情时,我只会断言,而且将来需要对其他人和我的评论。
在您的示例中,所有语句都非常简单明了。他们都不需要对普通开发人员进行评论或解释。