導航:首頁 > 程序命令 > 程序員代碼出bug趣圖

程序員代碼出bug趣圖

發布時間:2023-01-21 20:27:01

『壹』 作為一個程序員,我發現同事寫的代碼有Bug,怎麼辦

作為一個程序員,你發現同事寫的代碼有Bug,你會告訴他嗎?講真的,這個事情對我來講,很難,因為我在這個事情上吃過苦頭!

看待這個問題首先得看對方脾氣咋樣,如果對方脾氣不好,或者很難搞,還是想想其他辦法。直接跟他講可能會遭到對方的白眼!

別看我們程序員一個個傻傻獃獃的,其實自尊心特別強!除非你是他的領導,否則即使你發現了他代碼里的Bug,他也不會服你!雖然還是會改,但內心一定在想:「就你能?自己管好你自己就成,看我代碼幹啥?」

其實我也是這樣的心理,好像程序員除非自己願意,否則都不怎麼喜歡別人去研究自己的代碼,好像對方故意找自己茬的意思。

但是不管咋樣,不管是有意無意,我們既然發現了同事寫的代碼有問題,就不能坐視不管!

我最近在調一個小夥伴的介面時,因為涉及到數據回滾,所以就想知道他的代碼有沒有做回滾操作。如果沒有,可能我這邊數據已經回滾了,他那邊沒回滾就會導致數據前後不一致。所以我也不是有意要審查他的代碼。

然後我就發現他不光沒有做回滾操作,也沒有做批處理。幾個涉及到修改數據的代碼就這樣一行一行走下來,看著直讓人撓後腦勺。

於是我就把這個事情告訴了他,讓他要麼做事物(如果操作有問題,可以自動回滾),要麼做主動回滾。否則我在調他介面時,如果我這邊撤銷了數據修改,他那邊卻提交了修改,就會導致數據丟失或前後不一致。

當我告訴他這個情況和解決方案以後,我能很明顯地感受到他有點不愉快。但事實擺在眼前,也只能修改。可修改歸修改,他還是有點脾氣的。於是他寫了一個事物,將大部分涉及到增刪改的語句全部包在了裡面,唯一把一個刪日誌的語句留在了外面。

我看到這個情況,就委婉地跟他說:「」好像這個刪日誌的語句也要包在事物裡面哦!」

但是他卻說,這個無關緊要,他特意放在外面的。

我跟他說,既然這里有數據存在,就不是無關緊要的。不管咋樣,也不能無緣無故就把數據給刪了。但是他很倔強,執意不改,還說如果我覺得這個數據有用,那就讓我自己「順手」把這里的代碼改一下。

此時我能明顯地感受到他已經有點煩我了!無奈之下,我把這段代碼給移動到了事物裡面。

而我為什麼說我因為發現同事代碼有Bug告訴同事而吃過虧呢?

原因在於我之前待過的一家公司,有一個工作了幾年的程序員同事,而我當時是個萌新。因為我專門培訓過,所以代碼能力還行。可這個同事雖然工作了幾年,但寫出來的程序代碼卻Bug一堆,常規測試手段還測不出來。

我是在偶然之間發現他寫的一個程序是有Bug,但是又不確定,所以就想看看他代碼是咋寫的。不看不知道,一看嚇一跳,他寫的好大一部分代碼都有問題!

我當時初生牛犢不怕虎,發現一個跟他說一個,結果最後把他給惹毛了,當場就要跟我動手,說我專門針對他。我哪有針對他的心呀!我當時想的是把這些Bug找出來,讓他改掉,否則對公司也不好。

但是他想的估計是被我這個萌新發現了一堆Bug很丟人。我總是針對他的代碼找Bug,他就是脾氣再好也綳不住啊!

後來我們的部門經理為了不讓他難堪,也為了給他個台階下,找了我寫的程序里的一個缺點,猛批了下,然後跟大家說:「我剛才看了看,大家寫的代碼有好多問題。這樣,大家都各自檢查一下自己的代碼,看看有沒有問題,有問題盡快改過來,然後我們統一測試!」

