If you need comments to explain your code, it’s not great code.
Great code it’s readable by itself. Comments aren’t necessary, and in fact can be a bad thing. They are a crutch for explaining bad code… AND they have to be maintained separately from the code. Comments will lie to you, when details or requirements change and the code is updated, but the comments aren’t.
Example
Comment-dependent by bad code
Same functionality without comments