zoukankan      html  css  js  c++  java
  • 如何编写高质量代码

    更多文章

     

    • 什么是高质量代码?

      高质量代码具有以下几个特点:

      • 可读性高
      • 结构清晰
      • 可扩展(方便维护)
      • 代码风格统一
      • 低复杂性
      • 简练

      编写高质量代码主要遵循以下几点:

      代码规范

      代码规范的好处

      • 规范的代码可以促进团队合作
      • 规范的代码可以降低维护成本
      • 规范的代码有助于代码审查
      • 养成代码规范的习惯,有助于程序员自身的成长

      每个程序员最烦的就是修改别人的代码,无论代码好坏。因为第一眼看上去没有熟悉感,下意识就会排斥。
      所以当团队的成员都严格按照代码规范来写代码时,可以保证每个人的代码看起来都像是一个人写的,看别人的代码就像是在看自己的代码。
      重要的是我们能够认识到规范的重要性,并坚持规范的开发习惯。

      接下来,你要做的事就是找一份良好的代码规范并一直坚持使用,直到形成习惯。

      前端代码规范推荐


      提前设计

      在接到一个需求时,千万不要看完需求就马上写代码,以免造成返工或误解需求的现象。在这个阶段一定要多问,看完需求后,在脑里过一下,把可能会涉及的情况都要问清楚。
      一名好的程序员不仅仅是一名程序员,还要懂需求、业务。
      在把情况都了解清楚后,如果项目规模不是很大,就可以开始写大纲了。
      例如这样:

      class Car {
        run(){},
        stop(){},
      }

      然后再开始实现细节。

      如果项目规模比较大,可以通过思维导图或其他工具写一个项目的原型(当然这种活一般都会由项目经理或产品来负责),再细分到不同的程序模块来一一实现。

      “磨刀不误砍柴功”,千万不要为了求快而直接写代码。

      具体流程

      • 阅读文档,分析需求
      • 画原型图或草图(方便自己理解整体架构)
      • 写大纲或伪代码(如果项目比较大还要细分模块)
      • 实现细节

      重构

      没有程序员能一次就写出完美的代码,而是需要通过不停的重构来完善代码,提升质量。
      重构就是在不改变软件系统外部行为的前提下,改善它的内部结构。
      重构可以使软件更容易地被修改和被理解。通过不断地改进软件设计以达到简单设计的目标,减少由于设计与业务的不匹配带来的架构与设计腐化。

      • 重构能改善软件设计
      • 重构使软件更易理解
      • 重构有助于找到Bug
      • 重构有助于提高自我编程能力
      • 重构有助于加深理解代码
      • 重构能适应需求变更

      推荐阅读:重构


      代码要求

      • 不要编写大段代码
      • 重复代码封装成函数
      • 在编写代码的过程中养成不断重构的习惯
      • 添加必要的注释
      • 留下可扩展的空间

      测试

      无论是单元测试、自测或者是其它测试,最重要的目的都是为了找出尽可能多的BUG,保证产品的质量。
      好的东西都是迭代改出来的,比如好的产品,好的架构,代码也不例外,写的好的代码都是经历了作者不停地 review 和修改。
      测试的过程本身就是一个自我 code review 的过程,在这个过程中,可以发现一些设计上的问题(比如代码设计的不可测试),代码编写方面的问题(比如一些边界条件的处理不当)等,做到及时发现及时修正,不需要等到测试阶段甚至上线之后再发现再修改。


      自我要求

      个人认为这一点是最重要的,好的程序员都是有强迫症的,他们会严格要求自己,通过不断的学习来提升自己的技术最终成为大神级别的程序员。
      如果你不能以高标准来要求自己,即使你看再多的如何写出高质量代码,懂再多的代码规范,也是没有用,最终还是会写出低质量代码。
      但是,提高自我要求是一种改变,一般来说,改变都不是一蹴而就的,需要一步一步来。所以,改变最好从小事做起,慢慢积累,最终蜕变。
      建议先从代码规范开始,熟悉代码规范,遵循规范写代码,直到成为习惯,然后再学习其它方法,最终写出高质量代码。


      参考资料

  • 相关阅读:
    XX宝面试题——css部分
    XX宝面试题——JS部分
    Struts、JSTL标签库的基本使用方法
    JavaScript:学习笔记(10)——XMLHttpRequest对象
    SpringBoot学习笔记:单元测试
    SpringMVC:学习笔记(11)——依赖注入与@Autowired
    SpringBoot学习笔记:动态数据源切换
    Django:学习笔记(9)——视图
    Django RF:学习笔记(8)——快速开始
    CNN学习笔记:批标准化
  • 原文地址:https://www.cnblogs.com/woai3c/p/10245772.html
Copyright © 2011-2022 走看看