直到現在,我也沒學會當發現同事代碼有Bug以後,在不讓同事產生不愉快的心理的情況下,委婉地告訴同事他代碼寫的有問題的方法。

『貳』 歷史上有哪些因為程序員寫出的bug而造成的事故

1. 火箭爆炸,原因:類型強轉(64b浮點->16b整數)導致異常
2. 火箭爆炸,原因:Fortran代碼筆誤(少一個減號)
3. 火星車故障,原因:vxWorks優先順序逆轉 -
4. 火星探測器墜毀,原因:用錯計量單位(磅與牛)
程序員導致的事故挺多,這些是嚴重點的。還有游戲更新把用戶電腦上文件刪光的...

『叄』 游戲界有哪些BUG被官方當成梗流傳下來了呢

看到這個問題,大名鼎鼎的吃雞神器就閃耀在我的腦海啦!
它就是赫赫有名的 絕地求生平底鍋!

肯定有很多人不知道,平底鍋擋子彈,一開始其實是一個bug。
在早先的絕地求生版本中,平底鍋只是一個近戰武器,並不存在四級甲等等美稱。不過,總有那麼一部分人,在 游戲 里找bug並樂此不疲,所以, 平底鍋bug 就這么成功被他們卡出來了!

當時的bug是這樣, 拿放 多次平底鍋 鍋,然後拿放槍械多 次,來回拿放直到成功出現一個神奇的東西,把鍋和槍同時拿在手上,角度剛好把頭擋住,正面剛槍別人是打不到頭的。

可以說,這個bug剛卡出來的時候真的是無敵了。 不過後來是被修復了的。

然而,標題上線!
平底鍋擋子彈的功效被保留了 !不論是玩家還是官方都非常喜歡平底鍋的這個bug,正式保留擋子彈bug的平底鍋成了絕地求生的一大神器,護菊鍋,四級甲,近戰大殺器,只有想不到,沒有做不到( ‾ ‾ )

游戲 界有很多盛極一時的bug,很多人不喜歡bug,覺得那和作弊沒區別,可是 能被官方認可並且默認保留的bug,必然是受到廣大玩家認可和喜愛的。

當然除了絕地求生的平底鍋還有很多 游戲 里也有聲名遠揚的bug, 有時候bug也能拯救 游戲 世界哦

回頭抱住我的平底鍋走上吃雞大道(⁎⁍ ᴗ⁍ ⁎)

***

這里是愛好 游戲 的小念真,希望走過路過的小哥哥小姐姐順手給個贊。

路過的大神輕噴,幫忙補充一下吧

o( v )o

王者榮耀里最出名的莫過於韓信和鯤的故事,至於莊周?整天睡覺,被韓信把鯤給偷走了都不知道,活該被偷。

當時王者榮耀的bug是這樣的,當韓信對莊周放攻擊的時候,因為韓信可以挑飛對手,於是莊周就被挑了起來鯤還在地上,正巧旁邊一個達摩過來,給了莊周一個大招,莊周就這么被踢走了。可是鯤還留在原地。而這一切,剛好被網友截圖,所以這個梗就出來了。

還有別的梗,比如說宮本武藏,這個被削弱了六七十次的男人,還有當初的曹老闆,一個打五個,還是抗塔打,拿完五殺之後順便把塔拆了(那時候不像現在,沒有兵線就拆不動),而且曹操大招的時候打防禦塔都回血。

還有劉備,當時的bug是傷害沒有削減,也是可以一打五的存在。

作為 游戲 玩家,我們都討厭BUG。但不是所有的BUG,有些被開發者無意留下的特性讓我們感覺超越了 游戲 世界的規則,反而很受歡迎,最終被官方保留下來成了 游戲 特色。
關卡加速(太空侵略者)
這個 游戲 想必很多老玩家都有印象,越到後期外星人的移動速度就越快,挑戰性也越高。但這其實是一個BUG造成的。

