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

    文章

    956

    浏览量

    31005
  • BUG
    BUG
    +关注

    关注

    0

    文章

    156

    浏览量

    16307

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深度探索OVP过压保护芯片:电路设计、引脚与PCB应用精髓

    时,我们是怎么理解它是怎么用的?就是当他电压过大,然后就切断。上面写着不想的输入电压过高,我们就给他设定一个保护阀值,当电压超过我设置的阀值时,它就断开输出保护后面的电路,然后恢复
    发表于 03-12 14:25

    OVP过压保护芯片原理详解及电路设计应用指南

    ,充电宝,等等USB输入充电口和输出高电压隔离保护电路。 主要是在讲一个叫OVP过压保护芯片跟电路的讲解,比如在当我们听到这个词时我们是怎么理解它是怎么用的?就是当他电压过大,然后就切断。上面写着不想
    发表于 03-12 10:41

    别再忽视充电芯片!HT4056H的这些保护功能真的很重要

    很多人在设计便携设备时,往往把注意力放在主控芯片上,却忽视充电管理的重要性。HT4056H除了基本的恒流恒压充电功能,还内置欠压闭锁、电池反接保护、温度监控等多重安全机制。TDFN2×2封装让它能轻松塞进各种小设备里,40V
    的头像 发表于 02-25 11:42 481次阅读
    别再忽视充电芯片<b class='flag-5'>了</b>!HT4056H的这些<b class='flag-5'>保护</b>功能真的很重要

    比斯特锂电池保护板测试机覆盖保护板各项功能与耐久性测试

    深圳比斯特自动化设备有限公司凭借深厚的技术积累和行业洞察,研发出新一代锂电池保护板测试机,通过覆盖保护板各项功能测试与耐久性验证,为锂电池行业提供可靠的质量保障解决方案。
    的头像 发表于 02-06 16:41 1126次阅读
    比斯特锂电池<b class='flag-5'>保护</b>板测试机覆盖<b class='flag-5'>保护</b>板各项功能与耐久性测试

    比斯特锂电池保护板测试仪实现保护板全流程质量管控

    在新能源汽车、储能系统、消费电子等领域的爆发式增长中,锂电池保护板作为电池的安全防线,其性能可靠性直接决定终端产品的安全性与使用寿命。深圳比斯特自动化设备有限公司推出的锂电池保护板测试仪,凭借其出色的技术优势,构建了覆盖研发验
    的头像 发表于 01-03 16:29 926次阅读
    比斯特锂电池<b class='flag-5'>保护</b>板测试仪实现<b class='flag-5'>保护</b>板全流程<b class='flag-5'>质量</b>管控

    大理的AI野心藏不住了——风花雪月中千名程序员探讨人工智能

    2025 年12月4日至6日第二届CCF程序员大会暨大理人工智能与应用国际开发者大会在大理圆满落幕。
    的头像 发表于 12-24 17:45 892次阅读
    大理的AI野心藏不住了——风花雪月中千名<b class='flag-5'>程序员</b>探讨人工智能

    电能质量在线监测装置支持过压过流保护吗?

    电能质量在线监测装置的核心定位是 “监测、记录、分析” 电能质量参数, 不具备直接的过压过流保护执行功能 (即不能主动切断电路、限流或降压);但部分高端型号支持过压过流 “监测告警 + 联动输出
    的头像 发表于 12-17 16:01 1077次阅读
    电能<b class='flag-5'>质量</b>在线监测装置支持过压过流<b class='flag-5'>保护</b>吗?

    程序员最常见谎言

    了。 28我已经测试过了,这个功能没问题,可以上线。 29别担心,这个问题很快就能解决。 30代码快写完了,已经完成 90% 。 希望大家对程序员多一些容忍以及谅解! 各位程序员
    发表于 12-10 08:24

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

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

    自动保护板检测设备:电子制造质量保障的核心技术支撑|鑫达能

    机制,防止设备因过载、短路或反向连接而损坏。而检测设备则通过系统化的测试流程,验证保护板的各项性能指标是否达到设计标准,从而保障终端产品的质量稳定性。 从技术逻辑看,自动保护板检测设备需构建多维度的测试体系。
    的头像 发表于 11-19 15:02 1095次阅读

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

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

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

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 953次阅读
    奔赴热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