1. 是否需要有代码规范

对于是否需要有代码规范,请考虑下列论点并反驳/支持:

  1. 这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。
  2. 我是个艺术家,手艺人,我有自己的规范和原则。
  3. 规范不能强求一律,应该允许很多例外。
  4. 我擅长制定编码规范,你们听我的就好了。

我不赞同以上任何一个观点。

  相信大家在阅读别人的代码的时候,先不提每个人思维上的区别,总有那么些时候觉得看起来别扭,我想更多的就是由于代码规范不统一所造成的,就好像一句话,每个人的语言习惯不一样,说出来的感觉也不一样,即使都能互相听懂,但是还是会觉得有些不适应一样。

  那么为什么在有代码规范的情况下仍然有这样的问题呢,主要是,人都不是那么愿意去改变自己的,程序员也是人。同时,管理者对制定的规范没有彻底执行和检查,一方面也不能完全怪管理者,毕竟代码那么多,也不能检查的多彻底,还是要从每个程序员自身开始有意识的约束才行。

  有些人会认为:遵守编码规范不能给项目带来利益,也不能让客户看到我们为此付出的努力,其完全是团队自发的行为,没有必要做硬性的要求。还有些人有更好的理由:编码规范会破坏创造性和程序质量。我认为,编码规范,在软件构件以及项目管理中,甚至是个人成长方面,都发挥着重要的作用,好的编码规范是提高我们代码质量的最有效的工具之一。

编码规范的作用:

  1.提高可读性 

  2.统一全局,促进团队协作

  3.有助于知识传递,加快工作交接

  4.减少名字增生,降低维护成本 

  5.强调变量之间的关系,降低缺陷引入的机会

  6.提高程序员的个人能力

  代码规范并不是一个绝对的约束,而应该是一种习惯,一个大家都自觉去遵守的习惯,我想这就像不应该随地扔垃圾一样,道理都懂,然而仍然也有很多人不能去遵守,而同样,两者都在向成为习惯的路上发展着。代码规范在团队合作上有着巨大的作用,可以让团队成员间能更快地理解彼此的代码,从而能让团队更专注于应该解决问题,不仅缓解了工作的压力也提高了工作的效率。

****************代码复查*******************

  1. 变量和常量的命名是否与约定保持一致?是
  2. 是否存在容易混淆的相似的变量和属性名?是
  3. 变量和属性是否书写正确?是
  4. 非局部变量是否能用局部变量替换?否
  5. 变量和属性是否被正确的初始化?不适用
  6. 所有的for循环的控制变量是否都在循环顶部被声明?是
  7. 是否有应该命名为常量的文字常量?否
  8. 变量和属性是否可以用常量替换?否
  9. 属性是否可以用本地变量?否
  10. 所有的属性是否都有正确的访问限制符?否
  11. 方法名的描述方法是否与命名约定一致?是
  12. 每个方法的参数值在使用之前是否都作了检查?否
  13. 对于每一个方法,它是否都返回了正确的值?是
  14. 每一个类是否都有正确的构造函数和析构函数?否
  15. 在子类中是否有应该放到父类中的通用成员?否
  16. 类的继承层次是否能被简化?否
  17. 对于每一个数组引用,下标值是否在定义的范围内?是
  18. 对于对象和数组引用,是否确定其值应为非空?否
  19. 是否存在不同类型数据之间的混合计算?是
  20. 在计算中是否存在上溢或下溢的可能?是
  21. 关于数值计算的顺序和优先级的假设是否正确?是
  22. 是否用了括号来避免模糊不清?否
  23. 对每一个布尔测试,正确条件是否被检查?否
  24. 比较操作符是否正确?是
  25. 每个布尔表达式是否都正确?是
  26. 比较操作是否存在不引人注意的副作用?否
  27. 对于每一个循环:是否选用了最佳的循环结构?否
  28. 所有的循环是否都能结束?是
  29. 如果一个循环有多个出口,是否每个出口都有必要并且得到正确处?否
  30. switch声明是否都有default条件?是
  31. 是否所有的case-switch-break对应关系都已更正并加上批注?否
  32. 循环和分支的嵌套是否过深?是否正确?是
  33. 是否有if嵌套可以转换程switch嵌套?是
  34. 空控制叙述是否都正确,并加上括号及批注?否
  35. 所有的异常是否都得到了正确的处理?否
  36. 每一个方法是否都结束?是
  37. 文件在被使用之前是否都被打开?是
  38. 输入对象的属性是否与使用的文件一致?是
  39. 文件在被使用之后是否都被关闭?是
  40. 文本中是否有拼写和语法上的错误?否
  41. 所有的I/O异常处理的是否合理?否
  42. 方法调用的参数的数量,顺序,类型和值是否与该方法声明一致?是
  43. 如果对象或数组被传递,它们是否改变?是否被调用方法正确改变?是
  44. 每一个方法,类和文件是否都有适当的头注释?否
  45. 每一个属性,变量和常量的声明是否都有注释?否
  46. 每个类和方法的潜在行为是否都有用简易的语言进行解释?否
  47. 方法和类的头注释是否和它们的功能保持一致?是
  48. 注释和代码是否保持一致?是
  49. 注释对于理解代码是否有帮助?是
  50. 代码中的注释是否充分?否
  51. 代码中的注释是否过多?否

  

