如果代码审查时你忘记了拿近视眼镜

你身处在一个卓越开明的开发团队,你被安排了一整天的时间,什么都不干,只做代码审查。然而,在活动开始两小时前,你发现自己把近视眼镜忘家里了,整个早上你看到的都是模糊的影像和颜色。你该怎么办?

正确的做法是,回家取你的眼镜,因为步行十分钟就能到家,然后今天会跟往常一样愉快的度过。但是,如果说,是你在早上准备离家上班时,发现一群凶猛好斗的大黄蜂在放眼镜的抽屉里筑起了蜂巢,挡住了你拿眼镜的途径,而且它们看起来很不喜欢被打搅。那你怎么办呢?

另一个正确的做法,很显然,是假装你带了隐形眼镜,免得让自己很尴尬。而且你知道自己有不看任何代码细节、只看大概就能说出很多让人钦佩的意见的能力。

代码审查 例一

我们都认可代码责任应该绝对的分离。任何类都应该只做它自己职责范围内的事情。但是,你的这个 UserCreator很可能有点过了。如果这个 UserCreator对象只做这一点事,那其实Users 对象自己就应该创建自己。另外一点不好的是,创建一个简单的Users,你还需要在成堆的小文件中找出它的创建者对象,不宜操作,也不宜理解。

代码审查 例二

看看这些一大堆的方法函数,却伪装成一个类,我可以看到,从技术上讲,这些方法都是在各自做自己的事情。虽然没有任何的文字信息提示或暗示,我也能 猜出你没有很好的给这个类写测试程序。如果给我一杯浓咖啡、一个下午时间,我想我可以分析出中间这20行的代码是用来判断应该给哪个用户发送邮件,但我还 是希望你将这部分代码放到def users_to_send_emails_to函数里,免得我再去动脑子。

代码审查 例三

很好,在这个类里,你的方法都非常的简洁短小,这是一个进步。然而,你做的是有点过了。虽然Ruby解释器并不在意你的代码逻辑在每个只有一行的方 法间来回跳跃,但人脑解释器会在意。也许有人会喜欢上下翻屏看代码,但如果换成我,让我在手臂上记下哪个方法应该调用哪个方法,那我更喜欢将这些小方法组 合到一起。

代码审查 例四

可以看出,你非常关心这个类是否被放在了合适的命名空间里。非常好,使用命名空间是个好事。但在这个文件里,你嵌套了6层。看起来你试图在一个小小 的地方里装下太多的东西。你要么应该想想不要分那么多层(是的,我可以看到这里有两个辅助类,应该放到它们自己的空间里,但如果把它放到其它地方会有不好 吗?),要么拆分一些代码,放到自己的根空间下。

代码审查 例五

非常详细的注释,佩服!这段代码需要好几个章节的文字来辅助理解,佩服!

代码审查 例六

仔细看一下这第二个方法。如果一个方法需要8个参数才能让它知道干什么事情、如何干事情,那么,这个 方法有点太累了。请重构它,从它的肩膀上消减一些负担,拿走一些压力。把它一分为二(或更多),或者,也许将一些参数当成类的初始化参数,可能会更有意义 些。这8个参数你会同时都用到吗?所以,不要期望你的方法这样。

所以,这就是当你忘了拿近视眼镜、或直视太阳太久时做代码审查的方法。如果你有丰富的编程经验,我相信你也能举出很多有趣的例子。有人可能会反对, 说这些只是一些小事情,还有很多更重要的事情需求考虑。然而,清爽、简洁、良好格式的代码是你需要的,如果你不去用心控制好你的代码结构,它终究会给你带 来烦恼。

时间: 2025-01-01 17:29:28

如果代码审查时你忘记了拿近视眼镜的相关文章

代码审查时,发现功能实现的原因,而不仅仅是挑毛病(转)

对于很多公司来说,代码审查是开发人员日常工作中的重要环节.通过代码审查,可以及早发现项目中存在的问题.促进同事之间的沟通与交流,并且可以在讨论中迸发出智慧的火花.但要想成功实施代码审查却并不是一件轻松的事情,为什么要进行代码审查.何时做.如何做,这是摆在我们面前的3个重要问题.针对于这3个问题,开发者Lisa Tjapkes撰文谈到了自己的经验与教训. 在我最近的项目经历中,我们进行了广泛且正式的代码审查.这个过程极大地改进了项目的代码质量,降低了项目中新特性开发的等待时间,同时还促进了知识在整

登录oracle数据库时密码忘记的解决方法_oracle

我们在通过http://localhost:1158/em进行登录oracle时,我们忘记密码时,应该怎么办? 运行sqlplus进入输入密码界面 用户名输入: connect as sysdba 密码:这边乱输就可以了 然后进行输入下面的命令: 修改密码命令 alter user system identified by 新密码; 成功后马上登陆发现登陆不了提示用户名被锁所以从新进入运行下面代码解锁 alter user myuser account unlock;

