精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何寫出沒有Bug的代碼?

開發 后端
沒有人喜歡bug,bug意味著錯誤、不確定性、加班、交付風險……負面的詞語怎么堆砌都不冗余。隨便找個有過一、兩個項目經驗的開發者,問問他debug的回憶,那氣氛就跟上墳一樣。

[[326688]]

 1947年9月9日,美國海軍準將Grace Hopper在哈佛學院計算機實驗室里使用MarkII和MarkIII計算機進行研究工作。她的團隊跟蹤到MarkII上的一個錯誤,操作人員發現是由于一只飛蛾鉆到了MarkII的繼電器里導致的。

團隊清除了這只飛蛾,一切恢復正常。當時的工作人員記錄了這樣一句日志:“First actual case of bug being found.”這次著名的事件,猶如潘多拉打開了魔盒,從此,程序員的世界里,bug滿天飛。

▲世界上第一個bug

[[326689]]

趣談:如何為bug找借口?

在我所擔任過的角色中,有一個崗位叫做Development Manager,通常簡稱DM。記得在一次基于一款平臺的二次開發項目中,因為bug實在太多,我們幾乎拿出了一整個里程碑的周期來debug,于是我這個DM有了新的解釋:Debug Man。

沒有人喜歡bug,bug意味著錯誤、不確定性、加班、交付風險……負面的詞語怎么堆砌都不冗余。隨便找個有過一、兩個項目經驗的開發者,問問他debug的回憶,那氣氛就跟上墳一樣。

對于bug,開發者的神經往往也很敏感。有個段子很有趣——說的是“應該如何向程序員反饋一個bug?”

你不能直接跟他說:“這里不對啊,是不是你程序有bug?。?rdquo;,要這么說的話,會直接被懟回來:“你丫的自己不會用吧!”。

你可以換個說法:“咦,這里好像不對,是我操作錯了嗎?”,這時程序員心里就一咯噔:“Shit...不會是我代碼有bug吧?”

從業多年,發現有個現象還蠻有趣的:有時候,當某個bug被發現時,犯下這個錯誤的始作俑者會開玩笑地為自己解脫:“誰沒寫過bug啊,Windows還有bug呢。”這句托詞我也用過,感覺挺好用的,就好比:梅西都能罰丟點球,我空門沒進,也是可以理解的嘛。

但其實吧……這邏輯經不起推敲的。

Windows操作系統,一款長達30多年,裝機量估計都超過了地球人口數量的巨型工程,復雜度基本只能靠猜。以微軟公布的資料來看:

  •  Windows95代碼量約1500萬行;
  •  WindowsXP代碼量約4500萬行;
  •  WindowsVista代碼量約5000萬行;
  •  Windows7代碼量5000+萬行。

以Windows7為例,超5000萬的代碼量,23個小組,共1000多人的開發團隊。如此規模下產生的bug,和一個在辦公室里上了1天班,寫了200行代碼,就鬧出一堆bug,搞得項目亂七八糟的,能同日而語嗎?最后再輕描淡寫地來句“微軟也有bug”,不害臊?

所以我后來不用這句了,如此開脫,水平太low。其替代方案容我稍后再講。

[[326690]]

思考:我們能不能杜絕bug?

為了對抗bug,人們發明了各種各樣的工具和手段,上至方法論,下至生產工具。越來越先進的IDE,復雜的代碼審查制度,從單元測試到集成聯調,再配上beta版,試用,公測等等。凡此種種,其目標無一不是消滅bug??蛇@些琳瑯滿目的解決方案的存在,反倒證明了一個悲?。喝祟?,實在是太容易犯錯了。

如果說凡事都有正反兩面的意義,那么bug的正能量就是硬生生造就了大量就業機會,進而維護了社會穩定。

那么,為什么我們總是無法避免bug的產生?我們能不能杜絕bug?

答案當然是不可能了。因為那樣一來,程序員的日子豈不是太舒服了?不符合苦逼的定位。而且,我們所處的這個世界,但凡越是高呼要消滅的東西,越是會普遍地存在。就像蒼蠅、蚊蟲、污染、犯罪、戰爭,不一而足。

