0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

快快建好質(zhì)量墻吧,它既保護(hù)了程序員,也保護(hù)了項(xiàng)目

華為開發(fā)者社區(qū) ? 來源:華為開發(fā)者社區(qū) ? 作者:華為開發(fā)者社區(qū) ? 2020-09-23 13:52 ? 次閱讀

導(dǎo)語

本文為《Quality Wall to Protect Developers Against Stress and Fear》文章的內(nèi)容摘要,1200字帶你領(lǐng)略質(zhì)量墻的魅力,完整版本,敬請期待。

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

程序員到底應(yīng)該為所寫軟件的質(zhì)量擔(dān)負(fù)多大的責(zé)任?有人認(rèn)為程序員應(yīng)該為產(chǎn)品負(fù)責(zé),也有人認(rèn)為程序員的主要責(zé)任是交付速度,項(xiàng)目質(zhì)量是項(xiàng)目要去考慮的問題。

程序員編寫軟件的過程中,會創(chuàng)造有缺陷代碼或“Bug”。軟件項(xiàng)目的主要目標(biāo)之一就是在提升質(zhì)量的同時(shí)減少Bug數(shù)量。手工測試和同行評審等常用方法都是等代碼里已經(jīng)出現(xiàn)了Bug才去尋找,過于被動(dòng)。采取預(yù)防措施提升代碼質(zhì)量的代價(jià)更低,也更為人所青睞。

“招募更好的程序員”是最為流行的一種方法,我們都認(rèn)為更專業(yè)、更昂貴和更有才干的程序員能夠?qū)懗鰶]有錯(cuò)誤的代碼。然而,真相并非如此。正如Kaner等人所言,“程序員相互之間存在著巨大的差異,但沒有誰的工作是不會出錯(cuò)的”。

責(zé)備那些產(chǎn)出了Bug的程序員們,是另一種同樣備受質(zhì)疑的方法。其負(fù)面影響廣為人知,弊遠(yuǎn)大于利,導(dǎo)致程序員們壓力越來越大、工作越來越慢、拋出更多代碼,被稱之為“恐懼驅(qū)動(dòng)開發(fā)”。但正如Evans知名博文“恐懼讓你成為更糟的程序員”所言,對軟件開發(fā)來說,恐懼只會讓我們事與愿違。

打造“質(zhì)量墻”

所有程序員都會犯錯(cuò),但他們不應(yīng)該因此而被責(zé)罰。該如何解開迷局呢?該怎么做才能夠減少代碼缺陷、同時(shí)允許程序員隨意犯錯(cuò)呢?辦法是有的。別為了代碼質(zhì)量責(zé)怪他們,讓項(xiàng)目去關(guān)注質(zhì)量、讓程序員能夠無所畏懼地全速編碼,效果好得不是一點(diǎn)點(diǎn)。辦法就是打造一面強(qiáng)大的、自動(dòng)化的“質(zhì)量墻”,守護(hù)其代碼基。墻越強(qiáng)大,程序員就越覺得安全。

首先,他們將在自己的“特性分支”上修改代碼和犯錯(cuò)誤;其次,向主代碼基提出合并代碼變更,建議采取拉取請求的方式;第三,質(zhì)量墻將驗(yàn)證這些變更,如果發(fā)現(xiàn)任何新錯(cuò)誤就會拒絕合入;最后,只要作者移除掉所有錯(cuò)誤,質(zhì)量墻就會合入這些變更。

如何構(gòu)建這堵“墻”

軟件項(xiàng)目可以采取如下一些技術(shù)性和組織性的措施來構(gòu)建這樣的質(zhì)量墻,并保護(hù)源代碼不被程序員們所破壞。

自動(dòng)化構(gòu)建

單元測試和集成測試

強(qiáng)制覆蓋率閾值

變異覆蓋率閾值

強(qiáng)制靜態(tài)分析

多步驟代碼評審

只讀主干分支

“質(zhì)量墻”讓程序員快速交付,保護(hù)項(xiàng)目

