There's a linter which I like[1] that checks variable name length based on the scope of its usage.
The idea is a variable name can be short if it is used in a small lexical scope (e.g. a function parameter in a one-line function) because it won't affect readability much. But names should be descriptive if used in a larger scope (e.g. a constant used across a file).
For example, lets look at "string". Most examples are gonna just call it a "str" or even "s". But if what you have is someone's name you should get called out for calling it a "str" rather than "name".
You shouldn't name all your mathy variables x, y, i, j.
You shouldn't name your channels "chan" or "c". Unless its just generic channel code.
I don't mind short domain variable names. But "chan" isn't that. It's like calling all your ints "num" or all your strings "str".