作者 | Srishti Chaudhary

译者 | 苏本如,责编 | 屠敏

头图 | CSDN 下载自东方 IC

出品 | CSDN(ID:CSDNnews)

以下为译文:

人们都以为编写任何程序员都能够阅读和理解的代码是软件开发人员的固有技能。事实上只有20%的程序员具备这种能力。你所写的代码不仅要被机器理解,而且还要被人类理解。在软件开发中,代码质量应该是每个开发人员的重中之重。因此,在整个开发过程中,交付高质量的工作代码应该是每个开发人员的首要目标。

任何傻瓜都能写出计算机能够理解的代码。只有优秀的程序员能够写出人类能够理解的的代码。

— 马丁·福勒(Martin Fowler)

什么是代码质量?

代码质量松散地定义了代码在一个较长的时期内的有用性和可维护性。更正式一点来说,代码质量由一组不同的属性和需求组成,而这些属性和需求是由你的业务决定并确定了其重要性。这意味着明天可以丢弃的代码是低质量的代码。相反,那些能够从一个产品传递到另一个产品,能够进一步加以开发,甚至在确定其价值后能够开源的代码是高质量的代码。

所以,一个能被称之为“良好”质量的代码,至少应该符合以下要求

  • 应该能够实现它应该实现的功能。

  • 应该遵循一致的风格。

  • 应该易于理解。

  • 应该有良好的文档。

  • 应该可以测试。

用代码行数来衡量编程的进度,就如同用重量来衡量飞机制造的进度一样。

——比尔·盖茨

为什么要关注代码质量?

让我来给你举个例子。每个人都喜欢读一个好故事。对于一个不懂文学的普通人来说,一个好故事就是一个容易阅读和理解的故事。伟大的作家写的书里面都有引人入胜的故事,它很容易阅读和理解。正如一个作家写出的作品必须易于阅读和理解一样,软件开发人员写出的代码也应该如此。毕竟,从某些方面来看,代码就是开发人员写的故事。

在代码质量上妥协以满足项目的最后期限可能是很诱人的,但是如果你希望你的代码能够长久存活下去,那么必须让你写出的代码满足所有代码质量标准。代码的质量决定了你是一个什么样的开发人员。可能你是一个非常好的程序员,可以在10分钟内编写出100行代码,但是你需要从可维护性的角度来构思你的代码。你能确保维护这个项目的人或你的同事理解你天才的想法吗?

此外,高质量的代码可以加快软件的长期开发速度,因为它们可以被重用,开发人员不必花那么多时间来修复旧的错误和完善代码。高质量的代码还能够使得新的项目成员更容易加入项目。所有这些反过来又可以降低技术债务。

资源来源:https://xkcd.com/1513/?ref=hackernoon.com

如何提高代码质量?

既然我们已经确信代码质量是软件开发不可或缺的一部分,我相信你一定想知道如何提高代码质量?因此,我在下面列出了一些可以改进代码质量的方法:

  • 建立版本控制和代码评审机制。

  • 遵循持续集成流程。

  • 制定并遵循编码规范。

  • 运行测试。

  • 分析错误。

  • 衡量代码质量。

我相信上面这些看起来像是行业黑话的混合。所以这里我提供了一篇很棒的文章来帮助你理解这些要点:https://medium.com/better-programming/things-that-you-can-do-to-improve-code-quality-c746c30e7521?ref=hackernoon.com。

这里是CISQ软件质量标准化联盟关于代码质量标准的一篇文章:http://it-cisq.org/standards/。

如果你像我一样是一个渴求知识的读者,并且对任何事情都信任书本的话,你可能会想看一看罗伯特·马丁(“鲍勃叔叔”)写的这本书,书名叫做《代码整洁之道:敏捷软件工艺手册》。

图源:https://www.osnews.com/story/19266/wtfsm/?ref=hackernoon.com

感谢你的阅读。

原文:https://hackernoon.com/the-importance-of-code-quality-explained-de4i3wdi

本文为 CSDN 翻译,转载请注明来源出处。

更多精彩推荐
☞Facebook 公司:如何清除 960 万句“脏话”?
☞Linux 之父怒删工程师提交的补丁,称“太蠢了”网友:怼得好!
☞张一鸣是如何练就字节跳动的
☞性能超越最新序列推荐模型,华为诺亚方舟提出记忆增强的图神经网络
☞DevOps 在移动应用程序开发中扮演什么角色?
☞稳定币经济:十大稳定币简史
你点的每个“在看”,我都认真当成了喜欢