在製作人西角有宏的原版設定中,外星人會一直保持勻速移動。但是由於當時(1978年)硬體的機能不足,開場時滿屏的外星人會造成掉幀。越往後,屏幕上的像素點越少。於是,速度就快了起來。

當然我們最終玩到的版本應該並不是完全掉幀的版本,而是重新設計過的。

這種越往後速度越快的玩法後來被大量 游戲 借鑒,已經成為了一種經典設定。
苦力怕(我的世界)

游戲 中的「吉祥物」苦力怕最初其實是想被設計成可愛的豬豬。但是開發者Markus Persson當時沒有建模軟體,只能直接用代碼修改模型。因為輸錯了數據,模型的身體直立了起來。Markus把它調成了綠色,就變成了現在的苦力怕。
連續技(街頭霸王2)
可能有點難以置信,在最初的格鬥 游戲 中,玩家們只是互相狂按攻擊鍵,一拳一拳的把對方懟死,超級傻,完全沒有連續技的概念。

連招的發明源自街霸2的一個BUG。製作人員發現出招擊中對方以後,立刻按下其它攻擊鍵可以取消之前的攻擊動作,於是形成了連續打擊。它們覺得這個BUG很有意思就保留了下來。

如今,重拳、輕拳、再接個必殺技這樣的連招已經成了格鬥 游戲 里最核心的玩法。
火箭跳(雷神之錘)
在初代雷神之錘裡面有一個高手必備的神操作:玩家跳起懸空的過程中,對准地面來一發火箭炮,就會被爆炸的沖擊力推動躍向更高更遠的地方。以此你可以完成很多不可能的操作。因為大受歡迎,系列一直保留著這種玩法。

此外,如軍團要塞、守望先鋒這些 游戲 都借鑒了火箭跳的設定。

火箭跳起源於毀滅戰士初代,當時只能橫向移動。據說是一個BUG造成的,被製作人John Romero保留下來做成了彩蛋。
花屏(公理邊緣)
這是一個向銀河戰士致敬的獨立 游戲 。 游戲 中有一把武器可以把亂碼的圖像恢復原狀,這實際上是一個梗。

亂碼花屏對於玩過早年街機和FC卡帶機的玩家肯定不陌生,當 游戲 卡屏的時候就會出現。現在,童年噩夢變成了有趣的關卡設計。

多硬幣方塊(超級馬里奧兄弟)

馬里奧 游戲 里有的方塊可以頂出超多的金幣,讓玩家可以輕松加分、加命,非常有意思。它最初也是一個BUG,而且被刪除了。但開發者又覺得因此少了很多樂趣,於是又改了回去,保留至今。

Bug對於程序員來說是噩夢,bug對於 游戲 開發公司來說也是如此,一個備受詬病的嚴重bug對於一款 游戲 來說是致命的。除非在少數情況下,因為一個bug成就了一個 游戲 ,成為了一個非常棒的設定,這個可能令開發者本身都始料未及。下面我們一起來看看有哪些bug被 游戲 開發商改成了 游戲 中獨特的設定,讓玩家一直津津樂道的吧。
上上下下左右左右BA

呃,一個 游戲 玩家不知道這個bug,就不算是一個合格的 游戲 玩家。如果不知道這個梗,甚至連許多 搞笑 電影都看不懂。「上上下下左右左右BABA」,它其實最早源自科樂美的另一款 游戲 ——1985年發售的《宇宙巡航機》。(兩年後,影響一代人的《魂斗羅》才橫空出世)這兩款 游戲 首發都是街機平台,之後才移植到紅白機平台上(簡稱FC,山寨到國內就是廣為人熟知的小霸王)。橋本和久(Kazuhisa Hashimoto)負責該移植項目,但是在移植過程中,他發現這款 游戲 已經難到就連他也根本無法用3條命通關的地步,為了順利完成移植工作,他便私自在《宇宙巡航機》中加入了一段調試程序來幫助通關,開啟密碼就是——上上下下左右左右BABA。

