架构师技能5:如何做code review 代码简洁之道

本文探讨了如何进行有效的code review,强调了优秀代码的标准,包括战略、战术和实施层面的考虑。文章阐述了设计层面、实现层面和规范层面的关键点,如设计模式、内聚性、耦合度、封装原则、接口设计和异常处理等。通过具体的重构技巧,指导如何提高代码的可读性、可维护性和可扩展性,强调了如单一职责、开闭原则、DRY原则等设计原则的应用。
摘要由CSDN通过智能技术生成

目前该文只是简单理论的总结,代码简洁之道主要技巧:

1.面向对象设计原则:包括单一职责、开放封闭、依赖倒置、接口分离等。这些原则可以帮助我们设计更好的代码结构,使得代码更易于维护和扩展。

2.利用设计模式:设计模式是一种常见的设计思想,可以帮助我们解决一些经典的软件设计问题。在重构过程中,可以使用一些常用的设计模式,如单例模式、工厂模式、策略模式等,来优化代码结构。

3.深入理解Java语言:代码重构需要深入理解Java语言的特性和机制。例如,Java中的继承、多态、内部类等,都可以用来重新组织和优化代码,写出高效的代码结构。

 设计原则:设计原则:面向对象设计原则详解

 代码重构:坏代码的味道,编写代码20多宗罪

 高效代码:高效代码代码常见的线程安全问题

前言


CodeReview的目的是提升代码质量,尽早发现潜在缺陷与BUG,降低修复成本,同时促进团队内部知识共享,帮助更多人更好地理解系统。

如何做好code review,可以参考谷歌 code review 指南。原文地址: https://google.github.io/eng-practices/review/reviewe

1、code review从大的方面来说:

1、业务层面:业务逻辑是否正确等相关内容。例如

     1)数据库字段的设计是否合理。

     2)业务流程是否按照详细设计的流程走。

     3)业务扩展性,设计是否影响后续业务的拓展。

2、代码层面:是否符合优秀特质。优秀代码--改善代码三部曲https://guisu.blog.csdn.net/article/details/7658644

没有“完美”的代码,只有更好的代码。由于每个团队的code review的方法论或者流程不一样,本文单纯从reviewer的角度来总结如何审查提交者提交的代码是否符合优秀的代码特质,即找出坏味道的代码。

2、坏代码的味道

《重构-改善既有代码的设计》这本书已经罗列来坏代码的味道:编写代码20多宗罪:

3、优秀代码的标准

       能做好code review,前提是reviewer理解什么是更好的代码。这是需要一定具备很强的编程能力,不仅需要熟练运用相关设计,还具备丰富编码实战经验。

       代码质量的评价有很强的主观性,描述代码质量的词汇如可读性、可维护性、灵活、优雅、简洁。这些词汇是从不同的维度去评价代码质量的。其中可读性、可维护性、可扩展性又是提到最多的、最重要的三个评价标准。

我们从战略、战术、实施等角度来考量优秀代码:

 好代码就像 玩笑无需解释。

1)战略上仰望星空,好代码的总体愿景指标是:

  • 代码整洁易读:代码能让人容易阅读、跟踪和理解:代码简单、编码风格一致、代码意图表达明确、恰到好处的注视。
  • 可维护性高:理解和修改代码的难易程度。因素有可理解性、可测试性和可修改性,包括编写和运行的维护性,比如强烈依赖底层系统的服务就不太好维护。
  • 可扩展性强:方便增加新功能。
  • 可靠性高性能:增加新的功能后,对原来的功能没有影响

这些愿景指标都是宽泛笼统,没有具体的衡量指标,可以当做是一种团队内心的愿望,也是作为撸码人的长期指导方向。

如果作为reviewer,只是笼统指出提交者的代码糟糕,可维护性不强等主观性指标,而不能指明问题具体的原因和给出有效改进建议,肯定不是一个合格的reviewer。

以下情况可能证明你写的代码质量不错:

  • 代码写的很聪明,但是又不会过分的聪明
  • 无论在速度上,还是可读性上,你都使用了最佳的算法
  • 类、变量和函数都得到了正确的命名,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hguisu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值