<i>&quot;Code tells you how (or what), comments tell you why&quot;</i><p>No matter how meaningful function and variable names are, I&#x27;ll still take commented code over non-commented code any day, but the rule for good comments is to commend <i>why</i> the code is doing what its doing, not what its doing.<p>I&#x27;ve worked with enough complex code in my time that I now heavily comment my code and really appreciate well commented code. But, again, don&#x27;t tell me what the code is doing (provided the code is clear and reasonably named), instead tell me why its doing what its doing.<p>I suppose the key is not to use comments to offset bad code, but rather use comments to augment already good code. That is, write good code first, then good comments.