个人博客作业week2——代码规范与复审

一、我对下列关于编程规范问题的感想

1、这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。

  不支持。

 1)编程规范有利于自己提高编程效率和编程质量。编码是程序员的职责,一个好的信息技术产品必然有高质量的代码,高质量的代码首先

一点它必须遵守某种编程规范。如果你的源代码被作为产品发布,那么你必须保证它和其它产品一样很好的包装并保持整洁。

 2)编程规范有利于别人迅速理解自己的代码。一个软件整个生命周期内成本的80%用于维护,几乎没有一个软件在整个生命周期内全部由它的原始作者来维护。编程规范改善了软件的可读性,使工程师更加快速、彻底的理解新代码。

3)提高了团队编程的效率。 大量数据表明,软件存在问题或者隐患,很大一部分是由于未遵守基本准则所致,如果能在项目早期明确规则,则会避免许多麻烦。为了简化工作,团队中每一个编写软件的人都必须遵守编程规范。

  除此之外,每个人都习惯看自己的代码,如果团队中的成员能够统一编程的规范,那么大家阅读别人代码的时候就会更加有耐心。

2、我是个艺术家,手艺人,我有自己的规范和原则。

  反驳。

 个人的能力是有限的,一个成功的软件必然与团队中各个成员的努力密不可分。当一个团队共同开发一个软件的时候,每个人都必须遵守共同的编程规范。否则自身个性的编程规范会对团队中的其他成员阅读代码造成障碍。

3、规范不能强求一律,应该允许很多例外。

反驳

既然是规范,就必须制定清楚、并且每个人都要遵守。比如,在同一项目组应明确规定对接口函数参数的合法性检查应由函数的调用者负责还是由接口函数本身负责。对于模块间接口函数的参数的合法性检查这一问题,往往有两个极端现象,即:要么是调用者和被调用者对参数均不作合法性检查,结果就遗漏了合法性检查这一必要的处理过程,造成问题隐患;要么就是调用者和被调用者均对参数进行合法性检查,这种情况虽不会造成问题,但产生了冗余代码,降低了效率。

《快速软件开发》中指出,一个软件的稳定性往往比其功能更重要,一旦团队成员的代码衔接出现漏洞,软件的不稳定性就会极高,从而影响到整个软件的效果。

4、我擅长制定编码规范,你们听我的就好了。

反驳。

  编码规范的目的在于提高整个团队的编码效率,因此除了合理性,应当符合绝大多数成员的编码习惯。如果你使用的编码规范并不是为你的项目专门设计的,它对你的项目也许并不是最佳方案。。同样,这只是语法:非最优并不表示是不好。也许对你的项目来说它不是最理想的,但并不能表明它不值得遵守。不错,对于你的项目,你并没有从中获得该有的好处,但对于一个大型公司来说,它带来的好处是巨大的。除此之外,专门针对某个项目制定编码规范一般效果会更好。一个项目拥有自己的编码风格无可厚非。

二、代码复查

Code Review Checklist

General

  • Does the code work? Does it perform its intended function, the logic is correct etc.
  • Is all the code easily understood?
  • Does it conform to your agreed coding conventions? These will usually cover location of braces, variable and function names, line length, indentations, formatting, and comments.
  • Is there any redundant or duplicate code?
  • Is the code as modular as possible?
  • Can any global variables be replaced?
  • Is there any commented out code?
  • Do loops have a set length and correct termination conditions?
  • Can any of the code be replaced with library functions?
  • Can any logging or debugging code be removed?

Security

  • Are all data inputs checked (for the correct type, length, format, and range) and encoded?
  • Where third-party utilities are used, are returning errors being caught?
  • Are output values checked and encoded?
  • Are invalid parameter values handled?

Documentation

  • Do comments exist and describe the intent of the code?
  • Are all functions commented?
  • Is any unusual behavior or edge-case handling described?
  • Is the use and function of third-party libraries documented?
  • Are data structures and units of measurement explained?
  • Is there any incomplete code? If so, should it be removed or flagged with a suitable marker like ‘TODO’?

Testing

  • Is the code testable? i.e. don’t add too many or hide dependencies, unable to initialize objects, test frameworks can use methods etc.
  • Do tests exist and are they comprehensive? i.e. has at least your agreed on code coverage.
  • Do unit tests actually test that the code is performing the intended functionality?
  • Are arrays checked for ‘out-of-bound’ errors?
  • Could any test code be replaced with the use of an existing API?

You’ll also want to add to this checklist any language-specific issues that can cause problems.

The checklist is deliberately not exhaustive of all issues that can arise. You don’t want a checklist, which is so long no-one ever uses it. It’s better to just cover the common issues.

Optimize Your Checklist

Using the checklist as a starting point, you should optimize it for your specific use-case. A great way to do this is to get your team to note the issues that arise during code reviews for a short time. With this data, you’ll be able to identify your team’s common mistakes, which you can then build into a custom checklist. Be sure to remove any items that don’t come up (you may wish to keep rarely occurring, yet critical items such as security related issues).

Get Buy-in and Keep It Up To Date

As a general rule, any items on the checklist should be specific and, if possible, something you can make a binary decision about. This helps to avoid inconsistency in judgments. It is also a good idea to share the list with your team and get their agreement on its content. Make sure to review the checklist periodically too, to check that each item is still relevant.

Armed with a great checklist, you can raise the number of defects you detect during code reviews. This will help you to drive up coding standards and avoid inconsistent code review quality.

    