按照常識,經驗越豐富的老手寫出來的代碼,一次通過的幾率更高,比如他們思考得會更周全,對異常的判斷和處理更老練,邊界條件把握得更精確,等等。

所以我們可能會幻想:是不是只要我們足夠仔細,并努力磨練技藝,通過讓一部分碼農先老練起來,然后實現共同老練,最終就可以達到全世界開發者聯合起來消滅bug的大解放了?

很遺憾,這只是一個治標不治本的思路,因為bug是有階級的。老手們的bug相對少,只是低級錯誤少,他們也會遇到bug,而他們的bug,往往都是一眼蒙逼的難度系數N.x的難題,不發生在代碼層面,大多在業務層面,甚至需求設計層面,或者直接是一些不可抗拒因素(做過政府項目嗎?)。

總之,萌新有萌新們的秀逗,大叔有大叔們的短路,老桿也會有自己的滑鐵盧。

[[326691]]

bug還是feature request?

bug這個概念的起源,就預示著它的不可避免性。世界上第一個bug是一只飛蛾,這劇本,誰能料到?某種意義上說,bug就是不可預見的錯誤,能被預估并且提前做好準備的,那叫exception,try catch是他們的朋友。

對于為什么會產生bug的原因,著名的荷蘭計算機科學家Edsger W.Dijkstra有過一句經典名言:

If debugging is the process of removing software bugs,then programming must be the process of putting the min.

這就是上文提到的那句托詞“Windows也有bug。”的替代方案。:)

設想一下,當你從無到有的寫下一句句代碼時,中間的任意一個時刻,你的程序都是運行不起來的,至少也是達不到目標效果的。從效用上完全等效于充滿bug的一堆代碼。你可能會辯解,程序還沒寫完呢,只是功能還沒實現,并沒有bug。

事實上,換位思考一下,缺失某個功能和包含一個有故障的功能,對于用戶而言,都是無用的。一個處于開發階段尚沒寫完的代碼和開發結束但寫得有缺陷的代碼,是一回事。

由此可以引申出一個著名的命題:That's not a bug,it's a feature request. 

有時候,我們很難分清楚一個問題到底屬于bug還是feature request。文中作者拋出了一個案例:用Visual Studio構建一個Windows GUI程序時沒有采用系統默認字體。這個算不算一個bug呢?

不好說。畢竟,隨著軟件應用越來越普及、越來越追求所謂人性化的趨勢,傳統意義上的只要程序能運行就不算bug的觀點,也在慢慢發生改變。對于一個強迫癌用戶來說,UI上有缺陷,那基本上整個軟件就不能用了。

事實上,在當今各類app競爭白熱化、同質化的時代,用戶體驗上的問題,往往是致命的。以前大家沒得選,所以沒那么挑剔,只要程序能干活就行了。如今的計算機用戶已經被寵壞了,在這樣的時代下,bug早已悄悄地泛化了。

所以,到底如何才能寫出沒有bug的代碼呢?

答案:不寫代碼。

一個悲觀又絕望卻正確的唯一解。

[[326693]]

盡可能少寫代碼

試著在這絕望里挖掘一點希望吧。這個答案隱含了一個方法論:盡可能少寫代碼。因為Dijkstra大師已經說得很清楚了,編程就是制造bug的過程。

那么,代碼寫的越少,犯錯的幾率就越小,這個道理顯而易見。維護一段300行的代碼,我們很容易有信心;接手一段3000行的代碼,什么反應就看各人素質了。

現代的開發方式也都包含有這個思路,從IDE的智能提示,代碼補全功能,到每門語言都會有的各種“21天從入門到精通”的開發框架,以及很多實戰層面的約定俗成,都是在幫助開發者減少不必要的編碼??蚣芑?、規范化思維能降低出錯的可能性。

