`
jsntghf
  • 浏览: 2542643 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

代码的自我审查

阅读更多

1、首先态度需要端正,做代码的自我审查并不是否定自己,而是给自己将工作做得更好的一次机会。在审查过程中要尽量将自己作为一个旁观者的心态去审查自己的代码,尽管这比较困难。

 

2、代码审查离不开重构,在审查过程中发现任何坏味道都请使用重构去改善,发现缺乏测试的地方要及时补充测试,不要让BUG遗漏。

 

3、代码的自我审查可能不是越早越好,隔一段时间之后回去看自己写的东西,对一些设计上的选择能有更客观的评价,在审查的过程中可能需要重新去理解代码,在此过程中可以检查自己代码的可读性,并思考如何改善可读性,切记代码首先是给人读的。

 

4、审查过程中需要记录下一些犯下的错误,以及当时为什么会犯下这样的错误,建立自己的bug数据库,并时常review,在以后的工作中避免同样的错误。

 

5、代码的自我审查应该是一个持续性的过程,而非特定时间的特定行动,时常审查自己的代码,不仅能辨析自己的得失,还能够进一步提高自己在未来工作中的设计能力和预见能力。

 

6、代码的自我审查跟团队成员之间的相互review并不矛盾,在相互review之前做一个自我审查,有助于提高review的效率,包括可读性的提高和一些一般错误的避免。

 

7、代码自我审查的一些常见注意点:

(0)自认为绝不会出错,并且从来没有审查过的代码。

(1)注意else语句,if条件下的子语句通常可能是个正常的流程,而else意味着异常的情况或者特殊的场景,你可能特别注意怎么处理正常的情况,却忽略了else子句的实现细节,如该释放的锁没释放,该递减的计数没有递减,该赋予特殊值却没有赋予等等。

(2)注意空的方法,没有方法体的方法,是不需要实现?还是忘了实现?

(3)注意switch语句,有没有忘了break?这种错误通过findbugs之类的静态代码检查工具都能避免。

(4)注意大块的注释,为什么这么多注释?是代码写的很糟糕?还是遗留的注释?遗留的注释会误导人,要及时删除。

(5)注意一些看起来“不合常理”的代码,这样的代码很多都是基于所谓性能考虑而优化过的代码,这样的优化是否还需要?是否能去除这些“奇怪”的代码也能实现正常的需求?

(6)对客户端的使用有假设的代码,假设用户只会这么用,假设用户只会用到返回对象中的某些属性,其他属性一定不会用到?不要对客户代码做假设!这个客户代码包括外部用户和调用这个模块的内部代码。

(7)标注了FIXME、TODO之类task标签的代码,是否忘了修复BUG,实现功能?

(8)任何超过15行以上的方法,这些方法是否能拆分成更细粒度的方法,并保持在同一个抽象层次上?

(9)任何在代码中出现的常量值,是否应该提取出来成为单独的常量,常量的默认值设置是否合理?

(10) 任何持有容器的代码,提供了放入容器的方法,是否提供了从容器中移除对象的方法?确保没有内存泄漏的隐患。

(11)重构中提到的其他坏味道,别放过它们,但是也不要追求完美,OO不是圣杯,如果能简单的实现一个算法,你不要引入3个对象和4个接口。

(12)在review最后能列出一张清单,列下该项目面临的风险点,并提出解决办法,然后按照这张清单去review关键代码,着重检查异常情况下的处理。风险点的review,我建议可以放在后面,在一般性错误解决之后进行,此时你对代码也将再度变得熟悉。

分享到:
评论

相关推荐

    软件工程中的代码规范与代码审查.pptx

    软件工程中的代码规范与代码审查 软件工程中的代码规范与代码审查是软件开发的重要组成部分。代码规范是指在软件开发中遵循的一致的编程风格和约定,以提高代码的可读性和可维护性。代码审查是指通过人工检查代码,...

    代码审查Review讲义

    - **自我检查**:鼓励开发者在提交代码前进行自我检查。 - **问题发现**:评审的重点在于发现而非解决问题。 - **全员通告**:将共性问题及时告知所有人。 - **记录管理**:确保所有审查记录的真实性和准确性。 综...

    代码审查的其它视角 c

    另一方面,被审查者也应保持开放的态度接受反馈,将其视为提升自我技能的机会而非个人攻击。因此,在进行代码审查前建立良好的沟通机制是非常必要的。 #### 2. 代码审查的文化视角 不同团队有着不同的文化背景,...

    软件工程中的代码审查实践与经验.pptx

    - 定义与意义:自我评估代码质量,提升代码质量。 - 效果评估:检查规范是否符合。 - 如何进行自审查:遵循既定的代码审查指南。 #### 第四章:代码审查的经验分享 - **好处**: - 提高代码质量。 - 减少bug...

    软件工程的代码审查与重构.pptx

    ### 软件工程的代码审查与重构 #### 第一章 简介 软件工程是一种采用系统化、规范化的管理方法来进行软件的开发、运行和维护的过程。它包括了需求分析、设计、编码、测试等多个阶段。在这个过程中,代码审查与重构...

    软件工程中的代码审查与质量控制.pptx

    ### 软件工程中的代码审查与质量控制 #### 第一章:软件工程概述 - **定义**:软件工程是一种采用系统化、规范化且可量化的途径来开发和维护软件的过程。 - **特点**: - 强调系统化方法而非单一的编程技巧。 - ...

    前端-代码走查模板.docx

    每个开发者都应当认真对待代码走查,将走查视为自我提升和团队协作的重要环节。在遇到问题时,及时与代码审核人员沟通,共同优化解决方案。通过这种集体智慧的结晶,我们能够打造出更加健壮、高效、易于维护的前端...

    软件工程中的代码审查与质量保证.pptx

    ### 软件工程中的代码审查与质量保证 #### 第一章:软件工程概述 - **软件工程定义**:软件工程是一门集成了系统化、规范化、可度量化方法的学科,专注于软件产品的开发和维护。 - **目标**:提高软件质量、提升...

    会说话的代码:书写自表达代码之道.王洪亮(详细书签)

    王洪亮在书中详细讨论了如何选择有意义、一致且具描述性的名称,避免使用模糊或过于简短的代号,以增强代码的自我解释性。 3. **注释与文档**:尽管良好的代码结构和命名可以减少注释的需求,但适当的注释仍然是...

    c/c++代码量统计小工具(含代码和可执行程序)

    此外,工具还会提供扫描过的文件总数和代码文件数目,这些数据对于项目管理和代码审查具有很高的参考价值。 实现上,该工具可能采用了正则表达式匹配的方式,对文件内容逐行扫描。对于代码行的判断,它会识别非空、...

    代码助手V6.0

    长时间的代码审查和调试常常会导致视觉疲劳,而高亮的代码能有效缓解这一问题,提升开发效率。 “生成网页”功能为代码的展示和分享提供了新的解决方案。用户可以轻松将代码转换为网页格式,以一种全新的方式展示...

    代码大全(第2版)中文版

    1. 代码审查:强调代码审查在提升团队代码质量中的作用,提供了有效的代码审查流程和技巧。 2. 对话与文档:提倡有效的技术沟通,讨论了编写技术文档和进行有效会议的方法。 五、持续学习与成长 1. 软技能:除了...

    代码大全1中文版

    书中提供了许多自我提升的建议,包括阅读他人的代码、参加代码审查、参与开源项目等,以提升个人技能和专业素养。 总而言之,《代码大全1中文版》是一本全面覆盖软件工程各个方面的指南,无论是初学者还是经验丰富...

    Idea 阿里Java代码规范 插件

    3. 代码审查:在提交代码前,插件可以进行全面检查,确保代码符合规范要求。 4. 自定义设置:用户可以根据自身需求调整规范检查的级别和具体规则。 三、插件安装与使用 1. 安装:在Idea中打开插件市场,搜索...

    代码大全!

    9. **文档与注释**:良好的注释是代码自我解释的关键。书中阐述了如何编写有用的注释,使其既能解释代码功能,又能反映代码的设计思路。 10. **持续集成与自动化**:随着敏捷开发的普及,持续集成和自动化测试成为...

    OAM项目中用到的源代码

    【OAM项目中的源代码详解】 在IT领域,OAM(Operations, Administration, and Maintenance)是一种用于网络管理和维护的技术,它...然而,由于没有实际的源代码内容可供参考,更具体的分析将依赖于对实际代码的审查。

    浅析框架与代码规范.pdf

    这通常包括对现有代码库的审查、代码风格指南的学习以及最佳实践的讨论。 2. **练习与考核:**新员工需要完成一系列关于代码规范的练习题,并且必须通过考核才能正式上岗。未通过考核的员工需要重新学习直至合格。 3...

    代码阅读方法与实践 Code Reading (中文版+英文版)

    8. **代码审查**:介绍代码审查的最佳实践,包括审查目标、过程和反馈机制,以及它在团队协作中的作用。 9. **版本控制系统**:讲解如何使用版本控制系统(如Git)进行代码管理,协同开发。 10. **测试策略**:...

    代码优化原则与方法优化

    它们是程序与人类沟通的桥梁,好的命名可以让代码自我解释,减少注释的需要。例如,使用StringUtils和FileUtils这样的命名,就表明了这些类专注于字符串和文件的操作,使用者可以直观地了解其功能。同样,函数名应该...

    代码质量随想录

    正确的命名能够减少误解,提高代码的自我解释性。变量、函数、类和模块的命名应准确反映它们的用途,遵循一致的命名规则,如驼峰式或下划线分隔,避免使用模糊不清或含糊的缩写。良好的命名习惯可以显著提高代码的...

Global site tag (gtag.js) - Google Analytics