时间: 2024-08-09 10:28:54

个人博客作业week2——代码规范与复审的相关文章

个人博客作业-Week2 (代码规范, 代码复审)

代码规范: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 编码规范它包含了代码格式,还包括了编码风格和其他规范,通常涉及:缩进.空格使用.Tab使用 注释.命题习惯.代码行长度和语言特点风格,从而使大家能够很方便得互相阅读对方的代码从而促进 团队中的沟通与交流.不是浪费时间. 2.我是个艺术家,手艺人,我有自己的规范和原则. 艺术家的表现层次如果只是在规范上面,显然不是个优秀的艺术家,通过大家都容易接受的方式可以 让自己的创造力更好得表现出来. 3.规

个人博客作业2 - 代码规范讨论与个人项目代码审查

对于是否需要有代码规范,请考虑下列论点并反驳/支持: 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 我是个艺术家,手艺人,我有自己的规范和原则. 规范不能强求一律,应该允许很多例外. 我擅长制定编码规范,你们听我的就好了. 对于论点1,我认为是不正确的.对于一个独立的开发者来说,代码风格可以完全遵从个人意愿,代码规范也没有存在的必要,强调代码规范可能睡些许降低个人的开发效率.但是现代软件工程中,一个开发团队往往少则几个人,多则数百人,一个项目需要多个人同时

个人博客作业Week2 是否需要有代码规范

问题:是否需要有代码规范 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 2.我是个艺术家,手艺人,我有自己的规范和原则. 3.规范不能强求一律,应该允许很多例外. 4.我擅长制定编码规范,你们听我的就好了. 声明一下,老师所给的最后一篇文章的链接无法打开,因此就第一篇.第二篇文章以及自己所查到的资料来进行说明. 正文: 在谈如上四个问题之前,第一个需要搞明白的问题是何为代码规范.在第一篇文章中,作者

#个人博客作业week2——关于代码规范的个人观点

对于这一讨论的前提我们首先要知道什么是代码规范. 在这个问题上我同意一篇参考文章的观点——代码规范不仅只编码风格.编码风格仅是代码规范的一个方面,除了编码风格,代码规范还包括函数返回值等其他方面.在我们日常的学习与工作中,我们常说的是编码风格.编码风格通常说的是缩进.空格的使用.注释.命名习惯等主题.有很多位计算机学院的老师都有经常提醒我们要有一个好的编码风格,因为在未来的工作中,我们不仅要自己码代码,同时会有很多时候维护别人已经写好的代码.如若自己的编码风格和他人的编码风格有很大差异,就会让人

#个人博客作业Week2——关于代码规范的讨论

<1> 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 反驳:官僚制度在一定程度下维持了社会的和谐稳定,一个没有法律.没有拥有完善的管理体制.完全崇尚自由的国家是可怕的.人们将会无法无天,只顾自己的舒适和乐趣.而代码规范就像一个国家的法律一样,这是一个需要养成的良好习惯,而不是一个需要时刻提醒自己的所谓浪费时间的束缚.影响开发效率更是可笑,如果代码风格很差,返回修改的时候也许连作者都不知道从何下手. <2> 我是个艺术家,手艺人,我有自己的规范

个人博客作业2--代码规范和代码复审

代码规范: 代码规范作为coders所遵守的一个默认的准则,其存在的意义是十分重要的. 不以规矩,不能成方圆.如何正确.规范的工作,如何为我们的工作提供依据,并能够高效率的执行,这些都需要正确.行之有效的规范.而代码规范正是保证这一切的基础.它使得不同的人在相互合作的时候能够更加迅速.容易地理解彼此的工作进度与代码信息,为之后的协作提供一个良好的沟通环境.一个人的能力十分有限,所以与他人的沟通协作不可或缺,这更加彰显出代码规范的重要. 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们

个人博客作业Week2

代码规范: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 代码规范的产生并不是由于官僚制度,更不会浪费大家的编程时间,有统一的代码规范,才有程序员们工作的依据,才能提高程序员们工作的效率.也许在自己写程序的时候,代码规范会浪费一定的时间.但在团队工作中,代码规范则是必不可少的东西,有了代码规范才能让整个团队有统一的依据来编写程序,从而提高团队的效率及每个人代码的可读性. 2.我是个艺术家,手艺人,我有自己的规范和原则. 自己的规范和原则在编写程序方面是

个人博客作业Week2(9月30日)

一.是否需要有代码规范 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 这些规范并不是一开始就有的,也不是由某个人规定的,代码规范是程序员们在不断地编程实践过程中自发地形成的一种共识,这种共识的出发点是团队开发效率.代码可读性与可重用性.所以我们应该理解并提高对自己编码的要求,使自己的编码有良好的风格,符合团队对编码的规范. 作为团队中的一员,我们必须遵循团队的代码规范,这样你的代码可以被团队中其他队员很好地理解,代码可以被团队共享.而如果不遵循代码规范

软工个人作业-博客作业-WEEK2

1.是否需要代码规范:    (1)这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西.        首先来说,从短期上和个体上来看,一个团队的代码风格必然会在一定程度上与个人的代码习惯有所冲突,所以在这个层面上来说,他对个体的开发效率在短期上会有一定影响.        然而,在宏观上,从长远角度出发,开发一个项目,是一个团队的事,制定一套代码规范会让团队的合作更加高效,更加紧密,因为代码规范的制定会让团队成员更易理解他人的代码,并且能让迭代更加轻松,并且一个