前言:
先说说这张图,很多codereview的场合都会发生的情况,遇到一个错误的写法就开始说这个问题多低级,多么不符合一个高级开发应该写出来的等等。一场真正有意义的codereview应该是有目标的,比如说我们的目的是什么?发现了哪些问题?这些问题哪些是规范原则不应该出现的。哪些是我们应该学习的。对于这次codereviewer我们学会了哪些东西。最后再给出一个总结,以及复盘的解决处理文档。
CodeReview要有自己的素养,永远的对事不对人。
1、你认为CodeReview 对代码质量的作用体现在哪些方面?
第一、代码规范:对于开发者来说,这个是最基本的要求,比如说命名规范,注释规范、日志打印、异常处理等等,一定要按照规范来进行编写,具体的规范可以参考阿里巴巴的开发规范文档,该文档里面有详细的介绍;只要符合规范即可,写一段机器能够识别的代码很容易,也区分不出来一个工程师是否优秀。只有写一段别人能够看懂的代码才是一个优秀的工程师应该做的。也是一个企业真正需要的人。
第二、架构设计:这个对于初级开发者来说要求比较高了,比如说扩展性的问题,对于一个功能来说就相当考验工程师的能力了。但是一个大企业来说,大部分都是进行拧螺丝的,只要根据现有的项目进行开发即可。比如说的分层的问题,dao\imp\service\common等进行拆分即可。
第三、性能问题:这个主要是考验对于一些问题应该避免即可,比如说循环内进行连接数据库的问题。缓存的使用问题,该问题是说有些地方不能进行使用缓存,就像一本书上面说的那样,手上只有一把锤子的时候,看什么问题都像钉子。
第四、安全问题:比如说SQL的注入问题,比如说一些敏感数据的加密接口等等。尽量保证接口请求到的接口都是经过登录校验的才行。该问题对于很多企业来说越来越重视了。
2、你曾经担任过的角色是 CodeReviewer 还是 被CodeReviewer?谈谈印象深刻的经历或心得体会吧。
刚刚毕业的几年是被CodeReviewer ,心得如下:
第一、学习心态:刚刚开始工作经验不足,肯定会有很多自己注意不到的地方,进行CR的时候的确是一次值得学习的机会。应该多学习,发现自己的不足,所谓的当局者迷旁观者清。
第二、虚心接受:对于被提出的意见应该虚心接受,毕竟别人也是对于代码有着不同的看法。有些看法的确是自己没有想到的。对于这些建议应该虚心接受,不能别人说自己代码不好就发生争执。
第三、代码负责:对于提出的一些严重的问题已经要及时的修改过来,那样才是真正的进步。不能说一场会议开会就是为了提出问题的。而是应该进行提出问题,学习总结,改正不好的代码。提升自己,争取把自己的能力提上去。
最近几年担任CodeReviewer的心得:
第一、心态平和:作为一个裁判一定要心态平和,因为知道作为新人在被CR的时候心态是不一样的。一定要心态平和。记得有人说过,不要伤害一个新人,因为伤害了一个新人之后,这个习惯会被传染。当这个新人成长起来可能也会这样。新人犯错很正常。
第二、对事不对人:对于一段代码的CR,通常不说这段代码是谁写的,只从git上面拉去代码即可。这个进行公正的分析。尽量做到对事不对人,避免发生争吵。
第三、专业耐心:对于提出的问题已经是专业性很强的,不能吹毛求疵。那样只会显示自己的不专业。对待问题一定要有耐心,同理心。CR的初衷不能忘记,为了团队的成长,为了企业企业的发展。
最后:引用作者的话:“良好的CodeReview文化能够推动团队共同成长,希望我们能够在前进的路上坚守住CodeReview的文化内涵,力争将工程实践做到卓越,打造面向未来有竞争力的卓越技术团队。”