Kommentare sind falsch

Wenn Sie ein Programmierer sind, gibt es viele Praktiken, die Sie hassen können.





Fest codierte Werte. Doppelte Logik. Komplexe Vererbungshierarchien. Aber sollten Kommentare auf dieser Liste stehen?





Vor langer Zeit, in den Tagen der prähistorischen Programmierung, wurde das Schreiben von Kommentaren als obligatorischer Bestandteil des Schreibens von Code angesehen. Als Sie den Code geschrieben haben, war er mit kurzen und präzisen Kommentaren gefüllt. Dann beherrschten sauberer Code und agile Programmierung die Welt. Puristen schrien über die Gefahren von Kommentaren, die unstrukturierten und verletzlichen Code füllten. Plötzlich wurden die Kommentare zu einem Fehler, einem Anti-Muster, einer Sammlung regelrechter Lügen.





Viele Entwickler fühlten sich in die Enge getrieben.





Falsche Wahl
Falsche Wahl

Aber ist die Wahl so offensichtlich? Oder gibt es noch eine Möglichkeit, Kommentare zu schreiben und sich gleichzeitig zu respektieren, indem Sie morgens aufstehen? Um die Antwort herauszufinden, schauen wir uns an, wie schrecklich Code kommentiert wird und wie selbst ein schlechter Kommentar Leben retten kann.





Faule Kommentare

, , .





, , :





double delta = h*h-r1*r1;
double r2 = Math.Sqrt(delta);
      
      



, , . , , , :





// Calculate side length using the Pythagorean Theorem
// and put the value into variable "r2"
double delta = h*h-r1*r1;
double r2 = Math.Sqrt(delta);
      
      



- . .





. , :





double lengthSideB = Math.Sqrt(
  Math.Pow(hypotenuse,2) - Math.Pow(lengthSideA,2);
)
      
      



:





double sideA = Pythagoras.GetLengthOfSide(hyptenuse, sideB);
      
      



? ! - , , . , . , . - - .





. , , , . , - - . , , . , . , . :





/**
  * Constructor.
  * 
  * @param name (required) brand name of the product. Must have
  * content. Length must be in range 1..50. 
  * @param price (optional) purchase price of the product.
  * @param units (required) number of units currently in stock.
  * Can not be less than 0.
*/
public Product(string name, decimal price, integer units)
{
   ...
}
      
      



, , . - , . . , , .





. , . . . . , , - . API. , , . . - , . , API , , , . . , - . , . .





« - » - , .





. , - :





// to match ITG1's late arrows.  -K
GlobalOffsetSeconds=-0.006
      
      



, - , . - , , , , . , , , . . , , , . , - , , , , ? - , , , , , .





, , , , . , , , . , . - , - .





“I spent some time this weekend looking at very well-named, very clean, uncommented code implementing a research algorithm. I’m high-level familiar with it, the guy sitting next to me was the inventor, and the code was written a few years ago by someone else. We could barely follow it.” — Paul Nathan





, , . , , , . . , . , , . .





, . . :





  • ( )





  • ( )





  • ( IDE)





Die Hauptfrage ist einfach. Lohnt es sich, für Kommentare zu bezahlen? Die Meinungen sind unterschiedlich, aber wenn Sie Kommentare nachdenklich und intelligent verwenden - wenn Sie sie verwenden, um die kognitive Belastung Ihres Codes zu verringern, anstatt schlechten Praktiken entgegenzuwirken - können sie selbst dem saubersten Code einen Mehrwert verleihen.












All Articles