《魂斗羅》在沿用了此設定並大火之後,科樂美幾乎在其製作的所有 游戲 中都植入了這個作弊碼。而正是在一代又一代的科樂美 游戲 中反復出現,只要你知道了這個作弊碼,就可以在之後的 游戲 中不斷使用,因此它比那些曇花一現的作弊碼更加廣為人知,甚至已經突破作弊碼本身的含義,演變成了一種 游戲 文化。
絕地求生 平底鍋

平底鍋能擋子彈,堪比防彈衣。這個梗只怕是絕地求生獨有的。其實,這個能擋子彈的平底鍋剛開始也是個bug,後來被玩家發現後上報給藍洞。藍洞覺得這個bug還蠻有意思,就沿用了下來。結果就是全世界都知道了絕地求生中平底鍋比防彈衣有用,也形成了絕地求生的一大特點。
超級馬里奧 踢牆跳Bug
《超級馬里奧兄弟》是最為經典的標志性橫版過關動作 游戲 。由於任天堂和FC的存在,這款 游戲 也是很多玩家早期的入門 游戲 之一,由於其用戶基礎龐大,其樂趣性和bug也逐漸成為了Bug 探索 愛好者們的最愛素材。

這個 游戲 最著名的一個Bug就是那個能讓你跳的更高的踢牆跳。這個Bug的原理是在恰當的時間按下跳躍之後,可以讓你跳的更高。bug最早出現在FC和SFC版的馬里奧 游戲 中,然而到了NGC的《超級馬里奧64》中,這個踢牆跳從Bug正式轉變為了一種 游戲 技能的存在,而且在 游戲 中這還成為了一個玩家必須要掌握的技巧,不然很多位置你都過不去,這就使得這個bug成為了經典。後面,無數的 游戲 借鑒這個bug的創意,讓踢牆跳成為了動作 游戲 主角的必備技能,甚至延伸出了進化技能二段跳和浮空,這也是沒誰了。

惡魔城月下夜想曲 出城BUG

出城BUG,所謂的出城是指利用BUG手段達到主角普通方式去不到的地方,以達到增加地圖完成度刷裝備和魂,快速速通關等目的。尤其是對加快流程起到了很大作用。惡魔城月下的出城方式非常多,500心、卡電梯、狼形態撞樓梯、卡門等,於是,玩家在最終BOSS之前,大都進入了尋找出城BUG的節奏。惡魔城 月下夜想曲的出城BUG,也是 游戲 史上最讓玩家樂此不疲的BUG,同時也因為這些極具研究價值和樂趣的BUG。惡魔城 月下夜想曲不僅沒有被玩家所詬病,反而還成為了最受玩家歡迎的一代惡魔城作品。PS版本最高的地圖完成率是200.6%,但是囧王者始終只能達到199%左右,估計是漏了哪些細節空間吧。有空再去刷一次。
魔獸世界,墮落之血事件

你以為我會說魔獸世界中盜賊(潛行者的bug?)呵呵,too young too simple。但是這個墮落之血事件,確確實實是暴雪從來沒有想到過的bug。我們來回溯一下整個事件:人類 歷史 公元2005年,在艾澤拉斯大路上,古拉巴士巨魔的血神---奪魂者哈卡將瘟疫散布在了艾澤拉斯。在和哈卡戰斗的過程中,它會隨機在 游戲 者的角色上施加一個名為墮落之血的DEBUFF,這個法術會不斷抽取玩家的生命,同時還具有非常強的傳染性,因此玩家必須分散站位以避免傳染。但是就像是生化危機病毒從實驗室泄露到浣熊市一樣,當受到感染的玩家傳送回到人口密集的城市後,由於其高傳染性,這種debuff就迅速傳染開來。玻璃渣曾幾次試圖修復這一問題,包括在一些地區實施隔離,但根本無法阻止這場災難,玩家的角色近乎滅絕,倖存下來的人們開始遠離人群,東躲西藏,估計那是最早的絕地求生了吧,如同末世中的人類。並且,美國疾病控制與預防中心(就是CDC啦,玩 游戲 或者看末世電影的都知道這個名詞)向玻璃渣申請得到這次瘟疫暴發的數據,以研究應對現實世界中的疫情,這個屌。後來,這種爆發式的瘟疫傳染模式,再結合生化危機中的病毒傳染模式,影響了後面出的所有的末世和病毒相關的 游戲 ,其爆發機制和傳播途徑基本就和魔獸中的這次事件一致。
GTA 狂暴警察,如果當年沒有這個BUG,GTA可能就不存在了
R公司是做賽車 游戲 的,他們做了一款叫RACE AND CHASE 的賽車 游戲 , 游戲 理念是「有趣,上癮,多人飈車,沖撞」,雖然這聽起來像馬里奧賽車,但實際畫面是這樣的:簡單,粗暴,毫無可玩性。

