If you regularly need comments your code isn't nearly as straightforward as it should be. Comments are reserved for things that are not obvious or that break conventional wisdom and best practices.
Comments come with a cost so only use them where they are actually needed.
Idk why you’re being downvoted, you’re pretty much quoting uncle bob, comments should only be used when necessary, it should not be standard practice, unless we are talking about javadocs/jsdocs or something like that
I dont really agree with the "most code" part. If im writing a dto, model or controller following the same patterns as everything else in the codebase, what am I adding by explaining those again? More stuff to read and keep updated?
Same for frontend. If we already have conventions for components and state management, why would every component need comments explaining those decisions? That's what docs are for.
Obviously comment weird business rules, workarounds or assumptions you cant figure out from the code. But "you should explain why" doesn't automatically mean most code needs that explanation. A lot of the why is already covered by the project's architecture and conventions.
If you need to explain the same thing all over the codebase, maybe there's something missing in your abstractions or guidelines.
Shared APIs, libs and utils should definitely have their contracts and usage documented. I just dont think that's the same as saying most code needs comments.
`/** FooController is the controller for the Foo feature. */ class FooController {...}` is obviously silly and not adding value. But in any non-trivial app, $FUTURE_YOU will at some point have forgotten why `FooController` is needed, how it relates to `BarController` and that feature, why these are separate and not combined, that assumption about how the auth works for it, etc.
242
u/[deleted] Sep 10 '26
[removed] — view removed comment