讓程序員在合并前備受折磨的障礙還有很多。Nygard在他的《發(fā)布!軟件的設(shè)計(jì)與部署》書中給出了建議。測試失敗?拒絕。Lint有告警?拒絕。集成測試導(dǎo)致構(gòu)建失???拒絕。換句話說,拒絕變更的動(dòng)作越快速越便宜,給項(xiàng)目帶來的好處也越大。問題是,如果流程和代碼倉有這么多限制,一個(gè)程序員怎么做到更快速地交付呢?如果質(zhì)量墻已經(jīng)罩住整個(gè)項(xiàng)目,那么如下這些技巧,不管誰用都能受益:

提交更小變更

以退為進(jìn)

別害怕搞破壞

隔離變更

如果項(xiàng)目和程序員之間存在利益沖突,那就能創(chuàng)造出高質(zhì)量的產(chǎn)品并迅速發(fā)展。項(xiàng)目可以強(qiáng)化質(zhì)量,而程序員也可以提交代碼向前進(jìn)、快速頻繁地完成變更。但不幸的是,大多數(shù)項(xiàng)目都與之背道而馳,他們將質(zhì)量控制權(quán)交予程序員,滿心期盼程序員們會“不作惡”。而這會導(dǎo)致沮喪、痛苦、對犯錯(cuò)的持久恐懼、長時(shí)間的拖延、責(zé)備和羞辱。最終,項(xiàng)目及其程序員兩敗俱傷。

快快建好質(zhì)量墻吧,它既保護(hù)了程序員,也保護(hù)了項(xiàng)目。

原文標(biāo)題:這本書終于有人翻譯了!“程序員到底應(yīng)該為所寫軟件的質(zhì)量擔(dān)負(fù)多大責(zé)任?”

文章出處:【微信公眾號:華為開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    949

    瀏覽量

    29744
  • BUG
    BUG
    +關(guān)注

    關(guān)注

    0

    文章

    155

    瀏覽量

    15639

原文標(biāo)題:這本書終于有人翻譯了!“程序員到底應(yīng)該為所寫軟件的質(zhì)量擔(dān)負(fù)多大責(zé)任?”