當初研發團隊過於注重開車的細節而導致操作並不順手,程序也總是不穩定,高層一度考慮取消這個項目,結果某一天測試人員發現原本設定的警察先生突然變成了狂暴的角色,想要碾死偷車玩家。這個bug毫無疑問被上報,卻被創意總監及時抓到賣點,於是這款 游戲 變成了開放模式,受到了廣大玩家的喜愛。我覺得這個確實是一個轉變思想的大膽手筆。

BUG是玩家在玩 游戲 的時候深惡痛絕的,但凡事也有例外,居然也有少數bug在巧合情況下讓玩家體驗到了不一樣的 游戲 樂趣,收到市場這種正反饋以後,官方於是索性當成梗流傳下來~

《街頭霸王》

ACT 游戲 里,追求的就是炫酷的動作效果,一連串令人窒息的操作下來,能夠讓對手不是半死就是直接KO,這種滿足感會非常高。但是很多人不知道,連擊最早的靈感來源於一個bug。最開始 游戲 設計師認為連擊這個操作需要玩傢具備一系列高超的操作技巧,很難觸發出這種「連擊」操作,但是偶爾有玩家在觸發了這個技能以後,很快掌握了這個技巧,而且傳播速度非常快,最後讓開發者們也開始重視「連擊」這種操作。

後來運用連擊的 游戲 越來越多,甚至成為了類型 游戲 的一個特色。研究如何變化連招也成了玩家特別喜歡 探索 的一部分。

《魔獸世界》

大家經常吐槽暴雪最喜歡玩梗。而《魔獸世界》被留下來的bug有:

想要獲得逐風者之劍,步驟需要的不少,其中公認最難的一個環節就是擊敗加爾和加盾男爵。但是還不一定百分之百能夠獲得左臉和右臉。只有都拿到以後再完成一些任務才行。然而玩家發現如果你有一個臉可以通過bug獲得下一個臉。

需要利用這個bug的情況很復雜,需要滿足的條件也有很多。感興趣的小夥伴可以自行去搜一下~

《暗黑2》

有人認為暗黑2其中有不少bug是被故意沿用下來的,大家發現首殺boss能夠獲得的裝備很多,所以研究如何能盡量多地刷首殺得裝備的情況很多。

而且還總結出來了不少途徑:新人可能都會發現的,第一關首殺了boss不退出,以後就永遠是首殺。第二關、第三關都有首殺的規律。這個bug還算是對於玩家來說比較有利的,官方也沒有將這個bug給去處掉。

所以從某一方面來說BUG也不盡然全都是壞的情況啦~還有啥經典bug歡迎大家討論啊~

作者:張二狗

格鬥 游戲 的賴皮連續技
早期格鬥有很多無限連的連續技 (指某些格鬥 游戲 中,用某一招可以一直無限卡,很賴皮,比如流星蝴蝶劍匕首的後打,後打可以無限賴死一個滿血),

當時看一個 游戲 策劃講其實是非常不公平的,於是現在都有了保護機制
文明系列的印度領袖甘地
甘地是一位愛好和平的領袖。

結果在文明2裡面出了這么一個BUG,甘地的好戰指數是全文明最低的1,而文明還規定,國家發展到現代 社會 時,好戰指數-2