个人博客week2的更多相关文章

  1. Z-XML团队年终博客整理

    一个优秀的团队一定有逻辑清晰,风格优雅,严格规范的博客. ------图灵 大三上转眼间已经到了收官阶段,我们的软工课也逐渐接近尾声.在二轮迭代即将结束的时候,当我们梳理一路走来的软工课,我们发现自己 ...

  2. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  3. 一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)

    Web.config的读取 对于Web.config的读取大家都很属性了.平时我们用得比较多的就是appSettings节点下配置.如: 我们对应的代码是: = ConfigurationManage ...

  4. 一步步开发自己的博客 .NET版(10、前端对话框和消息框的实现)

    关于前端对话框.消息框的优秀插件多不胜数.造轮子是为了更好的使用轮子,并不是说自己造的轮子肯定好.所以,这个博客系统基本上都是自己实现的,包括日志记录.响应式布局.评论功能等等一些本可以使用插件的.好 ...

  5. 【原】Github+Hexo+NextT搭建个人博客

    摘要 GitHub 是一个开源项目的托管网站,相信很多人都听过.在上面有很多高质量的项目代码,我们也可以把自己的项目代码托管到GitHub,与朋友们共享交流.GitHub Pages 是Github为 ...

  6. 我为什么要写LeetCode的博客?

    # 增强学习成果 有一个研究成果,在学习中传授他人知识和讨论是最高效的做法,而看书则是最低效的做法(具体研究成果没找到地址).我写LeetCode博客主要目的是增强学习成果.当然,我也想出名,然而不知 ...

  7. 博客使用BOS上传图片

    1.博客平台的选定 从大学开始做个人主页算起,最开始是使用html,CSSS写简单的页面,后面大学毕业之后接触到了WordPress,就开始用WordPress搭建网站.现在还维护着一个农村网站.ht ...

  8. 在jekyll模板博客中添加网易云模块

    最近使用GitHub Pages + Jekyll 搭建了个人博客,作为一名重度音乐患者,博客里面可以不配图,但是不能不配音乐啊. 遂在博客里面引入了网易云模块,这里要感谢网易云的分享机制,对开发者非 ...

  9. iOS controller解耦探究实现——第一次写博客

    大学时曾经做过android的开发,目前的工作是iOS的开发.之前自己记录东西都是通过自己比较喜欢的笔记类的应用记录下了.直到前段时一个哥们拉着我注册了一个博客.现在终于想明白了,博客这个东西受众会稍 ...

随机推荐

  1. pip更新及Requirement already up-to-date解决方法

    pip更新及Requirement already up-to-date解决方法 文:铁乐与猫 2018-9-11 更新命令 将pip更新到最新版本 python -m pip install --u ...

  2. 基于C#的单元测试(VS2015)

    这次来联系怎么用VS2015来进行C#代码的单元测试管理,首先,正好上次写了一个C#的WordCount程序,就用它来进行单元测试联系吧. 首先,根据VS2015的提示,仅支持在共有类或共有方法中支持 ...

  3. Pair Programming 2

    学生-社团匹配程序 项目流程: 1. 分析讨论 2. 分工合作 3. 代码规范 4. 编码实现 5. 模块结合 6. 测试修改 7. 数据样例 8. 心得体会 9. GitHub链接 结对队友:陈文举 ...

  4. PostgreSQL 空间处理函数

    PostGIS中的常用函数 以下内容包括比较多的尖括号,发布到blogger的时候会显示不正常,内容太多我也无暇一个个手动改代码,因此如有问题就去参考PostGIS官方文档. 首先需要说明一下,这里许 ...

  5. 【WebLogic】weblogic调优

    版权声明:本文为博主原创文章(原文:blog.csdn.net/clark_xu 徐长亮的专栏),未经博主同意不得转载. https://blog.csdn.net/u011538954/articl ...

  6. input框下拉综合搜索

    静态页面 <form action="houtai.php" method="get">                               ...

  7. 【转】MySQL理解索引、添加索引的原则

    索引用于快速找出在某个列中有一特定值的行.不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行,还需要考虑每次读入数据页的IO开销.而如果采取索引,则可以根据索引指向的页以及记录在 ...

  8. go标准库的学习-strings-字符串操作

    参考https://studygolang.com/pkgdoc 导入方式: import "strings" strings包实现了用于操作字符的简单函数. 常用的几个函数: f ...

  9. ethereum/EIPs-1077 Executable Signed Messages

    https://github.com/alexvandesande/EIPs/blob/ee2347027e94b93708939f2e448447d030ca2d76/EIPS/eip-1077.m ...

  10. Qt+QGis二次开发:打开S-57格式(*.000)电子海图数据,并设置多边形要素的显示风格

    不过多的废话了,直接上源码: addChartlayers()方法时“打开海图”按钮的triggered()信号所绑定的槽函数. //添加海图数据小按钮槽函数 void MainWindow::add ...