Hacker News new | ask | show | jobs
by saas_co_de 3124 days ago
> Heavy code commenting is a symptom of bad code.

I used to believe that comments were unnecessary for good code but eventually found this to be false.

Now I do code annotation where every single line of code is commented.

This allows the entire program to be read as plain english which is much faster and less mentally taxing than trying to read code.

1 comments

Sarcasm? Or am I misunderstanding your comment? :) You annotate "every line"?
In most cases yes. I make sure the comments provide a complete plain language description of the program.

Reading english (or whatever your native language is) is much much faster than parsing code.

It's not hard to understand what this.completePurchaseProcess(paymentInfo) does.
Right, it is not about whether or not the code is complex and difficult to understand.

That is the traditional (and bad) commenting advice: that you should add comments to code that is difficult to understand.

The point of commenting everything is to allow the program to be understood entirely from comments, so that when you are maintaining a code base you rarely have to read code, and instead are working with native language.

I would comment your example like this:

  // complete purchase process
  this.completePurchaseProcess(paymentInfo)
When you have "complete purchase process" written out as english words you can process that much more quickly than "this.completePurchaseProcess(paymentInfo)"
How often do you actually read through the code, trying to understand what's happening and you need english language? Once you read an english description - do you still often have to look at the code to understand what is really happening? //complete purchase process - what does that mean? When you look at the method, I see exactly what's being called and with what parameters.
There must be an insane amount of cognitive overload when having to parse through 2x the number of lines because every line of code is accompanied by a line of comment.
Still requires more brain processing then plain English, and if your spending hours parsing code it is taxing and reduces your overall productivity.