Just for the record I think face to face code reviews (or pair programming) is a much better idea than sending off a code review with an electronic tool and get some feedback back. But reality is that most teams use a tool where the reviewer and reviewee doesn’t necessary talk to each other, just exchange comments. A problem with all code reviews is; how do you know if the reviewer understands the code? A good reviewer always asks and asking is easier done face to face. But what if the reviewer thinks they understand but it is wrong? To handle this I learned a neat little trick from a colleague; as a reviewer you should always write a comment explaining what you think the code/change is supposed to do. Just one high level comment with a few sentences is enough.