0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

快快建好质量墙吧,它既保护了程序员,也保护了项目

华为开发者社区 来源:华为开发者社区 作者:华为开发者社区 2020-09-23 13:52 次阅读

导语

本文为《Quality Wall to Protect Developers Against Stress and Fear》文章的内容摘要,1200字带你领略质量墙的魅力,完整版本,敬请期待。

作者:Yegor Bugayenko译者:徐毅前言

程序员到底应该为所写软件的质量担负多大的责任?有人认为程序员应该为产品负责,也有人认为程序员的主要责任是交付速度,项目质量是项目要去考虑的问题。

程序员编写软件的过程中,会创造有缺陷代码或“Bug”。软件项目的主要目标之一就是在提升质量的同时减少Bug数量。手工测试和同行评审等常用方法都是等代码里已经出现了Bug才去寻找,过于被动。采取预防措施提升代码质量的代价更低,也更为人所青睐。

“招募更好的程序员”是最为流行的一种方法,我们都认为更专业、更昂贵和更有才干的程序员能够写出没有错误的代码。然而,真相并非如此。正如Kaner等人所言,“程序员相互之间存在着巨大的差异,但没有谁的工作是不会出错的”。

责备那些产出了Bug的程序员们,是另一种同样备受质疑的方法。其负面影响广为人知,弊远大于利,导致程序员们压力越来越大、工作越来越慢、抛出更多代码,被称之为“恐惧驱动开发”。但正如Evans知名博文“恐惧让你成为更糟的程序员”所言,对软件开发来说,恐惧只会让我们事与愿违。

打造“质量墙”

所有程序员都会犯错,但他们不应该因此而被责罚。该如何解开迷局呢?该怎么做才能够减少代码缺陷、同时允许程序员随意犯错呢?办法是有的。别为了代码质量责怪他们,让项目去关注质量、让程序员能够无所畏惧地全速编码,效果好得不是一点点。办法就是打造一面强大的、自动化的“质量墙”,守护其代码基。墙越强大,程序员就越觉得安全。

首先,他们将在自己的“特性分支”上修改代码和犯错误;其次,向主代码基提出合并代码变更,建议采取拉取请求的方式;第三,质量墙将验证这些变更,如果发现任何新错误就会拒绝合入;最后,只要作者移除掉所有错误,质量墙就会合入这些变更。

如何构建这堵“墙”

软件项目可以采取如下一些技术性和组织性的措施来构建这样的质量墙,并保护源代码不被程序员们所破坏。

自动化构建

单元测试和集成测试

强制覆盖率阈值

变异覆盖率阈值

强制静态分析

多步骤代码评审

只读主干分支

“质量墙”让程序员快速交付,保护项目

让程序员在合并前备受折磨的障碍还有很多。Nygard在他的《发布!软件的设计与部署》书中给出了建议。测试失败?拒绝。Lint有告警?拒绝。集成测试导致构建失败?拒绝。换句话说,拒绝变更的动作越快速越便宜,给项目带来的好处也越大。问题是,如果流程和代码仓有这么多限制,一个程序员怎么做到更快速地交付呢?如果质量墙已经罩住整个项目,那么如下这些技巧,不管谁用都能受益:

提交更小变更

以退为进

别害怕搞破坏

隔离变更

如果项目和程序员之间存在利益冲突,那就能创造出高质量的产品并迅速发展。项目可以强化质量,而程序员也可以提交代码向前进、快速频繁地完成变更。但不幸的是,大多数项目都与之背道而驰,他们将质量控制权交予程序员,满心期盼程序员们会“不作恶”。而这会导致沮丧、痛苦、对犯错的持久恐惧、长时间的拖延、责备和羞辱。最终,项目及其程序员两败俱伤。

快快建好质量墙吧,它既保护了程序员,也保护了项目。

原文标题:这本书终于有人翻译了!“程序员到底应该为所写软件的质量担负多大责任?”

文章出处:【微信公众号:华为开发者社区】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    931

    浏览量

    29571
  • BUG
    BUG
    +关注

    关注

    0

    文章

    154

    浏览量

    15579

原文标题:这本书终于有人翻译了!“程序员到底应该为所写软件的质量担负多大责任?”

