所有好的软件代码的6个共同点

本文翻译自javaworld.com,英文原文链接https://www.javaworld.com/article/2986341/6-things-all-good-software-code-has-in-common.html?upd=1556447989020

现在世界上有很多很多的代码;让人惊讶的是,仅仅谷歌自己的存储库中就有超过20亿行代码。但是并不是所有的代码都是以相同的方式创建。软件开发者通常对于怎么编写一些好的源代码有者很大的偏好。

为了找到使一些软件背后的代码比其它软件更好的原因,我咨询了一些资历较老的软件开发者。我还浏览了一些技术论坛,看看哪些特性是其他程序员期望的或者是他们在编码必须使用的。
基于这些,下面是6个被普遍认同的好的源代码特征。

1.它是易读的

开发者似乎同意代码的可读性是它最重要的特征之一。编写的代码的方式如果可以让其他的开发者只需要花费少量的时间和精力就可以理解,就会被认为是一流的。

’我觉得如果我不能在五分钟之内理解作者的想法,那么这个作者的编码就是不合格的‘,一位高级开发工程师在LionBridge上说。’电脑不会关心变量名和行间距但是人会。代码只要编写一次但是却会被读超过上百次。使用有意义的变量名并且注入空格将会提高代码的可读性并且使代码变得更好。

一位超过10年开发经验的匿名web应用开发者也告诉我,编写好的代码意味着,‘保持一致的编码风格(合适的间距,缩进)。‘他也强调了选择合适的变量名的重要性。

’尽快换行,经常换行‘是Gogo高级应用开发师Neil Best的个人风格。’这可能是个人的风格偏好,但是我提高代码高度而不是宽度,不是为了扩充我的行数而是为了提高易读性。‘他告诉我,’如果一个方法有两个元素,那就把它们放在两行里。如果一个算法表达式有很多项,那就给他们每人一行。你的解释器可能会要求你去使用多余的操作符,但这是值得的。‘

简单的说,更加可读也就是更加可理解让每个人的生活变得轻松。

’人们将更快的发现它并理解他,应用更加快速的发展,’ Glennular在StackOverflow评论。或者是Stack Exchange用户 mojuba所说,‘真的没有比你可以更快的理解代码要好的标准了。’

2.注释很好

除了好的格式和命名,注释也可以让代码最终很容易被理解。但是不只是一些注释,Burnham指出,‘我不需要注释告诉我一个for循环做了什么,我需要注释告诉我为什么要写这段代码,’他还说,‘我认为好的代码用注释去解释作者写这段代码时的想法。’

正如Best所说,好的注释不仅仅可以帮助那些不得不去阅读你的代码的人,它也可以帮助你。‘善待未来的你吧,那个对你此刻的想法没有任何记忆的你,‘他还说,’尽管之后可能只有你自己回去查看或者修改你的代码,你也可以通过选择有意义的名字和增加提示性的注释来把这件事情变得更加简单。

一位高级软件开发工程师Kevin Moylan在Genuine Interactive上将它描述的更加简单,他说’注释很强大‘。

3.它是简单的

一段源代码可能最终会做复杂的事情,但是开发者常说,最好的代码通常是简单的。好的开发者知道如何在完成工作的前提下避免代码变得过于复杂。

Moylan发email向我解释说,“每一段代码的应该只做一个工作,将之做到足够好,并且让下一段代码去做另一件工作。最简单的解决方式就是最好的解决方式。”

我交流过的一位匿名Web开发者强调,“复制太多代码。”他也介绍,“简短定义的方法可以很好的完成一项工作。”引用一个1000行代码实现的方法,这简直像是在管理一个噩梦。

Otávio Décio 在StackOverflow上回应说,“每个方法只做一件事情。”,mhomde 也建议Hacker News说,“没有大量的类或者拥有无数目的的代码。每个抽象层都足够简单,以便完整的记住。”

Burnham也强调了简单的重要性,并指出,“在编写代码的时候我倾向于从Thoreau借用:简化,再简化,用尽一切手段。我做的还不够。”,他还说好的代码不仅仅是简单,还有懒惰。“好的代码只做最少量的工作。”他告诉我,”我看到过很多的代码完成了好多的工作,但是当进行简单的测试的时候他们却做不好了。“

最后,多数开发者相信保持简单可以最终做出更好的软件,就像QuoraNeville Kuyt说的那样,代码复杂性和bug数量之间存在这已经证实的通知相关性。”

4.它是灵活的

现有代码的功能在未来经常需要被改变,扩展或者是复用。这也是为什么Burnham建议,“好的软件需要同时满足今天的要求和明天的期望,“显而易见的是,预测未来是不可能的,但是他指出,”我可以编写足够灵活的代码,后续只需要做少量的改变就可以满足未来的需求。“

一位匿名web开发者告诉我,”好的代码就是,如果未来有开发者要去扩展或者改变某些部分的代码时不会影响到其他的代码。“

Kristopher Johnson 在StackOverflow写道,”你不会知道一段代码究竟有多好除非你要去改变它。“

Stack Exchange用户 Michael Riley写道,好的代码最终就是,”当一个新的开发者需要去对你6个月前写的系统去做一些改变时他不需要去问你哪怕一个问题。“

5.它是可维护的

不管一段代码写得有多好,它一定会有一些bug。”显然一些人可以修复它。“Moylan告诉我,”把这(修复bug)变得简单些,为了其他人,也为了你。“

可维护性是好代码的关键属性,”所有的代码都可以被维护,只不过有的维护起来更加困难而已。“gbn 在Stack Exchange写道。

这位匿名开发者告诉我,避免去做一些”硬编码可以改变的值(url,密钥,数据库密码等),这会时未来的维护变得简单。

“正是可维护性造成了工作代码和好代码之间的不同。”

6.完成业务要求

最后,一个看起来显而易见的特征应该仍然需要被说明,“他需要完成业务功能”。Moylan也支持说,“最重要的是,他需要完成它被设计时所需要的功能。”

Burnham简单的总结说,“不管代码看起来有多好,如果不能完成业务功能,它就不是好的代码。”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值