这涉及到两方面,一是代码质量,二是读者水平。
如果代码质量很差,随心所欲,没有规划,变量和函数想到什么就写什么,起名又不知所云,冗余部分占比很高,就很难阅读。更有一些代码,抽象得很,例如算法优化,优化部分在代码之外,代码就是优化之后的体现,又没有任何注释,goto遍地都是,真的很令人头疼。
如果代码质量还行,也有相应的注释。阅读起来也不一定能很顺畅,因为也许读者不清楚需求已经实现需求所用的思想,也许读者不了解全局,也许读者不能彻底明白作者的思路,所以阅读起来就不太顺畅。
如果读者的水平低于写者,通常也很难阅读写者的代码。因为代码体现的是作者的思路、经验、认知、见识等各方面的能力和水平。也许你看不懂的代码,其实是好代码,是能够历经岁月的洗礼,甚至曾经拿过部门或者公司奖励的代码。
如果读者和写者是同一个人,通常来讲,阅读是没有什么障碍的,除非那些代码有做特殊处理的,例如看起来不好理解,但实际上就只能这样才奏效,也许当初工期很赶,没有充分论证,但是就这么Try一下,就跑通了,也就这样了。
要想代码的阅读性高,可理解度高,最好的办法是:详写必要的注释且使用常规的方法。常规的方法,不是指按照你自己想的规范或者习惯来写,是遵循公司或者部门的代码规范,如果公司或者部门不做要求,那么就参考行业大牛的风格,可以通过开源代码来参考。
很多程序员抱着这样的态度,我写代码是给机器看的,不是给人看的,所以我想怎么写就怎么写。这种想法和做法其实很幼稚,根本没有考虑到代码的传承,根本没有考虑到团队的代码协作,根本没有考虑到将来可能会有那么一天,需要修改甚至是重构代码。
所以代码审查,是很有必要的。团队中每个人写的代码,都需要由组内同事甚至是部门同事评审,对于冗余的,不合规范的代码,坚决不准更新。其实只要坚持一段时间,例如一年半载的,大家的代码就都会规范起来的。