事實上,就連編程語言本身的歷史發展都是按照這個思路在進行。從底層的匯編語言,到C/C++,再到Java/C#/Python……等各種高級語言,語言演化的目的之一就是為了把程序員從臟活、累活的工作中解放出來。

“不要重復造輪子”的精神,一方面是在指導我們提高效率,不要重復勞動成本,另一方面也是減少重復犯錯的幾率。

當代Web開發中的各種包管理概念正深刻地踐行著這條精神,以至于在2016年3月爆發了著名的NPM&left-pad事件:一段區區11行的字符串填充函數模塊,被全世界依賴,結果作者Azer下架模塊包的那一天,全球前端大崩潰。受波及的產品和團隊中,甚至包含著名的React!

這個事件讓人們開始反思:我們是不是忘了該如何編程了?一個功能簡單到人人都會寫的函數,卻都不約而同地選擇引入,而不是自己實現。最終,過猶不及。

寫代碼,真的很難。NO BUG,NO CODE。

[[326695]]

為什么要追求無bug呢?

可是,如果真的只能不寫代碼了,那么本身就已經沒有女朋友的程序員們,現在連代碼也沒有了,這還讓不讓人活了?

不能這樣把程序員們給逼死了,要講人權。

有時候,當答案實在不可接受的時候,我們就該思考是不是問題問錯了。

所以,換個角度,為什么要追求無bug呢?也許我們根本就沒必要害怕bug。

有bug的地方就有麻煩,有麻煩就有解決麻煩的需要,客戶就是給那些能解決麻煩事的人支付報酬的。只處理簡單的問題,是沒有價值的,市場只認可那些面對困難能提供解決方案的人。簡單來講,想賺錢,就別怕麻煩。

對于客戶來說,不管是bug或是feature request,都是一個需要解決的問題。一個優秀的PM,可以把客戶反饋的bug,包裝成feature request,返回一套解決方案。然后,優秀的商務代表出馬,簽訂補充協議。恭喜,你們的項目經費增加了一點點。

英格蘭有句諺語:Where there's muck,there's brass。

如此看來,“如何寫出沒有BUG的代碼?”這問題,恐怕確實問錯了。 

 

責任編輯:龐桂玉 來源: ITPUB
相關推薦

2014-03-03 10:38:19

bug軟件

2020-07-15 08:17:16

代碼

2020-05-11 15:23:58

CQRS代碼命令

2013-06-07 14:00:23

代碼維護

2021-09-01 08:55:20

JavaScript代碼開發

2021-11-30 10:20:24

JavaScript代碼前端

2022-03-18 08:37:12

二分查找算法元素

2022-02-17 10:05:21

CSS代碼前端

2021-01-04 07:57:07

C++工具代碼

2022-02-08 19:33:13

技巧代碼格式

2019-09-20 15:47:24

代碼JavaScript副作用

2020-12-19 10:45:08

Python代碼開發

2022-03-11 12:14:43

CSS代碼前端

2022-10-24 08:10:21

SQL代碼業務

2015-09-28 10:49:59

代碼程序員

2019-06-24 10:26:15

代碼程序注釋

2018-01-29 21:56:28

Bug程序程序員

2015-05-11 10:48:28

代碼干凈的代碼越少越干凈

2022-06-16 14:07:26

Java代碼代碼review

2020-05-14 09:15:52

設計模式SOLID 原則JS
點贊
收藏

51CTO技術棧公眾號

