国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
零Bug的代碼是怎么煉成的?

 

 2016-07-02  劉欣   碼農(nóng)翻身 
 
碼農(nóng)寫(xiě)代碼的最高境界就是:一次寫(xiě)成, 沒(méi)有bug。

這個(gè)境界我是達(dá)不到的, 但是我能達(dá)到這個(gè)層次: 多次寫(xiě)成, 沒(méi)有bug。

或者更準(zhǔn)確的說(shuō)法是: 我已經(jīng)在寫(xiě)代碼階段把bug都消滅了,測(cè)試團(tuán)隊(duì)運(yùn)行完測(cè)試用例以后,發(fā)現(xiàn)的Bug數(shù)為零。 

其實(shí)沒(méi)有bug也不準(zhǔn)確,因?yàn)闇y(cè)試階段沒(méi)有發(fā)現(xiàn)Bug 并不代表上線以后也沒(méi)有Bug, 但至少證明這是一段高質(zhì)量的代碼。

可能有人要跳出來(lái)了:這不可能,肯定是你的功能太簡(jiǎn)單了。 實(shí)際上我最近寫(xiě)的這段代碼應(yīng)該是屬于中等復(fù)雜度的: 

需要從一個(gè)消息隊(duì)列中獲得不同類(lèi)型的XML消息, 對(duì)消息進(jìn)行解析,更新數(shù)據(jù)庫(kù),獲取數(shù)據(jù)庫(kù)中符合條件的用戶, 發(fā)送郵件。

一個(gè)比較好的地方是:沒(méi)有界面 ! 其實(shí)我個(gè)人不喜歡寫(xiě)Web界面的,覺(jué)得很繁雜 :-)

那零Bug代碼是怎么寫(xiě)出來(lái)的呢? 我想了想,主要有這些關(guān)鍵點(diǎn):

1. 透徹理解需求
很多人看到需求以后, 想都不想立刻就開(kāi)始編碼,這是有問(wèn)題的。 

作為碼農(nóng),雖然不是需求分析人員, 也要考慮下為什么要有這個(gè)需求 ,  這個(gè)需求有哪些主干路徑, 有哪些分支路徑 , 在腦子里要形成一個(gè)圖譜。

把自己假想成用戶,換位思考下,看看用戶會(huì)如何使用這個(gè)功能, 通常你都會(huì)發(fā)現(xiàn)一些意想不到的情況。

2良好的設(shè)計(jì)   
把功能劃分成接口良好的模塊,讓每個(gè)模塊各司其職,又能依靠良好的接口有效合作, 能極大的減少Bug的產(chǎn)生。 

這考驗(yàn)就是基本功了 , 沒(méi)有速成大法, 只有自己慢慢苦練。

注意:我這里說(shuō)的設(shè)計(jì)不一定是文檔 ,有可能只是在你的腦子里。


3處理好邊界條件    
據(jù)說(shuō)80%的Bug是在“邊界”發(fā)生的,這些邊界條件包括:
輸入數(shù)據(jù)不合法
數(shù)組越界

調(diào)用的方法拋出異常 

文件不存在

文件權(quán)限不夠

調(diào)用其他系統(tǒng)接口時(shí)數(shù)據(jù)未能正常返回
打不開(kāi)數(shù)據(jù)庫(kù)連接
數(shù)據(jù)庫(kù)表在初始情況下沒(méi)有值
運(yùn)行時(shí)間過(guò)長(zhǎng)導(dǎo)致超時(shí)
......
我經(jīng)常發(fā)現(xiàn), 大量的代碼被用來(lái)處理邊界條件, 有時(shí)候甚至比業(yè)務(wù)代碼都要多



4充分的測(cè)試:不放過(guò)一行代碼     
       
這是我最想說(shuō)的,測(cè)試不僅僅是測(cè)試人員的事情 ,  也是開(kāi)發(fā)人員的事情。

一定要保證每一行代碼都被你執(zhí)行過(guò),不留任何死角。

這一點(diǎn)非常重要, 要么你是通過(guò)寫(xiě)自動(dòng)化測(cè)試覆蓋到的,要么是手工執(zhí)行測(cè)試覆蓋到的。
千萬(wàn)不能是你覺(jué)得代碼簡(jiǎn)單,不會(huì)出問(wèn)題,就不管了。

5考慮代碼修改對(duì)別的模塊的影響       
     
很少代碼是完全獨(dú)立的,總是或多或少和別
人扯上關(guān)系, 修改這樣的代碼就要小心了, 這也是個(gè)主要的Bug發(fā)生地。

一定要考慮代碼的修改對(duì)別人的影響, 并且做回歸測(cè)試。

零Bug代碼會(huì)帶來(lái)巨大的好處,開(kāi)發(fā)完成,進(jìn)入功能測(cè)試或者驗(yàn)收測(cè)試階段以后, 成本會(huì)很低, 測(cè)試會(huì)很快, 因?yàn)?span id="moiyehiw" class="Apple-converted-space"> 基本上都是一次通過(guò),沒(méi)有bug 就不需要修改代碼,返工的成本就不存在。 

寫(xiě)出零Bug代碼,或者接近于零Bug代碼應(yīng)該是每個(gè)碼農(nóng)的追求,其實(shí)也不太難,只要用心, 有著對(duì)需求的透徹理解,清晰的思路,良好的設(shè)計(jì)和編碼,以及非常充分的測(cè)試,基本上就差不多了。
 
 

你看到的只是冰山一角, 更多精彩文章,盡在“碼農(nóng)翻身” 微信公共號(hào)

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Clean Code - 邊界
新夢(mèng)想干貨分享——測(cè)試如何把控項(xiàng)目
測(cè)試人員怎樣定位bug原因
測(cè)試人員代碼走查基礎(chǔ)要點(diǎn)
軟件測(cè)試流程及方法詳解
加入阿里技術(shù)團(tuán)隊(duì)三年,哪些習(xí)慣讓我在工作上持續(xù)受益?
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服