如何将 DRY 原则应用于评论?

How can I apply the DRY principle to commenting?

我有多个函数使用我需要评论的同一行复杂代码。

function thisFunction() {
  [Some Code..]
  // Comment for clarification
  *complex code line*
}

function thatFunction() {
  [Some Code..]
  // Comment for clarification
  *complex code line*
}

function anotherFunction() {
  [Some Code..]
  // Comment for clarification
  *complex code line*
}

我看到的主要问题是必须用完全相同的评论.

多次解释不同的功能相同的复杂代码

这违背了DRY原则。我的问题是,"What would be the best practice to resolve this problem and still let readers understand my code?"

我的总体想法是只评论该复杂行的第一个用法。但是,我不知道这对正在阅读的其他人来说是否 100% 直观。

编辑:为了澄清起见,我在多个函数中使用了一行代码。我不知道我是否应该保留重复的注释,只注释复杂行的第一次使用,或者创建一个每个当前函数都可以使用的辅助函数,即使该辅助函数只包含注释和一个复杂代码线。想法?

将复杂的代码封装成自己的函数,并提供一次注释:

function thisFunction() {
  [Some Code..]
  complexCodeFunction();
}

function thatFunction() {
  [Some Code..]
  complexCodeFunction();
}

function anotherFunction() {
  [Some Code..]
  complexCodeFunction();  
}

//comment for clarification
function complexCodeFunction(){
    *complex code*
}

如果复杂代码的所有行都完全相同,应该可以将它们提取到一个单独的函数中:

function thisFunction() {
  [Some Code..]
  complexOperation();
}

function thatFunction() {
  [Some Code..]
  // Comment for clarification
  complexOperation();
}

function anotherFunction() {
  [Some Code..]
  complexOperation();
}

function complexOperation() {
   //comment for clarification
   *complex code line*
}

如果复杂的代码行不容易提取或代码行在某些关键方面有所不同,我认为重复注释不是问题。 DRY原则主要适用于代码本身,注释是对开发者的澄清,让代码更易懂。如果注释有助于 reader 更好地理解代码,则没有理由避免这种重复。