而且剛好,那個時候差不多可以造核彈了,這個特性在文明5當中重現,不過這次是官方故意的。

他的造核彈與使用核彈的傾向最大,這也是玩家寧願付高額代價也不能讓他造出核彈的原因……於是這就是所謂「甘核平」這個梗的來由
吃雞平底鍋擋子彈
平底鍋最早是作為一款近戰武器的存在

有些熱衷於找BUG的玩家發現平底鍋有一個BUG,在反復掏出放下掏出放下後,把鍋和槍同時拿在手上,角度剛好把頭擋住,正面剛槍別人是打不到頭的

最終官方修復了這個BUG,但是強力的「四級甲」已經作為一個梗流傳下來了

我所知道的只有 絕地求生大逃殺 和 王者榮耀 裡面有。

絕地求生裡面的就不用說了,就是平底鍋嘛。

但王者榮耀裡面的就沒那麼多人知道,在以前的老版本裡面,貂蟬的二技能無敵其實是個bug,但是鑒於以前的貂蟬沒那麼強,所以這個bug又被當做一個梗流傳至今,官方也懶得管他了。

你好,我是賽羅,很高興回答您的問題。

上上下下左右左右BABA這個《魂斗羅》30條命的大招其實就是內測是程序員為了檢測 游戲 是否正常而設計,因為只有3條命,基本上除了頂尖玩家沒有幾個人可以,而後來卻忘刪了

我的世界

說到bug 手機的手游可以在電腦中玩 游戲 ,電腦 游戲 手機里玩 游戲 ,電腦上可以開手游代練,手機上的電腦 游戲 同樣一樣,這個秘密就是模擬器跟雲電腦

『肆』 軟體存在bug是程序員把代碼打錯了造成的嗎

從你的描述來看,軟體存在bug,不是程序員把代碼打錯了,而是代碼設置不合理,比如需求不合理,軟體的操作上,設計上原本就存在邏輯漏洞,多個單體能夠正常工作的模塊結合到一起產生問題,異常場景沒有考慮到等等,很多原因都可能產生bug。

『伍』 為什麼有的程序員的代碼結構混亂

程序員都有一顆工程師的心,所以當他們到一片新的場地想做的第一件事就是,將舊的一切推倒重來。是的,他們決不會滿足於簡單的增量勞動。

或許這種微妙的心理定位可以解釋:為什麼程序員進入新項目組後寧願丟掉舊代碼重新寫,也不願意修修補補。他們認為舊代碼簡直一團糟。

但是,事實上真是這樣嗎?你之所以認為舊代碼一團糟,其實是由編程的一個基本定律決定的,那就是:寫代碼容易,讀代碼難。

為什麼你覺得舊代碼異常混亂?因為讀代碼更難。

這大概就是代碼Reuse難以實現的原因。 這就是你組里的每個人都喜歡用不同的功能將分割的字元串轉換成一個數組。比起猜測舊的功能是怎樣實現的,重新寫一個自己的功能要簡單和有趣多了。

作為這個公理的推論,你可以問問身邊的程序員他們正在奮戰的代碼怎麼樣?「簡直是一塌糊塗!」他們肯定會這樣說。「我簡直想推倒重來!」

為什麼認為代碼這么糟糕呢?「額,看看這個功能,竟然有兩頁長!完全不知道這些東西為什麼在這里!完全不知道這些API是干什麼的。」他們會這樣回答你。

漫畫:讀別人代碼是一種怎樣的體驗?

曾經,Borland的創始人 Philippe Kahn當初就是向記者們吹噓:Quattro Pro會比Microsoft Excel要好用得多,因為它是從頭開始編寫的,全部都是新的源代碼!

但是,認為新代碼比舊代碼好簡直就是荒謬。舊代碼是已經運行過的,測試過的。無數的bug在被發現前都上線運行過,發現之後程序員們可能在花了好些日子才修復了這些bug。這種修復可能是一行代碼,也可能是幾個字元,無數的時間和精力都花在了這些bug修復上。