文章出处:【微信号:Huawei_Developer,微信公众号:华为开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32F0设置FALSH写保护后不能下载程序是什么原因导致的?

    开发环境用KEIL5+JLINK进行程序调试,STM32F0根据选项字节进行FALSH写保护后,下次不能再程序下载,现已用STM32 ST-LINK Utility进行解除。能不能在
    发表于 04-18 07:51

    薪资高、青春饭,是不是程序员=青楼?

    花期太短。技术迭代快,年龄大容易失业。 就这几年的互联网环境而言,不管是前端、Java、Android开发等等行业。已经感受到程序员不是太卷就是工作难找,薪资过低。以前高工现在拿着中低程序员薪资
    发表于 03-06 21:32

    感觉我国的程序员前景一片灰暗,是这样吗?

    程序员分为好几等,在现在看来大部分的Android、Java、前端等等开发。已经看不到希望,很多人都在边缘挣扎;刚看到一位Android开发者,过完年回公司就通知被裁;可见每年都会有很多互联网
    发表于 02-20 20:52

    1月18号“纯鸿蒙”千帆启航,程序员预备!

    的用户。从而导致Android、ios等市场减少,开发从业者会逐渐减少。而我们程序员现在最好的办法就是进军“鸿蒙圈”,鸿蒙生态不仅包括鸿蒙应用层,还有鸿蒙生态圈:智能家居、车载、家电、数码、硬件等等开发
    发表于 01-16 22:13

    米哈游启动鸿蒙原生应用开发,给程序员带来了什么信息?

    保障。未来,华为将以AI为核心驱动力,以服务和硬件生态为生态平台,以“1+8+N\"的自研和生态伙伴产品为入口,打造全场景智慧生态。 ​ ​​ 作为程序员的话,是进入鸿蒙开发的最佳时机。大多数
    发表于 01-07 22:25

    【飞腾派4G版免费试用】鸿蒙系统的各种报错,让程序员差点.............

    开源这一块,但是大部分的程序员还是停留在生计问题,有时间有精力投入到给开源添砖加瓦的还是比较少,这或许就是开源与程序员的矛盾。 8、好多指令都缺,用起来完全不习惯,有好多东西需要自己去移植适配,现在我
    发表于 12-13 15:09

    请问变频器为什么没有短路保护?

    短路保护是保证分断短路电流后设备无损。太专业!(可以保护接地故障) 变频器为什么没有短路保护?成本问题?元件问题? IGBT测试,电压很小,电流
    发表于 11-22 06:09

    STM32加密问题:怎样预置一段Flash读保护和清除读保护程序

    STM32加密问题:怎样预置一段Flash读保护和清除读保护程序 在STM32加密方案中,为了对芯片进行加密,我们需要加入读保护功能。读保护
    的头像 发表于 10-29 17:24 1291次阅读

    今天程序员节长沙出招 全国首个!长沙为程序员打造“1024街”

    命名为“1024街”。 “1024街”定位为全球首个完全展现程序员技术创新和引领行业发展的人文街道,有华为、湘江实验室、北京大学长沙计算与数字经济研究院、中科曙光、长沙知识产权保护中心等多家企业与机构入驻,是名副其实的程序员街。
    的头像 发表于 10-24 14:29 354次阅读

    移植ARM DHCP服务器版本1程序员指南

    这本书由ARM DHCP服务器服务器软件提供, 假定ARM DHCP服务器移植源可以作为参考, 假设您可以访问程序员的 C 和 ARM 组装语言指南。 本程序员指南是为有经验的内嵌系统程序员
    发表于 08-18 06:46

    霓虹灯程序员指南

    如果您对ARM技术完全陌生,请阅读Cortex-A系列程序员指南,了解有关ARM架构配置文件和一般编程指南的信息。 ·霓虹灯技术是ARM高级单指令多数据(SIMD)扩展的实现。 ·霓虹灯单元是执行
    发表于 08-17 06:32

    ARMv8-A霓虹灯程序员指南

    程序员,如固件、设备驱动程序或android内核开发人员•希望为基于Arm的目标设备优化库或应用程序程序员•非常热衷于Raspberry Pi爱好者本指南涵盖了如何开始使用Neon,
    发表于 08-08 07:25

    ARM系统跟踪Macrocell程序员模型架构规范1.1版

    ARM 系统跟踪大型电池程序员示范建筑规格V1.1 建筑规格
    发表于 08-02 10:11

    61.[程序员小飞]如何在3分钟内安装好数据库MySql和Navicat,简单又易懂

    程序员
    充八万
    发布于 :2023年07月20日 09:16:19