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

    文章

    955

    浏览量

    30786
  • BUG
    BUG
    +关注

    关注

    0

    文章

    156

    浏览量

    16225

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    解析复合型热敏电阻如何保护电路

    )+ 复合型PTC + TVS管” 三级防护架构已成为高端标配。其中,复合型PTC居中,扮演着承上启下的关键角色:协助GDT退耦,确保各级顺序动作,又通过限流保护后级的精密TVS和通讯芯片。其自恢复
    发表于 12-01 16:53

    eFuse IC的过流保护和短路保护功能

    大家好!欢迎回到芝识课堂eFuse IC系列的第三讲。在前两期我们了解了eFuse的基础概念和与传统保险丝的对比,今天我们将深入的两大核心保护功能——过流保护(OCP)和短路保护(S
    的头像 发表于 11-11 11:45 3753次阅读
    eFuse IC的过流<b class='flag-5'>保护</b>和短路<b class='flag-5'>保护</b>功能

    奔赴热AI,码力全开!Talkweb House@1024程序员日系列活动圆满收官

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 426次阅读
    奔赴热AI,码力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    PY32F003解除读保护,实在很困难

    用STM32 ST-LINK Utility重写选项字再进行全擦除,以失败告终。 有网友说可以用J-link,但经过测试,也是以失败告终! 看起来,这py32想解除读保护,只能通过厂家提供的工具。的确很不适合我们玩。 20
    发表于 10-12 17:55

    开关电源安全保护电路:浪涌保护、过流保护、过压保护

    功耗.R2 仅在开机瞬间起作用. 用晶闸管作启动限流保护安全可靠, 但电路比较复杂些, 从电路成本和电路简捷等角度来说用温控电阻作启动限流保护, 经济又简单更安全可靠, 如图3。
    发表于 05-20 14:19

    未知逆变器保护板,锂电池保护

    也是的B+跟红色的输出线是相通的,黑色线不相通这个保护板弄得我都不会接了,平常的保护板,我是会的,这个逆变器跟这个控制板上应该还有一个6im连接线,暂时没有,我不知道六根针的叫什么头来着,随便写了,还有一个大点的四针的插口,
    发表于 04-27 21:04

    Gemini Vision + Raspberry Pi 化身“数字导盲犬”?

    本文讨论一位程序员利用树莓派、摄像头、Gemini和Python构建PeregrineEye设备,使其成为“数字导盲犬”为视障者服务的项目经历,包括项目灵感、功能、构建过程、遇到的挑
    的头像 发表于 03-25 09:20 1694次阅读
    Gemini Vision + Raspberry Pi 化身“数字导盲犬”?

    电弧光保护系统在35KV及以下开关柜保护中的应用分析

    指出了电弧光产生的因素及危害,以光电式电弧光保护为例介绍电弧光保护系统的组成及特点,结合实际工程应用分析电弧光保护的动作逻辑及故障时保护
    的头像 发表于 03-14 11:03 957次阅读
    电弧光<b class='flag-5'>保护</b>系统在35KV及以下开关柜<b class='flag-5'>保护</b>中的应用分析

    STM32H533芯片设置保护如何解决?

    我下载STM32H533u3000FLASH下载之后,芯片进入了读保护状态,现在在系统管理里面可以看到u3000ST-LINKV3,但是在KEIL中找不到ST-LINKV3 ;; 尝试使用串口下载,出现如下问题;; 2 333
    发表于 03-11 07:31

    CAN总线的电路保护器件,通过二极管阵列的工作原理实现对CAN总线的高效保护

    CAN总线的电路保护器件,通过二极管阵列的工作原理实现对CAN总线的高效保护具有高速响应、低电流泄露、低电压降和高温工作的特点,适用于汽车和工业控制系统中的CAN总线
    的头像 发表于 03-03 13:26 879次阅读
    CAN总线的电路<b class='flag-5'>保护</b>器件,通过二极管阵列的工作原理实现<b class='flag-5'>了</b>对CAN总线的高效<b class='flag-5'>保护</b>

    阿里云升级通义灵码AI程序员,全面上线

    近日,阿里云宣布其备受瞩目的通义灵码AI程序员已正式全面上线,为开发者带来更为强大和便捷的编程辅助工具。 此次上线的通义灵码AI程序员,在功能上实现全面升级。现在,支持VS Cod
    的头像 发表于 01-09 11:16 956次阅读

    快来“一起鸿蒙”!体验更出色,智慧再升级

    演员们巧妙展示原生鸿蒙的创新功能——从跨设备协作到隐私保护,从流畅体验到智能互联,甚至还以轻松诙谐的方式为程序员们介绍鸿蒙开发的机会,原生鸿蒙正在给我们带来全新的智能生活体验。幽默笑声与科技创新并行,这不
    的头像 发表于 12-25 14:45 625次阅读
    快来“一起鸿蒙<b class='flag-5'>吧</b>”!体验更出色,智慧再升级

    TMS320C6000程序员指南

    电子发烧友网站提供《TMS320C6000程序员指南.pdf》资料免费下载
    发表于 12-24 17:19 2次下载
    TMS320C6000<b class='flag-5'>程序员</b>指南

    TMS320C55x DSP CPU程序员参考补充

    电子发烧友网站提供《TMS320C55x DSP CPU程序员参考补充.pdf》资料免费下载
    发表于 12-21 11:36 3次下载
    TMS320C55x DSP CPU<b class='flag-5'>程序员</b>参考补充

    UCD3138A64/UCD3138128程序员手册

    电子发烧友网站提供《UCD3138A64/UCD3138128程序员手册.pdf》资料免费下载
    发表于 12-09 14:42 1次下载
    UCD3138A64/UCD3138128<b class='flag-5'>程序员</b>手册