亚洲无人区一区| 久久99国产精品麻豆| 亚洲精品720p| 日韩欧美在线免费观看视频| 国产一二三区在线视频| 美国三级日本三级久久99| 久久中文字幕在线| 国产精品无码网站| 欧美亚洲黄色| 亚洲国产视频直播| 亚洲国产高清国产精品| 午夜精品久久久久久久第一页按摩 | 成人a在线视频| 久久高清免费视频| 日韩欧美一区二区三区在线视频 | 久久久久久97| 国产成人免费观看网站| 999久久精品| 欧美视频一区在线| 1024av视频| 麻豆视频在线| 久久久久久**毛片大全| 国产精品久久国产精品| 自拍偷拍色综合| 亚洲精品1234| 久久av.com| 人人妻人人澡人人爽| 成人爽a毛片| 日本韩国欧美一区二区三区| 国产日韩亚洲欧美在线| 免费在线观看av片| 久久久久久久综合狠狠综合| 国产传媒欧美日韩| 一级做a爰片久久毛片16| 亚洲永久视频| 国内久久久精品| 国语对白在线播放| 三级电影一区| 中文字幕日韩av电影| 国产又爽又黄无码无遮挡在线观看| 国产精品一区免费在线| 欧美日韩国产一级片| 成人在线看视频| 超碰99在线| 一区二区三区在线播放| 国产福利片一区二区| 国产三级电影在线| 久久精品视频一区二区| 久久99精品久久久久久水蜜桃| 99热这里只有精品9| 美女尤物国产一区| 国产精品日韩精品| 在线免费一区二区| 日本大胆欧美人术艺术动态| 热久久这里只有| 一级片视频在线观看| 一本不卡影院| 91chinesevideo永久地址| 国产无遮挡又黄又爽又色| 午夜精品影院| 久久久久国产精品免费网站| 国产一级中文字幕| 一区免费视频| 午夜精品理论片| 少妇一级淫片免费放中国 | 国产精品久久久久久久一区二区| 日本在线播放一区二区三区| 国产精品视频资源| 97人妻人人澡人人爽人人精品| 麻豆一区二区在线| 成人免费xxxxx在线观看| 国产精品高潮呻吟av| 国产一区二区三区观看| 7777奇米亚洲综合久久| 午夜精品久久久久久久爽| 成人小视频在线观看| 国产一区国产精品| 蜜桃视频在线观看视频| 日本一区免费视频| 亚洲精品久久久久久一区二区| 久久五月精品| 亚洲va国产天堂va久久en| 成人免费毛片网| 成人国产精选| 日韩写真欧美这视频| 欧美夫妇交换xxx| 国产精品欧美在线观看| 自拍偷拍亚洲区| 美女福利视频在线观看| 亚洲日本视频| 国产精品毛片a∨一区二区三区|国 | 久久久久久久久久影视| 日韩mv欧美mv国产网站| 在线观看欧美日韩国产| 欧美激情精品久久| 香蕉成人久久| 91久久精品国产91性色| 日本激情一区二区三区| 国产欧美精品一区| 免费网站永久免费观看| 欧美日韩视频免费观看| 日韩一二三区视频| 精品人伦一区二区| 欧美国产高清| 国产精品成人免费电影| 亚洲成熟女性毛茸茸| 久久久久9999亚洲精品| 97精品国产97久久久久久粉红| 激情黄产视频在线免费观看| 欧美精品丝袜久久久中文字幕| 免费不卡的av| 日韩成人精品一区| 91高清视频免费| 国产精品爽爽久久久久久| 91网站黄www| 黄色一级视频播放| а√天堂资源国产精品| 亚洲精品国产精品久久清纯直播 | 日韩dvd碟片| 午夜精品久久久久久久99热| 91久久精品国产91性色69| 91免费在线播放| 8x8x华人在线| 日韩欧美2区| 亚洲美女在线观看| 国产主播在线播放| 国产一级精品在线| 一本一道久久a久久综合精品| 三级在线看中文字幕完整版| 日韩一区二区三区电影 | 亚洲人成网站77777在线观看| 欧美日本精品在线| 国产精品视频a| 国产精品久久久久久久浪潮网站 | 国产夜色精品一区二区av| 成人午夜电影免费在线观看| 欧美日本高清| 色狠狠色噜噜噜综合网| 大乳护士喂奶hd| 欧美三级第一页| 成人免费淫片视频软件| 91青青在线视频| 91极品视觉盛宴| 熟女少妇一区二区三区| 国产精品久久久久久模特| 国产精品免费区二区三区观看| av网址在线免费观看| 欧美剧情电影在线观看完整版免费励志电影| 亚洲午夜久久久久久久久红桃| 亚洲国产婷婷| 国产精品久久一区二区三区| 日本乱理伦在线| 日韩精品中文字幕在线一区| 欧美老熟妇一区二区三区| 国内精品伊人久久久久av影院| 一区不卡字幕| 亚洲伊人精品酒店| 超薄丝袜一区二区| 亚洲第一天堂在线观看| 亚洲一二三四在线观看| 亚洲一级Av无码毛片久久精品| 欧美日韩亚洲一区三区| 国产精品免费一区二区三区四区| 四虎影院观看视频在线观看| 欧美不卡激情三级在线观看| 精品无码久久久久| 99久久99久久综合| 色诱视频在线观看| 欧美中文一区二区| 成人免费淫片视频软件| 青春草免费在线视频| 亚洲国产精品免费| 成人毛片一区二区三区| 欧美韩国日本不卡| 一级黄色免费毛片| 99亚洲精品| 四虎一区二区| 玖玖玖电影综合影院| 午夜精品久久久久久久久久久久| 日本一卡二卡四卡精品| 欧美日韩卡一卡二| 久草视频免费在线| 91理论电影在线观看| 9191精品国产综合久久久久久 | 麻豆久久一区| 97视频在线观看视频免费视频| 青青操在线视频| 欧美日韩国产123区| 久久精品黄色片| 99re这里只有精品视频首页| 国产视频手机在线播放| 午夜欧美视频| 欧美精品国产精品久久久| 老司机精品视频网| 国语自产在线不卡| 在线播放毛片| 亚洲国产精品成人av| 国产精品无码一区| 亚洲自拍偷拍综合| 一二三四国产精品| 豆国产96在线|亚洲| 色七七在线观看| 亚洲五月婷婷| 婷婷久久五月天| 大伊香蕉精品在线品播放| 国产精品久久不能| 国产白丝在线观看| 最新国产精品拍自在线播放 | 粉嫩嫩av羞羞动漫久久久| 亚洲精品一二三四五区| 黄色欧美日韩| 中文字幕不卡每日更新1区2区| 久久男人av| 92看片淫黄大片看国产片| 吉吉日韩欧美| 国内免费久久久久久久久久久 | 日本久久久精品视频| 女人色偷偷aa久久天堂 | 99久久夜色精品国产亚洲1000部| 国模精品一区二区三区| 日韩高清二区| 国产精品自在线| 成人免费看黄| 亚洲**2019国产| 色老头在线观看| 日韩在线免费av| 韩国中文免费在线视频| 亚洲国产精品va在线看黑人动漫| 国产黄色片免费观看| 欧美日韩在线综合| 人人妻人人爽人人澡人人精品 | 久久综合av免费| 国产成人精品综合久久久久99 | 国产精品日韩专区| 中文字幕这里只有精品| 午夜精品三级视频福利| 国产黄网站在线观看| 最近2019年日本中文免费字幕 | 久久久久久99久久久精品网站| 无码人妻精品一区二区三区99不卡| 国产一区二区在线看| 一起操在线视频| 蜜桃久久久久久久| 九色91popny| 日韩高清一级片| 久久久久免费精品| 久久资源在线| 激情六月丁香婷婷| 久久免费高清| 日本成人黄色网| 视频一区视频二区中文| 99色精品视频| 丝袜美腿亚洲色图| 欧美精品成人网| 免费成人你懂的| 一女二男3p波多野结衣| 美国三级日本三级久久99| 日韩av卡一卡二| 精品一区免费av| 无套内谢丰满少妇中文字幕| 韩国成人在线视频| 真实乱偷全部视频| 高清不卡一区二区| 国产精品久久久久久亚洲色| 不卡一区二区中文字幕| 精品无码在线视频| 久久久亚洲综合| 我不卡一区二区| 中文字幕视频一区二区三区久| 999精品在线视频| 亚洲黄网站在线观看| 久一视频在线观看| 精品欧美激情精品一区| 99re热视频| 欧美另类久久久品| 成人免费一级视频| 日韩国产高清污视频在线观看| 亚洲 精品 综合 精品 自拍| 国产午夜精品免费一区二区三区| 69xxxx欧美| 欧美激情精品久久久久久变态| 少妇视频在线观看| 国产在线观看91精品一区| 视频二区欧美| 日产精品一线二线三线芒果| 欧美在线亚洲| 欧美成人精品欧美一级乱| 精品无人码麻豆乱码1区2区 | 欧美三级网站在线观看| 欧美一卡二卡在线| 亚洲欧美日本在线观看| 日韩视频一区在线| 狠狠操一区二区三区| 国产精品综合网站| 欧美丝袜足交| 日韩第一页在线观看| 在线综合亚洲| 亚洲最大天堂网| 91网上在线视频| 久久精品一区二区三区四区五区| 亚洲v日本v欧美v久久精品| 中文字幕日韩三级| 亚洲第一网站免费视频| 免费黄色网址在线观看| 2019最新中文字幕| 欧美成人精品一级| 色姑娘综合av| 一级成人国产| 日本高清一区二区视频| 91在线精品一区二区三区| 国产一二三四区| 日本韩国欧美一区| 少妇又色又爽又黄的视频| 久久精品视频在线播放| 依依综合在线| 国产精品成人一区二区三区| av影片在线一区| 日韩av一二三四区| 国产乱一区二区| 在线观看免费黄色网址| 疯狂蹂躏欧美一区二区精品| 国产不卡精品视频| 最近2019中文字幕一页二页| 黑森林国产精品av| 国产精品视频入口| 中文字幕午夜精品一区二区三区| 三级a在线观看| 久久嫩草精品久久久久| 久久久精品国产sm调教网站| 在线播放国产精品二区一二区四区 | 欧美电影免费观看| 精品日韩欧美| 伊人久久成人| 国产大学生视频| 亚洲无线码一区二区三区| 精品人妻久久久久一区二区三区| 日韩小视频网址| 国产91欧美| 亚洲精品人成| 中文字幕人妻互换av久久| 欧美高清视频不卡网| av网站在线免费观看| 日韩免费观看在线观看| 美日韩中文字幕| 人妻精品无码一区二区三区| 99久久精品国产一区二区三区| 免费日韩在线视频| 欧美变态tickle挠乳网站| 中文字幕在线三区| 99国产高清| 女人香蕉久久**毛片精品| 先锋资源在线视频| 一区二区三区日韩精品视频| 精品国自产拍在线观看| 欧美日韩福利视频| 国产成人夜色高潮福利影视 | 亚洲一区自拍| 免费黄色在线视频| 91豆麻精品91久久久久久| 国产精品二线| 国产美女久久久| 五月开心六月丁香综合色啪| 91香蕉国产线在线观看| 亚洲免费在线观看| 性一交一乱一乱一视频| 欧美激情一区二区三区蜜桃视频| 免费在线观看黄色小视频| 91精品在线免费观看| 2024最新电影免费在线观看 | 国产伦精品一区二区三区四区| 精品国产自在精品国产浪潮 | 久久精品亚洲一区二区| 变态另类ts人妖一区二区| 欧美三级蜜桃2在线观看| 大片免费在线观看| 国产伦理一区二区三区| 国产精品美女| 人妻互换一区二区激情偷拍| 91精品国产品国语在线不卡| 色yeye免费人成网站在线观看| 久久99精品久久久久久秒播放器 | 欧美一区二区在线观看视频| 26uuu久久噜噜噜噜| 日韩专区精品| 天堂www中文在线资源| 色噜噜偷拍精品综合在线| 精精国产xxxx视频在线| 国产在线一区二区三区四区| 日韩电影在线看| 欧美亚洲日本在线观看| 成人黄色av| 亚洲少妇久久久| 亚洲一区日韩精品中文字幕| 国产对白叫床清晰在线播放| 亚洲综合色av| 久久综合影音| 中文字幕在线观看成人 | 97人人在线| 成人动漫视频在线观看完整版| 日日夜夜免费精品视频|