編程不息,Bug 不止

今天不想聊別的,就想聊點(diǎn) Bug,是不是感覺(jué)我有點(diǎn)傲嬌呢?昨天大家的留言我都一一仔細(xì)看完了,看完之后,就想到了一句話:生命不息,坎坷不止。2016年大家真的是被互聯(lián)網(wǎng)的資本寒冬折騰壞了,這真的跟我們編程一樣:編程不息,Bug 不止

我想大家看完文章的開(kāi)頭,肯定會(huì)以為,我用人生比喻編程,坎坷比喻 Bug ,來(lái)篇雞湯解除大家人生和工作上遇到的饑餓和苦難,那你們就錯(cuò)了,我這個(gè)人就是不按常理出牌,咱們聊得就是編程中的 Bug 。因?yàn)槲易罱墓ぷ骼鲜歉?Bug 較勁,讓我有點(diǎn)想吐槽了,僅此而已。

其實(shí)作為一個(gè)程序員最大的快樂(lè)我認(rèn)為有兩件事:一個(gè)是自己的軟件或者產(chǎn)品,按照自己的心意做出來(lái),并如期上線成功了;還有一個(gè)就是困擾自己很久的一個(gè)大 Bug ,突然被解決了。Bug 被解決的那種快感,那種感覺(jué)就像是被你追求很久的一個(gè)女神突然答應(yīng)做你女朋友一樣,讓你心花怒放,春心蕩漾,前幾天是因?yàn)楸?Bug 困擾的輾轉(zhuǎn)反側(cè),夜不能寐,現(xiàn)在是興奮的難以入眠。

作為程序員,自編程伊始,Bug 就會(huì)如影隨形,因?yàn)樗褪悄愕挠白印ug 就是軟件的影子,和軟件就是與生俱來(lái)的,是不可逃脫的好 CP,有著難舍難分的好感情。Bug 無(wú)處不在,對(duì)于程序員的酷愛(ài),超越程序猿的老婆,它對(duì)于軟件的癡迷,比程序猿還要厲害,即使再牛逼的程序猿也逃脫不了 Bug 的魔掌。

你有代碼潔癖嗎?
我相信大部分人都有代碼潔癖,尤其是重癥強(qiáng)迫癥患者,最常見(jiàn)的一個(gè)現(xiàn)象就是有很多程序員不允許代碼中有警告的存在,一定要消除掉才行,還有的是打括號(hào)的是時(shí)候特別喜歡成對(duì)的打,有的程序員就是看不慣大括號(hào)在左邊和代碼同行顯示,有的就是不習(xí)慣大括號(hào)換行等等。你存在這種情況嗎?自己有代碼潔癖挺好的,有時(shí)候能讓自己養(yǎng)成良好的代碼規(guī)范,最起碼寫(xiě)的代碼整潔。當(dāng)然現(xiàn)在的 IDE 可以幫你一鍵格式化。

其實(shí)如果每個(gè)人的代碼格式潔癖不同,那除了自己之外的別人看起來(lái)就會(huì)很別扭。所以,我們程序員作為一個(gè)高頻的跳槽職業(yè),肯定會(huì)經(jīng)常遇到去新公司接手之前離職前同事的代碼的情況,那個(gè)痛苦不言而喻。交接查看代碼的時(shí)間成本對(duì)于一個(gè)公司來(lái)說(shuō),還是非常大的。這時(shí),我們就需要一個(gè)公司或者團(tuán)隊(duì),有自己的編碼規(guī)范文檔,對(duì)于一些常量的定義,變量的定義,方法的命名都有自己的一個(gè)規(guī)范,這樣新同事入職,看完規(guī)范再看代碼其實(shí)能夠節(jié)約不少時(shí)間。

遇到 Bug 時(shí),你的反應(yīng)是什么?
遇到 Bug 時(shí),每個(gè)程序員由于性格不同,反應(yīng)也不一樣,看看你屬于哪種?
理性的程序員會(huì)說(shuō):這個(gè) Bug 能復(fù)現(xiàn)嗎?
自負(fù)型:這不可能,在我這是好好的。
經(jīng)驗(yàn)型:不應(yīng)該,以前沒(méi)這個(gè)問(wèn)題啊?
幻想型:可能是數(shù)據(jù)有問(wèn)題。
無(wú)辜型:我好都好長(zhǎng)時(shí)間沒(méi)碰這塊代碼了,怎么可能!
樂(lè)觀型:只需要改一行代碼,不會(huì)影響其它程序的。
實(shí)踐型:你重啟一下服務(wù)試試。

那如何減少代碼中的 Bug 呢?
說(shuō)了這么多廢話,主題不就是想說(shuō),如何減少代碼中的 Bug 嗎?其實(shí)我這個(gè)人比較矯情,比起如何減少代碼中的 Bug?我更喜歡吐槽。

  1. 每個(gè)團(tuán)隊(duì)制定一個(gè)代碼規(guī)范,同一個(gè)項(xiàng)目,同一個(gè)規(guī)范。

  2. 熟悉功能需求,找到合適的功能框架。

  3. 編碼之前,一定要先理清需求,將業(yè)務(wù)轉(zhuǎn)化成功能點(diǎn)。根據(jù)功能點(diǎn)分模塊,寫(xiě)方法。

  4. 編碼過(guò)程中,一定要嚴(yán)謹(jǐn)?shù)倪M(jìn)行業(yè)務(wù)邏輯處理,比如:拋出的異常要處理,在 for 循環(huán)中,盡量不要頻繁 new 對(duì)象等。 代碼邏輯要清晰。

  5. 做好代碼審查,Code Review 。不要懶于代碼審查。

其實(shí)還是那句話,說(shuō)起來(lái)容易,做起來(lái)難啊!就跟寫(xiě)注釋一樣,寫(xiě)一句注釋能有多難,大部分程序員都懶于寫(xiě)注釋,到最后,時(shí)間長(zhǎng)了,自己都看不懂自己寫(xiě)的是什么玩意了。我相信大家都知道程序員討厭的四件事,那就是:寫(xiě)注釋、寫(xiě)文檔、別人不寫(xiě)注釋、別人不寫(xiě)文檔。

編程不息,Bug 不止,在天愿作比翼鳥(niǎo),在地愿為連理枝。天長(zhǎng)地久有時(shí)盡,此恨綿綿無(wú)絕期。Bug 對(duì)你如此深情,如此愛(ài)你,你怎么能拒絕?這就是我們程序員編程工作中的必要需求。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,292評(píng)論 25 708
  • 本文把程序員所需掌握的關(guān)鍵知識(shí)總結(jié)為三大類19個(gè)關(guān)鍵概念,然后給出了掌握每個(gè)關(guān)鍵概念所需的入門(mén)書(shū)籍,必讀書(shū)籍,以及...
    dle_oxio閱讀 11,211評(píng)論 6 244
  • 做了一次瑜伽和熱球操,感覺(jué)真的很舒服,有些許累,卻又感到身體的暢通,熱及耳下,如果能夠真的可以做到每天堅(jiān)持,身體一...
    吳王思賢閱讀 269評(píng)論 0 0
  • 4.4.1 自定義 View 的分類 自定義 View 可以分為 4 類。 1.繼承 View 重寫(xiě) onDraw...
    kongjn閱讀 272評(píng)論 0 0
  • “段干,陪我去放河燈吧.” 車(chē)非看著夜色中透著星星點(diǎn)點(diǎn)燈光的XX城,并沒(méi)有回頭,她知道段干在她身后沒(méi)有離開(kāi) “好”...
    莎莫阿姨閱讀 169評(píng)論 0 0