文章出處:【微信號:Huawei_Developer,微信公眾號:華為開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    AI編程工具會不會搶程序員飯碗

    AI編程工具可輔助編程,減少手動(dòng)編碼,提升效率,對程序員有積極影響也有挑戰(zhàn)。程序員需深化技能、拓寬知識應(yīng)對。長遠(yuǎn)看,AI與人類程序員將共生共榮。
    的頭像 發(fā)表于 11-08 10:17 ?39次閱讀

    第五屆長沙·中國1024程序員節(jié)開幕

    據(jù)官方媒體報(bào)道,10月24日;? 第五屆長沙·中國1024程序員節(jié)在湖南湘江新區(qū)開幕;本次中國1024程序員節(jié)以“智能應(yīng)用新生態(tài)”為主題。設(shè)置有岳麓對話、技術(shù)英雄會、主題峰會及賽事、展覽等活動(dòng),一場
    的頭像 發(fā)表于 10-25 15:42 ?130次閱讀

    程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動(dòng)!這不僅是一場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發(fā)表于 07-08 10:38 ?72次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)

    程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動(dòng)!這不僅是一場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發(fā)表于 07-04 09:00 ?67次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

    STM32G0如果只執(zhí)行寫保護(hù)編程時(shí),先擦除選項(xiàng)字節(jié),此時(shí)讀保護(hù)字節(jié)是FF,那是不是就讀保護(hù)生效?

    如果只執(zhí)行寫保護(hù)編程時(shí),先擦除選項(xiàng)字節(jié),此時(shí)讀保護(hù)字節(jié)是FF,那是不是就讀保護(hù)生效?程序再修改為A5,會不會就引起FLASH整塊擦除?不想
    發(fā)表于 05-20 08:17

    STM32F0設(shè)置FALSH寫保護(hù)后不能下載程序是什么原因?qū)е碌模?/a>

    開發(fā)環(huán)境用KEIL5+JLINK進(jìn)行程序調(diào)試,STM32F0根據(jù)選項(xiàng)字節(jié)進(jìn)行FALSH寫保護(hù)后,下次不能再程序下載,現(xiàn)已用STM32 ST-LINK Utility進(jìn)行解除。能不能在
    發(fā)表于 04-18 07:51

    適者生存,程序員最終會流向哪……

    程序員沒有永遠(yuǎn)的護(hù)城河?。【湍壳暗幕ヂ?lián)網(wǎng)大環(huán)境來看,it行業(yè)已經(jīng)是……
    的頭像 發(fā)表于 03-11 17:11 ?370次閱讀
    適者生存,<b class='flag-5'>程序員</b>最終會流向哪……

    薪資高、青春飯,是不是程序員=青樓?

    花期太短。技術(shù)迭代快,年齡大容易失業(yè)。 就這幾年的互聯(lián)網(wǎng)環(huán)境而言,不管是前端、Java、Android開發(fā)等等行業(yè)。已經(jīng)感受到程序員不是太卷就是工作難找,薪資過低。以前高工現(xiàn)在拿著中低程序員薪資
    發(fā)表于 03-06 21:32

    瑞薩Flash程序員V3 發(fā)布說明

    電子發(fā)燒友網(wǎng)站提供《瑞薩Flash程序員V3 發(fā)布說明.pdf》資料免費(fèi)下載
    發(fā)表于 02-19 09:37 ?1次下載
    瑞薩Flash<b class='flag-5'>程序員</b>V3 發(fā)布說明

    2024程序員的未來方向如何走?還看今朝

    這幾年的IT行業(yè)想必大家已經(jīng)感受到了,Android、Java、前端等等程序員都經(jīng)歷大廠……
    的頭像 發(fā)表于 02-02 09:45 ?757次閱讀
    2024<b class='flag-5'>程序員</b>的未來方向如何走?還看今朝

    1月18號“純鴻蒙”千帆啟航,程序員預(yù)備!

    的用戶。從而導(dǎo)致Android、ios等市場減少,開發(fā)從業(yè)者會逐漸減少。而我們程序員現(xiàn)在最好的辦法就是進(jìn)軍“鴻蒙圈”,鴻蒙生態(tài)不僅包括鴻蒙應(yīng)用層,還有鴻蒙生態(tài)圈:智能家居、車載、家電、數(shù)碼、硬件等等開發(fā)
    發(fā)表于 01-16 22:13

    功放保護(hù)怎么消除:解決方法與預(yù)防措施

    功放保護(hù)怎么消除:解決方法與預(yù)防措施 功放保護(hù)是指功放器在工作中受到一些不正常的因素影響,從而觸發(fā)保護(hù)機(jī)制,停止輸出音頻信號。功放器通常會保護(hù)
    的頭像 發(fā)表于 12-29 14:58 ?7170次閱讀

    程序員表白程序

    電子發(fā)燒友網(wǎng)站提供《程序員表白程序.rar》資料免費(fèi)下載
    發(fā)表于 11-21 10:41 ?16次下載
    <b class='flag-5'>程序員</b>表白<b class='flag-5'>程序</b>

    嵌入式程序員應(yīng)知道的幾個(gè)基本問題

    電子發(fā)燒友網(wǎng)站提供《嵌入式程序員應(yīng)知道的幾個(gè)基本問題.pdf》資料免費(fèi)下載
    發(fā)表于 11-20 11:21 ?0次下載
    嵌入式<b class='flag-5'>程序員</b>應(yīng)知道的幾個(gè)基本問題

    智能低代碼洪流涌動(dòng)程序員節(jié),華為云 Astro 觸發(fā) 1024 的乘法效應(yīng)!

    ? 從人工智能至量子計(jì)算,再到最新的云原生技術(shù),越來越多的榮耀被程序員斬獲。今年 1024 程序員節(jié),華為云 Astro 向全民致敬:「低代碼高產(chǎn)出?拓荒數(shù)字化版圖——人人皆是程序員」,為全球工程師
    的頭像 發(fā)表于 11-13 09:39 ?432次閱讀
    智能低代碼洪流涌動(dòng)<b class='flag-5'>程序員</b>節(jié),華為云 Astro 觸發(fā) 1024 的乘法效應(yīng)!