當你決定拋棄這些舊代碼從零開始的時候,你也丟掉全部前任努力的結果。

新代碼一定比舊代買好?NO,重寫可能會帶來更大的風險。

對技術領導者來說,重寫項目的代碼也是一個異常艱難的決定。因為從公司層面說,重現代碼甚至會威脅產品的市場競爭力。一旦決定重寫代碼,那麼與競品相比,你可能落後了2~3年——在軟體行業,這時間可夠長的。

你理想中的新代碼會帶來產品功能的提升▼

但事實上,即便重寫的新代碼可以實現舊代碼的所有功能和需求,但是為產品帶來的市場競爭力只有邊際提升。因為重寫用的新技術、新語言、新框架並沒有給產品帶來質的飛躍。

更不用說在重寫的漫長過程中可能會遇到一些意外情況,比如:

1、缺錢:資金鏈的斷裂▼

2、缺人:核心程序員離職

最終導致效果不佳:達不到原產品應有的所有功能和需求,白白浪費了時間和金錢,也丟掉了市場競爭力。▼

所以重寫代碼意味著,你在把自己置身於非常危險的境地,可能幾年後你也寫不出比以前更好的代碼。你只是花了一大筆錢把已經存在的代碼又寫了一遍。

當你覺得眼前的舊代碼很爛時,該怎麼辦?

你覺得舊代碼寫的很爛,那又怎樣呢?它們已經上線,已經在實際運行中經受住了考驗。所以當你發現前任留下的代碼亂七八糟的時候,不妨冷靜下來,從以下三個方面入手理解代碼、改善代碼:

1、代碼的結構有問題

如果一段網路代碼突然彈出了自己的對話框,應該是UI代碼需要被處理。這些問題可以被解決掉,你要一次次小心地移動代碼,重構,改變介面。還需要一位細心的工程師立馬仔細地檢查這些改變是否有問題,從而不打擾到其他人。事實上,甚至比較大的結構變化也可以不扔掉代碼來完成。

大牛程序員Joel Spolsky回憶說,曾經在某個項目中,他和他的團隊花了好幾個月重新架構在一點上:把代碼動來動去、清理、創建有意義的基類,並創建了模塊之間的完美介面。但是他們始終非常小心翼翼,並沒有產生新的bug、也沒有丟掉任何舊代碼。

2、代碼的效率不高

曾經,Netscape的渲染代碼被傳非常緩慢。但事實上,這只會影響該項目的一小部分,這部分是你可以優化甚至重寫的。你完全不必重寫全部代碼。優化速度的1%工作量,會讓你獲得99%的爆炸性提高。

3、代碼寫得很醜

有些代碼真的寫的很醜,比如Joel曾參與一個項目,開始用下劃線做開始的成員變數約定,但後來改用更標準的「M_」。所以一半的功能用「_」開始,一半用「M」開始,這看起來真的很醜陋。但這個問題5分鍾就能解決,而不用從頭開始寫全部的代碼。

最後,你要記住,從頭開始再寫一遍並不意味著你會寫出比以前更好的代碼。因為你沒有參與到上一個版本的創建,所以你其實根本就不算有經驗。一旦你准備推倒重寫,你可能會再犯一遍版本一犯過的錯,甚至會產生更多的新問題。

一個總結:

面對糟糕的舊代碼,Keep Calm & Carry On !

在大型商業項目中,推倒重來是非常危險的行為。當然,如果你是在做實驗,想到新演算法可以隨時重寫。

『陸』 程序員為什麼要一直改bug不能一次性寫好嗎

