I follow these simple rules and encourage my colleagues to do so
-
If I’m just shuffling jsons, then yes, the code should be self documented. If it’s not, the code should be rewritten.
-
If I implement some complex logic or algorithm, then the documentation should be written both to tests and in the code. Tests should be as dull as possible.
-
If I write multithreading, the start, interruption, end, and shared variables should be clearly indicated by all means that I have: comment, documentation, code clearness. Tests should be repeated and waits should not be over 50ms.