对于高质量代码的认知

                                                                                  对于高质量代码的认知

 什么是高质量的代码?这是我作为一个程序员始终思考的问题。它应该包含哪方面?怎样评价写代码的质量?

在网上查阅了相关的资料对于代码的质量的评价,但是没有找到我想要的那种高度概括和总结的语言。能够一句话的说明高质量的代码。

   我个人的见解:
        程序面向的对象有两个:人类和机器。那么对于代码的评价就需要从两个角度去评价了,一个是从人类的角度和从机器执行的角度来评价。
    首先来看从机器的角度:
          原因机器是相对人而言是客观的,不像人类那样具有主观参与的。机器的只关心一点,你写的代码能不能在我上面运行。能正常的运行就是ok的,机器不会关心其他的。也有人会说代码的执行效率,时间复杂度,耦合性等等都不是针对机器而言的,因为这些评价的标准和方式都是人为在规定的。
    所以在代码质量的评价重点是放在人类上。这里是指你的程序写出来后人怎么去看待你的代码?
    人类的角度:
      评价代码的标准中最为基础和重要的就是可阅读性。因为你写的代码别人都看不懂,你写它干嘛?也是因为能看懂你的代码才会罗列出其他的评价的参数。 在此种角度上看即使机器能运行也是没有任何价值的,因为那样会失去与其他人的交流和合作的机会。只有当别人看懂了你的代码才能对你的代码进行评价,才能对你的代码与别人的代码进行比较,才能进一步的去分析你的代码的其他参数。
      其他的参数有:(参照网上的资料)
        1.编码的标准 2.代码的重复 3.代码的覆盖率 4.代码的依赖项分析  5.代码的复杂度分析
      当我看到这样的代码的评价标准时,我的想法是:可阅读性与这五个参数的关系,可阅读性是凌驾于这五者之上的。当这五个参数都做的很好时你的代码的阅读性就提升了。 对于这五者之间的关系也是相互影响和促进的,但是最终的体现都是你的代码具有良好的可阅读性。对于上面五者理解就是编码要规范化和简洁;要有测试代码;各模块之间要降低耦合,依赖。这里我把代码的复杂度分析归并到了代码的简洁上了。
       以上的一些是我在网上搜的资料,如果感兴趣可以自己再搜一搜,我不想搬砖,所以这里更像说说对自己在实际的编码中的影响,即我要实际行动的是:
       
       1.阅读现在所做项目的源码,阅读源码干什么?关注源码的什么?
          先了解这段代码是干什么的?---即功能是什么?深入为什么这样写?换一种方式写呢?我能不能在自己的代码中学习和使用这种方式呢?
      这是一种研究的方式,由了解到理解再到应用的层次不断的提升。最终的目的是对于我的编码的影响。

       2.在写代码之前,把自己设计的思路关键性的地方记录下来,为什么这么写是心血来潮,还是在尝试,还是压根就不知道自己在干啥?
          这样做的目的是在接下来的一项重要的任务中应用

       3.查看自己写过的代码,并尝试能不能其他的方式实现相同的功能,为什么要选择这种方式,这是在研究。
         这中间还有一个就是保留自己写的代码,自己写过的代码是每个程序员的最为重要的,没有之一,是自己价值的体现和最为昂贵的财富。

       4.基础很重要。怎么会突然冷不丁的来了这个。这里的基础就是指最为简单的Java基础。
         IO、集合、面向对象、面向对象的原则、线程、多态、重载等等这些最为基础的东西,是Java程序员的基石。
     当然我并不会拿着一本Java书在一直看呀背呀,而是选择大量的用问题/题目来练习,在这期间去体会和领悟。
  总结:
    1.对于高质量的代码,我的个人理解是这样一句话:
       机器阶段是机器能运行的代码,变成人的初级阶段机器能运行人能看懂的代码,再变成机器能运行人能理解的代码,再变成机器能运行人能应用的代码,再变成机器能运行人能研究的代码。
     对于这一点自己的理解是为什么要有个机器阶段,我是想说,你具备了和机器进行交流的能力,计算机程序语言的本质就是与机器进行交流,这一点是语言的本质,你只能写出机器能运行别人看不懂的代码你就处于机器阶段。深层次的发展就是你的代码能和别人的代码进行合作交流,到了更深层次你的代码是可以拿来用拿来研究的高质量代码。
    2.改变。之所以花费时间来探究什么是高质量的代码,是因为我要写出质量比现在要高的代码,落于实际。
      

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值