Bitcoin

Code Smell 05 – Comment Abusers

The code has lots of comments. Comments are coupled to implementation and hardly maintained.

TL;DR: Leave comments just for important design decisions. Don’t explain the obvious.

Problems πŸ˜”

  • Maintainability
  • Obsolete Documentation
  • Readability
  • Duplication between code and comments

Solutions πŸ˜ƒ

  1. Refactor methods.
  2. Rename methods with more declarative names.
  3. Break down large methods.
  4. If a comment describes what a method does, name the method with this description.
  5. Just comment on important design decisions.

https://hackernoon.com/what-exactly-is-a-name-the-quest-part-i-fmw3udc?embedable=true

Refactorings βš™οΈ

https://hackernoon.com/improving-the-code-one-line-at-a-time?embedable=true

https://maximilianocontieri.com/refactoring-011-replace-comments-with-tests?embedable=true

https://hackernoon.com/improving-the-code-one-line-at-a-time?embedable=true

Examples

  • Libraries
  • Class Comments
  • Method Comments

Context πŸ’¬

You write comments when you feel your code does not speak for itself.

\
Most of the time, you add noise instead of clarity.

\
Later, those comments lie when you change the code but forget to update the explanation.

\
Instead of helping, they hurt.

Sample Code πŸ“–

Wrong 🚫

<?

final class ChatBotConnectionHelper {
    // ChatBotConnectionHelper is used
    // to create connection strings to Bot Platform
    // Use this class with getString() function
    // to get connection string to platform

    function getString() {
        // Get Connection String from Chatbot
    }
}
<?

final class ChatBotConnectionSequenceGenerator {

    function connectionSequence() {
    }
}

Detection πŸ”

  • [x] Semi-Automatic

Linters can detect comments and check the ratio of comments to lines of code against a predefined threshold.

Tags 🏷️

  • Comments

Level πŸ”‹

  • [x] Beginner

Why the Bijection Is Important πŸ—ΊοΈ

Your software should reflect the domain with no translators in between.

\
When you use comments as crutches, you break the one-to-one mapping between the real-world concept and its code representation.

\
This mismatch creates confusion and bugs.

AI Generation πŸ€–

AI tools often generate comments to explain code in natural language.

\
This can pollute your source when the code already speaks for itself.

AI Detection 🧲

AI tools can easily remove redundant comments and suggest clearer names.

\
You only need to instruct them to “remove obvious comments and refactor for clarity.”

Try Them! πŸ› 

Remember: AI Assistants make lots of mistakes

Suggested Prompt: Convert it to more declarative

| Without Proper Instructions | With Specific Instructions |
|—-|—-|
| ChatGPT | ChatGPT |
| Claude | Claude |
| Perplexity | Perplexity |
| Copilot | Copilot |
| You | You |
| Gemini | Gemini |
| DeepSeek | DeepSeek |
| Meta AI | Meta AI |
| Grok | Grok |
| Qwen | Qwen |

Conclusion 🏁

Leave comments just for important design decisions. Don’t comment on a method with a bad name; rename it.

Relations πŸ‘©β€β€οΈβ€πŸ’‹β€πŸ‘¨

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xv

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xii

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxxiv

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxxi

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxxvii

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxx

More Information πŸ“•

https://refactoring.guru/es/smells/comments?embedable=true

https://hackernoon.com/what-exactly-is-a-name-the-quest-part-i-fmw3udc?embedable=true

https://dev.to/alexbunardzic/code-comments-are-a-sign-that-something-s-off-19e1?embedable=true

https://arter.dev/how-to-comment-your-code-like-a-boss?embedable=true

Credits

Photo by Volodymyr Hryshchenko on Unsplash


If you have to spend effort looking at a fragment of code and figuring out what it’s doing, then you should extract it into a function and name the function after the what.

Martin Fowler

https://hackernoon.com/400-thought-provoking-software-engineering-quotes?embedable=true


This article is part of the CodeSmell Series.

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-i-xqz3evd?embedable=true

\

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button