`
liu_87663663
  • 浏览: 36703 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

针对代码审查的一些想法

 
阅读更多

        在软件开发项目中同行代码审查是一种常见的做法。有人认为,代码审查有助于识别潜在的Bug以及规范项目编码标准。虽然我不同意这个观点,但不可否认的是代码审查对项目和团队的确有很大帮助。代码审查涉及四大领域,开发者自身、审查者、学习者以及传教者。可以说,贯穿整个技术和知识领域。

 

 

 

 

        Teaching + Programming (教学+编程):代码审查为你提供与同伴分享编程知识的好机会。在这里不是为了炫耀你学到的最新技巧,而是去帮助改善另一名开发者的技能。作为一名程序员你可以积极的贡献出个人的成长历程,提供最宝贵的经验反馈。利用特定的技术或者引入具体的项目实践是指导新手的两大最有效方法。

        Teaching + Domain(教学+域):大多数内置的软件项目具有不平凡的域特点。 一个不平凡的域需要大量的模型来表示其行为和代码属性。由于代码的模型行为和属性是两个密不可分的部分。因此,审查者在整个域建模思路中扮演一个极其重要的角色。

        Learning + Programming(学习+编程):开发者在代码审查上会利用不同方法来解决问题。观察和理解其他程序员编写的代码是改善代码风格、掌握技术、了解新的类库以及学习新的模式最有效的方式之一。

         Learning + Domain(学习+域):在代码中捕获信息是学习域的概念和整体功能一项最基本的资源。代码实际上是一个软件系统最详细的文档列表。理解性的阅读代码能够有助于扩展理解系统以外的内容。

        大多数开发者会在代码审查领域中游离,因为他们想成为更好的程序员以及学习更多的域知识。尽管有些开发者有机会学到更多,但他们常常会因此而感到满足。如果一名开发者在某个项目中采用新技术(除了这个领域的专家),他将扮演两个角色。在某种情况下审查者会发现自己同时处在四个领域。 意识到这些领域的优势是做代码代码审查最宝贵的经验,无论审查者的资历水平如何。

给代码审查者的几点建议:

         让团队中的所有开发者拥有代码所有权——作为开发者,我们喜欢在家编码的感觉。代码审查从代码所有者切换至团队作者,他们拥有共同的利益。这种关系的转换使得整个团队都在为代码质量而负责,任何一名团队成员都应积极拥抱变化。此外,在极限编程中还涉及到共享代码(或集体代码所有权)问题。

        逐步提高开发者的编码技能——同行审查能够提高团队的平均技能水平。此外,它还具备了无形的压力促使开发者更写更好的代码。

        传播域知识——理解从代码中捕获的功能有助于在整个团队成员之间传播(共享)系统知识。它使整个团队间更有凝聚力,有效避免了任何一名开发者在任意系统工作领域中“挑三拣四”的情况发生。

        培养集体智慧——团队整体完成的项目质量要远远高出开发者独自完成工作的总和。每位开发者都可带来不同的技能,实现协同编程,为团队“添砖加瓦”。

         代码审查是我最喜爱的团队建设活动之一。它不仅是关注代码,而且还能见证整个团队的成长。值得一提的是,结队编程常被看作是代码审查的一种极端形式,这是一种值得推崇的代码审查方式。

分享到:
评论

相关推荐

    javascript-4-学习:Epicodus代码审查项目,Javascript第4周:跟踪学习目标

    我想要一个中央存储库来跟踪其中的一些想法和工具。 我进行了大量的阅读和研究,还使用FreeCodeCamp进行了一些Javascript练习,并从Javascript30开始了我的第一个项目。 为了做进一步的练习,我计划尝试继续保持此...

    【Gopher China 2015】gofmt 的文化演变

    这种一致性的格式化有助于提高代码的可读性和维护性,同时也减少了开发者在代码审查过程中对格式的讨论,从而更专注于代码本身的逻辑和质量。 #### 初衷与历史背景 代码审查是软件开发过程中的一个重要环节,它...

    开源项目-btubbs-gofluff.zip

    gofluff是golint的分支版本,它提供了对特定警告启用或禁用的选项,这使得开发者可以根据自己的需求自定义代码审查的严格程度。 1. **golint**:golint是Go语言社区广泛使用的代码质量检查工具,它基于标准的编程...

    【最新版】Screen.dmg【亲测可用】最好的多人控制,绘图和视频进行快速屏幕共享。

    非常适合远程结对编程,实时调试,甚至代码审查。 视觉交流 使用Screen的始终在线绘图,您可以在屏幕上快速绘图以突出显示某些内容,或更好地传达想法。 就像在同一房间一样集思广益 白板从未如此简单。随时随地涂鸦...

    优秀员工的十条戒律

    在进行代码审查时,重点应该是指出代码中存在的问题,而不是针对编写者的个人攻击。通过建设性的反馈可以帮助作者改进代码质量,同时也促进了整个团队的技术进步。 总而言之,作为一名优秀的程序员,不仅要具备扎实...

    基于 c++ 和GDI做的 一个UI库. Direct UI库,部分参考Duilib,有些作者自己的想.zip

    6. **源代码分析**:由于没有提供具体的源代码内容,深入理解Direct UI库的功能和实现细节需要对包含的"java0323"文件进行解压和代码审查。 综合以上信息,这个压缩包可能包含了使用C++和GDI构建的Direct UI库的源...

    bee-stylish:时尚风格指南(或不)

    "bee-stylish"可能也强调了使用git进行版本控制的重要性,以及通过pull requests进行代码审查的流程。这有助于保持代码质量,发现潜在问题,并鼓励团队成员间的交流和学习。 五、提交规范与代码审核 "commits"和...

    程序员如何精进1234.rar

    理解并应用代码审查、单元测试、持续集成等实践,有助于保证代码质量。适时的代码重构可以优化现有结构,消除技术债务。 5. **项目管理**:参与项目管理可以帮助程序员理解软件开发的全生命周期,包括需求分析、...

    What is software design

    Reeves认为,这可以通过代码审查、重构等敏捷开发实践来解决。 **2. 结合新技术的趋势** 随着时间的发展,敏捷开发、测试驱动开发(TDD)等新的技术和方法论逐渐兴起。Reeves在这篇文章中探讨了这些新兴技术是如何与...

    程序员的思维修炼开发任职潜能的九堂课

    4. 代码审查和质量意识:在日常工作中,程序员应积极参与代码审查,这不仅有助于提升代码质量,还能通过阅读和理解他人代码来提升自己的编程思维。 5. 团队合作与沟通技能:现代软件开发往往需要多人协作,程序员...

    Git-2.27.0-64-bit.zip

    7. 第三方集成:Git与许多代码托管平台(如GitHub、GitLab和Bitbucket)集成良好,支持Web界面的代码审查、问题跟踪等功能。 Git-2.27.0版本可能包含了以下改进和修复: 1. 新增功能:新版本通常会添加一些新的...

    给你一次机会面试架构师 你会问什么问题?.docx

    - 询问候选人如何确保代码的可读性和可维护性,例如,他们遵循哪些编码规范,如何进行代码审查,以及如何使用设计模式提升代码质量。 6. **项目管理与团队协作** - 了解候选人的项目管理经验,如何协调团队工作,...

    13个ChatGPT的用法

    2. **编程指导**:对于编程初学者或开发者,ChatGPT可以解释编程概念,提供代码示例,帮助解决编程问题,甚至进行代码审查和优化建议。 3. **语言翻译**:利用其强大的自然语言处理能力,ChatGPT可以实现多语言之间...

    Git-1.8.0-preview20121022.exe

    4. 历史记录:Git提供了强大的历史浏览功能,可以查看任何文件或目录在历史中的变化,甚至通过交互式界面进行代码审查。 5. 版本回溯:如果出现问题,开发者可以轻松回退到之前的版本,而不会丢失任何工作。 6. ...

    mindnode 2.5.7,不闪退

    开发者通过深入的代码审查和测试,确保了新版本的稳定性,减少了用户的困扰,增强了用户对软件的信任。 总的来说,MindNode 2.5.7 是一个集易用性、功能性与稳定性于一身的思维导图应用。无论是个人的头脑风暴,...

    小学二年级班主任和少先队工作总结.pdf

    在IT团队中,这可能包括代码审查制度、项目进度管理制度、质量控制标准等。如同班主任设定的值日制度,规定和执行标准能够提升团队效率,培养团队成员的责任感。 3. **激励与反馈机制**:积极表扬和适度的惩罚可以...

    Android插件

    查找bug的插件,Android Studio也提供了代码审查的功能(Analyze-Inspect Code…) 9.ADB WIFI 使用wifi无线调试你的app,无需root权限 也可参考以下文章: Android wifi无线调试App新玩法ADB WIFI 10....

    程序员管理项目综合系统

    这包括代码审查、自动化测试和持续集成,以确保软件质量。系统可能集成了一些自动化测试框架,支持单元测试、集成测试和性能测试。 最后,报告和分析功能有助于管理者评估项目的健康状况。这可能包括时间线报告、...

    ChatGPT提示模式及用法.zip

    5. **代码审查**:开发者可以使用ChatGPT检查代码,查找潜在错误,或者寻求优化代码的建议。 6. **心理咨询**:虽然不能替代专业心理咨询服务,但ChatGPT可以作为倾诉对象,提供一般性的心理支持和建议。 7. **...

    团队执行力8703158931.pptx

    实施严格的代码审查、测试和质量保证过程,确保交付的产品或服务满足预期的标准。 8. **品牌忠诚度与团队凝聚力**:老年群体的品牌忠诚度较高,IT团队也需要培养团队的忠诚度和凝聚力。这包括建立共享的团队文化,...

Global site tag (gtag.js) - Google Analytics