近几天,算是掉进来一个巨大的焦油坑,我和另外三个同事备受折磨。现在三个有一个跑去装机器了,暂时不写代码,还有我和另外一个同事。
其实代码复杂度不是很复杂,但是代码审查(简称CR)就是过不了,来来回回的改,若是去和较真CRer,貌似也理由也不是很充分,添加的CR评论多半是“我觉得”,“我认为”,CR代码的spell check和style check胜过代码的逻辑check。
比如,你一个循环,可能多半人都会这么写:
for(int i=0;i<100;i++)
{
......
}
但是可能有些人会这么写
// The max number is 100
int maxNum=100;
// Add some comments here
for(int num=0;i<maxNum;i++)
{
.......
}
当然第二种方式看起来比第一种“优雅”,但是我认为第一种也不为过。
现在没人关心这段代码能不能得到想要的结果,这个只能写code的人去心中有数了。
可能有人会提到易读性,维护性,我想这个有时候有点小题大做了,代码足够简的情况下,如果还要掰扯个最优写法,吹毛求疵,不为过。
如果写每一段代码都要考虑,这个是不是别人看会不会明白?会不会造成误解?是不是已经足够清晰?
那这个就不是写代码,这个就是写文章了。
我认为代码的易读性跟怎么写不太有关系,而是跟你整个框架的搭建,对行为的抽象精炼有关系。
再举个例子:http://msdn.microsoft.com/en-us/library/ms243496(v=vs.110).aspx
相信大家在写单元测试的时候广泛用到Assert,有这么一个方法。\
public static void AreEqual(
Object expected,
Object actual,
string message
)
关于第三个message参数,msdn是这么定义的:
messageType: System.String
A message to display if the assertion fails. This message can be seen in the unit test results.
说白了就是写一个信息,然后在断言失败的时候打印出来。
但是注意,这虽然是一个message of error,但是msdn 没有将message定义为errormessage,errormsg等。也就是说没有给这个message定性,只是说在失败的时候打印一个message。
其实你要是说写一个Assert.AreEqual("Bob", userName, message) 你会怎么写你的message。
如果失败,他会打印出:
Expected : "Bob"; Actual :"Boa", message
先说我的想法,我是在message写明这个断言的作用,会写“Verify if the user name is 'Bob' or not”, 表明这个断言在验证什么。
但是按照我们现在的写法,他需要写成“ Verify user name ‘Bob’ fails.”, 区别在于我的是个不确定的语气,而规定是肯定句。
其实有必要掰扯message怎么写吗?按照多数人来说,可能觉得微不足道。
我其实两者怎么·写都可以接受,但是就因为我的这种写法,被谈话许久,其实最后的的结论就是看到第二种写法,第三者不用看code就知道哪里的功能错了。
这个理由仍然不能让我信服,既然你能看到message,说明断言已经失败了,继而看到这个断言在验证什么也可以推知错误所在。
最后我把messge给删除了,就光verify,不显示message,也不错吧。
但是人在屋檐下,怎么着我都是能接受的,你让我怎么写我就怎么写,你制定出个rule出来,我follow就好了,不是吗?
这就好比我不懂OO,我反OO难道我就不能写出好的code吗?不见得(我且认为满口OO的人,才是最不懂OO的人)
=================================================================================
代码如文章,现在几个人写一本书也不可能都文风一致。
现在每天最头疼的,不是功能如何事先,而是纠结
如何给一个变量起个名字,现在是能不用变量就不用变量,函数里套函数
如何添加注释,现在是能不写就不写,写了 反倒多余
代码空格对齐问题 哪里少了1个空格,哪里哪里要对齐。。。。。。
新function能不写就不写,堆代码,写了有人会comment
蛋疼的事情一大堆
。。。。。。。。。。。。。。。。。。。。。。。。。。。
新的代码怎么放置,添加一个文件如何命名,一个变量放在哪个文件里都需要请示。
====================================================================================
关于代码风格,我认为只要不是堆砌,只要风格简洁,思维通顺,就为好的。而且你既然作为一个程序人员,基本的阅读别人代码的能力是必须的。
好的代码能让人明白你的思维,你能明白你当时的设计思路。
跟一同事飞总说了两句,说了句经典的:他们看不懂逻辑,所以就只能挑code style和format的错。
啰嗦完毕,吃饭
也请大家谈谈自己的意见,该怎么做CR经济又实惠?
先谢谢大家
分享到:
相关推荐
代码审查是软件开发过程中的重要环节,它有助于提高代码质量,发现潜在的错误,以及确保遵循最佳实践。在Java编程中,代码审查同样至关重要,因为Java作为一种广泛应用的面向对象语言,其复杂性和广泛性需要严谨的...
Java代码审查表重要性激活级别检查项结论总计命名重要性规则 一、代码命名规则 Java代码审查表中关于命名规则的重要性激活级别检查项有: * 命名规则是否与所采用的规范保持一致?(重要20) * 变量是否已经在...
代码审查规范 代码审查是软件开发过程中的一种质量控制机制,它旨在确保软件代码的质量、可维护性和可读性。代码审查规范是指在代码审查过程中需要遵守的一系列规则和标准,以确保代码审查的效率和效果。 代码审查...
Java代码审查工具是提高软件质量和团队协作效率的重要手段。代码评审是一种系统性的源代码检查过程,旨在确保代码符合编程标准,减少错误,提高可维护性和可读性,同时也能促进团队成员之间的知识共享。在这个过程中...
C#代码审查表 C#代码审查表是对C#代码的检查和评估,以确保代码的质量、可靠性和可维护性。以下是C#代码审查表的重要检查项: 命名检查: * 是否采用 Pascal Casing + Camel Casing 规范? * 布尔型属性名称前缀...
"静态测试-代码审查" 代码审查是静态测试的一种重要方法,它通过对代码的检查和评估来发现和修复错误。代码审查的测试内容包括检查代码与设计的一致性、代码对标准的遵循、代码的逻辑表达的正确性、代码结构的合理...
下面列出的这些要点因该可以作为大部分代码审查的指导,如果是Java应用的话,这些建议应该被视作最佳实践。 代码审查可以帮助提高代码质量,避免由于代码习惯而造成的bug。下面列出的这些要点因该可以作为大部分...
代码审查是软件开发中一个至关重要的环节,它涉及对源代码的详细检查,以确保代码符合项目的编码标准和质量要求。代码审查可以借助不同的工具和平台进行,包括GitHub的Pull-Request机制和GitLab的Merge-Request机制...
通过对Java代码审查的详细分析,我们可以看到该过程不仅有助于发现代码中的问题,还能够提升代码的整体质量和可维护性。通过遵循上述流程和检查表,开发者可以有效地减少bug的数量,提高软件产品的稳定性和可靠性。...
在详细说明【标题】及【描述】中的知识点之前,需要明确这两个字段提供的是文件名和文件内容的描述,它们分别指出了文档的主题是关于Java代码审查的PDF文档,以及文档内容涉及到了Java编程语言中的代码审查技巧、bug...
Code Review是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码、测试过程和注释进行检查。 Code Review主要用来在软件工程过程中改进代码质量,通过Code Review可以达到如下目的: .在...
代码审查单是通用代码审查,用于代码审查,以及做代码参考文档便于学习。下面是代码审查单的详细知识点: 数据引用错误 * 是否引用了未初始化的变量? * 数组和字符串的下标是整数值吗?下标总是在数组和字符串...
5. 一行代码应只做一件事情,以增强代码的可维护性和理解性。 6. 控制流语句如if、for、while、do应自占一行,并在有多条语句时使用花括号括起。 7. 定义变量时,指针和引用符号(*和&)应紧邻变量名。 三、注释 1. ...
JavaViewer 1.0 是一款专为Java源代码审查设计的轻量级工具,旨在提高代码审查效率并降低审查成本。这款工具集成了多种功能,为开发者提供了全面、高效的代码检查环境。 一、软件特点 JavaViewer 1.0 的主要特点...
代码审查技术
Java 代码审查清单 一、代码整洁清单项分类 1. 使用有意义的名称:变量、函数和类名应该能够表达实际意图,使用描述性名称,避免使用单个字符或缩写。 2. 函数只做一件事:函数应该只有一个明确的任务,避免函数过...
GitLab和代码审查使用文档 本文档将带领读者了解 GitLab 和代码审查的使用方法,涵盖 Git 的基础知识、GitLab 使用规范、插件集成和代码审查流程。 一、 Git 基础知识 1. Git 概念:Git 是一种分布式版本控制系统...
### 代码审查清单详解 #### 一、背景与目的 在软件开发过程中,代码审查是一项至关重要的活动。通过审查代码,不仅可以确保代码的质量,还能帮助团队成员之间共享知识,提高整体的技术水平。本文将根据“Coding ...
软件工程中的代码规范与代码审查 软件工程中的代码规范与代码审查是软件开发的重要组成部分。代码规范是指在软件开发中遵循的一致的编程风格和约定,以提高代码的可读性和可维护性。代码审查是指通过人工检查代码,...