I comment on where there is an explanation so that the descriptive name cannot adequately convey. If there is some peculiarity in the library that made me do something that seems non-standard, or value when discarding the inline comment, I will do it, but otherwise I rely on well-named methods and do not comment much, except while I'm writing code, and this is for me. They are deleted when this is done, as a rule.
Generally speaking, function header comments are just a few lines of support and require the reader to look at both the comment and the code, and then decide that this is correct if they do not match. Obviously, truth is always in code. A comment may say X, but comments are not compiled into machine code (usually), so ...
Comment on when necessary, and make it a habit to name things well. This is what I do.
source share