php开发时容易忘记的一些技术细节_php技巧

在做开发的时候,有可能会忘记掉一些技术细节.这些细节有可能会造成很严重的后果,比如网站被注入.网站崩溃等等.现在我们总结一下,有可能会遇到的一些 PHP 中的一些 "陷阱". 陷阱一:empty() <?php //以下代码会直接导致PHP解析错误 $arr1 = [1, 2, 3]; $arr2 = [3, 4]; if(empty(array_diff($arr1, $arr2))) { //解析错误 echo 'empty'; } else { echo 'not empt

论代码审查的重要性

[编者按]本文作者为 Hugo Giraudel,主要从各个角度论证了代码审查的重要性以及实现方法.文章系国内 ITOM 管理平台 OneAPM 编译呈现.以下为正文. 最近,笔者在Twitter上看到这样一句话: 可悲的是,对于很多学生.自由职业者以及机构来说,代码审查似乎相当陌生. 很明显,代码审查的重要性并不为每个人所熟知.你可以说我很天真,但是笔者确实认为所有的IT公司都离不开该过程.显然实际并非如此,真是让我大吃一惊. 在本文中,笔者想给出关于代码审查的想法,以及为什么我认为这是代码迁

浅谈软件静态测试中的代码审查

摘要:本文描述了软件代码审查的作用.代码审查内容.代码审查过程,并列举一些常见代码审查问题. 关键词:软件测试:代码审查: 一.引言 软件测试常用方法可分为动态测试和静态测试,只有动态测试和静态测试有效结合,才能更好的完成软件测试工作.代码审查是软件静态测试中常用的软件测试方法之一,代码审查时,只要测试人员方法得当.足够细心,往往能够产生意想不到的效果. 二.代码审查的作用 代码审查是在不执行软件的条件下有条理的仔细审查软件代码,从而找出软件缺陷的过程. 代码审查可以找出动态测试难以发现或隔离的

Windows XP中多种方法帮你轻松找回忘记的密码

Windows XP的安全性有了很大提高,它可以让不同的用户拥有自己的桌面和设置,起到保护用户隐私的作用.但是,当企业员工离职又没有公开密码,或用户把自己的密码忘记之后该怎么办呢?下面提供几种办法供大家参考. 巧用密码重设盘 密码重设盘可以在用户忘记密码时恢复用户账户和个人化的计算机设置.密码重设盘是在用户没有忘记登录密码时制作的密码备份盘,可根据计算机是否在域中两种情况分别制作,这里我们仅以没有登录到域的计算机为例子做一简单介绍. 制作密码重设盘 单击"开始"→"控制面板&

CSS制作网页时的优化与技巧

css|技巧|网页|优化 使用css缩写 使用缩写可以帮助减少你CSS文件的大小,更加容易阅读.css缩写的主要规则请参看<常用css缩写语法总结>,这里就不展开描述. 明确定义单位,除非值为0 忘记定义尺寸的单位是CSS新手普遍的错误.在HTML中你可以只写width=100,但是在CSS中,你必须给一个准确的单位,比如:width:100px width:100em.只有两个例外情况可以不定义单位:行高和0值.除此以外,其他值都必须紧跟单位,注意,不要在数值和单位之间加空格. 区分大小写

Windows XP密码忘记了怎么找回

WindowsXP的安全性有了很大提高,它可以让不同的用户拥有自己的桌面和设置,起到保护用户隐私的作用.但是,当企业员工离职又没有公开密码,或用户把自己的密码忘记之后该怎么办呢?下面提供几种办法供大家参考. 1.巧用密码重设盘 密码重设盘可以在用户忘记密码时恢复用户账户和个人化的计算机设置.密码重设盘是在用户没有忘记登录密码时制作的密码备份盘,可根据计算机是否在域中两种情况分别制作,这里我们仅以没有登录到域的计算机为例子做一简单介绍. 2.制作密码重设盘 单击"开始"→"控制

《构建高可用Linux服务器 第3版》—— 2.3 网络配置时容易发生的错误描述与处理方法

2.3 网络配置时容易发生的错误描述与处理方法 系统成功安装后,下一步就要正确配置服务器的网络情况了.在此过程中,如果对Linux系统不是太熟悉,也很容易犯一些错误,比如说网卡配置有问题导致无法分配IP,DNS配置失误等. 2.3.1 安装CentOS 5.8时忘了激活网卡 如果刚开始安装CentOS 5.8时,忘记勾选"Active on Boot",最直接的后果就是导致网卡IP分配不成功,下面是正确的步骤(见图2-9). 结果我们进入系统后才发现,IP地址没有正确分配,不过也不要着