程序员为什么要关注代码质量?相关推荐

  1. 看国外女神级程序员,直播写代码一年的感悟

    我第一次直播写代码是在去年七月份.我想要直播一下我在业余时间内为开源项目领域所做的工作,尽管在youtube上的大部分直播都是关于游戏的.我比较擅长于NodeJS的硬件库方面的工作(尽管大部分项目都是 ...

  2. 看外国女程序员如何直播写代码

    我第一次直播写代码是在去年七月份.想要直播一下我在业余时间内为开源项目领域所做的工作,尽管在youtube上的大部分直播都是关于游戏的.我比较擅长于NodeJS的硬件库方面的工作(尽管大部分项目都是自 ...

  3. 支付宝程序员眼中的极致代码和卓越程序员是什么样的?

    "双十一"前夕,支付宝BASIC College举办了一场名为"超级Ma力大赛"的活动.这是一场只用代码说话的竞赛,共有数千名支付宝的工程师参加,程序员和程序媛 ...

  4. laravel改代码没变化_菜鸡程序员是如何写代码的?

    每个程序员都要历经从菜鸡到大牛过程蜕变胡过程.当初大家起点都差不多,工作多年后,有些人依然停留在菜鸡,有些人却已成为大牛,所有的事情,都是一点一滴习惯养成.让我们看看菜鸡程序员是如何写代码的?有可能找 ...

  5. 某程序员在网吧敲代码,出类拔萃,网友:为何我被打的却是我

    相信现在很多年轻人的娱乐场所都是网吧,并且绝大多数的人去网吧都是为了打游戏,很少有去学习的,但是伟大的程序员就不一样了,做什么事都是出类拔萃,引人注目,这里就有一名程序员在网吧敲代码,从打游戏的这群人 ...

  6. 公司停电,程序员去网吧写代码;iPhone 14将于北京时间9月8日发布;GitLab修复一个关键远程代码执行漏洞|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  7. 简直无语,台湾省停电后,竟要求程序员用纸笔手写代码

    大家好,我是校长. 今天周末,咱们聊个好玩的事情,放松娱乐一下. 3 月 3 日 9 点,台湾省发生大范围无预警停电事件.据说,此次停电事故造成全台湾停电户数共计 549 万户.有台湾当地媒体现场探访 ...

  8. 公司停电,程序员去网吧写代码;iPhone 14将于北京时间9月8日发布;GitLab修复一个关键远程代码执行漏洞|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  9. 一个程序员只要会撸代码就可以了?

    一个程序员只要会撸代码就可以了?这样是不是职业生涯会很短暂?搞不好上下级关系,处理不好同事间的协同工作,即便有很强的硬核实力,也许仍旧到达不了职业的顶端. 也许你的职业是从撸代码开始,但最理想的状态不 ...

最新文章

  1. python的TCP编程
  2. 如何用html语言定位img,html经常使用标签(图像标签img,连接标签a,锚点定位,及路径)...
  3. Android--SlidingDrawer的使用介绍
  4. jQuery获取iframe的document对象的方法
  5. 复杂XML的解析及组装
  6. OpenCv学习笔记(二)—cv Mat学习
  7. MySQL于ON DUPLICATE KEY UPDATE采用
  8. 信息学奥赛一本通(1108:向量点积计算)
  9. android 动态生成直线,Android使用自定义view在指定时间内匀速画一条直线的实例代码...
  10. 消防信号二总线有没电压_杭后旗医院消防消防设备电源原理
  11. docker快速安装nginx以及实现反向代理(上)
  12. office 2019 kms
  13. md5验证文件完整性
  14. 域名泛解析,二级域名转向问题- -完美解决
  15. 隐私政策-第三方SDK汇总
  16. python利器app可以运行python嘛_python利器app_python利器安卓版v3.0
  17. 【机器学习】阿里云天池竞赛——工业蒸汽量预测(1)
  18. [46]python画出心形图
  19. 店盈通带你看拼多多开店怎样让排名靠前?
  20. 抓取猫眼电影实时数据

热门文章

  1. 玩转spring boot——国际化
  2. 排版小知识 1.针对某个对象对齐
  3. django-admin
  4. (转)Altera的几个常用的Synthesis attributes
  5. PaddlePaddle中数据的基本操作
  6. 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·006【事务】
  7. [论文阅读] An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
  8. java构造函数_Java开发人员也会犯的十大错误
  9. 将多张图片转为avi视频,再转为h264文件
  10. rust笔记13 闭包