作為一名程序員,我也總是在調試,Bug總是防不甚防的出現,這個過程真是有趣又痛苦,最後我覺得習慣就好,一次性寫出完美代碼是每個程序員不可實現的夢想。

  • 程序員作為一項工作,是有任務有指標的,比起慢慢寫出完美程序解決所有問題,大家更喜歡快速看到一個可以執行解決部分問題的程序,此時完成比完美更重要。

  • 沒有哪個程序員可以寫出完美的代碼,即使高能又偉大的公司也做不到這一點,想想看你的手機軟體是不是經常提醒你該更新了,連微軟都在三天兩頭的讓你打補丁,不是嗎?

    『柒』 如何向 程序員 描述 bug 笑話

    1.程序員寫出自認為沒有Bug的代碼。

    2.軟體測試,發現了20個Bug。

    3.程序員修改了10個Bug,並告訴測試組另外10個不是Bug。

    4.測試組發現其中5個改動根本無法工作,同時又發現了15個新Bug。

    5.重復3次步驟3和步驟4。

    6.鑒於市場方面的壓力,為了配合當初制定的過分樂觀的發布時間表,產品終於上市了。

    7.用戶發現了137個新Bug。

    8.已經領了項目獎金的程序員不知跑到哪裡去了。

    9.新組建的項目組修正了差不多全部137個Bug,但又發現了456個新Bug。

    10.最初那個程序員從斐濟給飽受拖欠工資之苦的測試組寄來了一張明信片。整個測試組集體辭職。

    11.公司被競爭對手惡意收購。收購時,軟體的最終版本包含783個Bug。

    12.新CEO走馬上任。公司雇了一名新程序員重寫該軟體。

    13.程序員寫出自認為沒有Bug的代碼。

    『捌』 你的代碼出bug了,程序員聽到這個時的表現太真實了

    這個大撒比寫出這么個爛代碼,幸虧有哥這樣神一樣的存在才發現,哥真是救世主。

    這個程序運行很久了是不是真有bug啊,是不是你弄錯了啊,可以重現么,什麼?可以重現,有尼瑪問題也不大,要不用戶早投訴了,瞧你那驚慌失措的樣子,真想吐你一臉狗屎。

    這個bug隱藏的很深啊,還好哥犀利犀利,沒有被領導發現,今晚加個菜。

    這個程序剛上線還處於調試階段,有bug很正常,誰的程序沒bug,連操作系統都有bug。

    哥就是犀利,自己開發自己測試,看測試那幫撒比什麼也不會干,這么明顯的bug都測不出來,真是一群廢物。

    1、「是刪除它還是修改它呢?好糾結 !」

    2、網上一定有解決辦法。

    3、是誰動了我的代碼?

    4、完全不知道這些代碼是神馬東東。

    5、哦,為什麼我都沒寫注釋呢?

    6、算了,廢了他,我還是從頭開始吧!

    程序員自身可以在程序生成的每個階段做這些工作: 仔細的設計、編寫代碼時、單元測試(重要)、功能測試。

    『玖』 尋找一張關於程序員敲代碼的動態圖片

    平均天100行有效代碼我覺得對得起自己了純手工寫C++

    前做web報表系統人家寫好了張報表我拿來照著套生產其報表連html估計天能幹上萬行幾十張報表干……

    關鍵花思考和查資料上時間比敲代碼多得多
    sdmjxsfcry參考哈·····

    閱讀全文

    與程序員代碼出bug趣圖相關的資料

    熱點內容
    循環宏1命令 瀏覽:35
    斐波那契數列矩陣演算法 瀏覽:674
    公式保護後加密不了 瀏覽:82
    java跳轉到jsp 瀏覽:819
    327平方根演算法 瀏覽:216
    win7美化命令行終端 瀏覽:797
    免加密狗圖片 瀏覽:485
    一隻透明的鳥是什麼app 瀏覽:817
    空氣壓縮機油批發商 瀏覽:69
    linuxifexist 瀏覽:4
    加密tf卡拷入文件 瀏覽:399
    山西php工資 瀏覽:673
    福州看病預約用什麼小程序app 瀏覽:238
    php保留兩位小數不四捨五入 瀏覽:292
    黑馬程序員路徑大全 瀏覽:1000
    saas平台PHP 瀏覽:333
    雲伺服器科學計算配置怎麼選 瀏覽:649
    jar解壓命令 瀏覽:609
    php正則問號 瀏覽:299
    無線已加密不可上網是怎麼了 瀏覽:466