• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Dict.CN 在線詞典, 英語(yǔ)學(xué)習(xí), 在線翻譯

            學(xué)海苦作舟,書(shū)山勤為徑

            留下點(diǎn)回憶

            常用鏈接

            統(tǒng)計(jì)

            積分與排名

            Denoise

            English study

            Web技術(shù)

            數(shù)據(jù)壓縮

            一些連接

            最新評(píng)論

            程序員怎么樣才能保證自己的程序沒(méi)有BUG

            毫無(wú)疑問(wèn),程序員是善于思考問(wèn)題的一族。一個(gè)程序的編寫(xiě)都是通過(guò):思考、設(shè)計(jì)、編寫(xiě)、調(diào)試、測(cè)試以及運(yùn)行這些基本的階段。但大部分程序員都有一個(gè)問(wèn)題就是不太愿意測(cè)試自己的代碼。他們草草的調(diào)式完成以后就認(rèn)為工作結(jié)束,測(cè)試那是測(cè)試人員的工作。

            按照理論上,如果代碼存在問(wèn)題,那么測(cè)試人員和最終的用戶(hù)肯定可以發(fā)現(xiàn)這些 BUG ,而等待哪個(gè)時(shí)候再返回來(lái)查找問(wèn)題到底錯(cuò)在什么地方確實(shí)代價(jià)不小,其代價(jià)有:

            1.? 影響了程序員自己的聲譽(yù)

            2.? 影響了產(chǎn)品的質(zhì)量

            3.? 影響了客戶(hù)的信任度

            4.? 這個(gè)時(shí)候再 DEBUG 難度增大了許多。

            大的不說(shuō),就說(shuō)多自己聲譽(yù)的影響吧。如果你的程序總會(huì)有這樣那樣的 BUG ,你得到收益會(huì)減少,即使你寫(xiě)了很多代碼。

            其實(shí)最后一點(diǎn)也很重要;在我們面對(duì)一塊代碼的時(shí)候,什么方法都好辦,但如果將這塊代碼防到龐大的系統(tǒng)中之后,簡(jiǎn)單的問(wèn)題也難以被立即找出來(lái)。為了自己考慮,節(jié)省自己 DEBUG 的時(shí)候,我們應(yīng)該讓我們的程序盡量沒(méi)有 BUG


            那么怎么樣才能保證自己的代碼沒(méi)有 BUG 來(lái)??
            ?

            程序員必須克服一些自身的致命缺點(diǎn)才能夠從根本上解決這個(gè)問(wèn)題。那么這個(gè)問(wèn)題是什么?前面我們已經(jīng)提到,程序員對(duì)自己的代碼都非常寬容,認(rèn)為那是正確的沒(méi)有問(wèn)題。實(shí)際上這種想法比較正常,程序是通過(guò)程序員思考和設(shè)計(jì)之后才寫(xiě)出來(lái),程序員不會(huì)將自己認(rèn)為不正確的東西寫(xiě)到代碼里,而到這個(gè)時(shí)候都一直假設(shè)程序是正確的;但人非圣賢,怎么可能不犯錯(cuò)誤來(lái)。實(shí)際上程序員在對(duì)待其他程序員時(shí)候的態(tài)度就很好,帶著一種挑剔和學(xué)習(xí)的態(tài)度;但一旦對(duì)待自己的代碼就很難這么做;這就是最致命的。程序員也必須對(duì)自己的代碼帶著挑剔和學(xué)習(xí)的態(tài)度;這個(gè)基礎(chǔ)是假設(shè)自己的代碼是錯(cuò)誤的,然后需要做的是怎么樣證明自己的代碼是正確的。程序員自身可以在程序生成的每個(gè)階段做這些工作:仔細(xì)的設(shè)計(jì)(這個(gè)時(shí)候畫(huà)點(diǎn)時(shí)間是值得的,必須保證我們對(duì)自己的程序有清晰的輪廓后才能開(kāi)始動(dòng)手寫(xiě))、編寫(xiě)代碼時(shí)、單元測(cè)試(單元測(cè)試的重要性就不在贅婿了)、功能測(cè)試。

            仔細(xì)的設(shè)計(jì):這個(gè)的仔細(xì)是說(shuō)在程序員編寫(xiě)代碼之前,其必須對(duì)代碼的整個(gè)結(jié)構(gòu)以及邏輯結(jié)構(gòu)有明確的清晰的了解,只有這個(gè)時(shí)候才可以去寫(xiě)代碼。這里沒(méi)有談到文檔,但我說(shuō)到了一定要清晰的思路,但清晰的思路不是每個(gè)人都可以在腦袋中直接形成的,很多人都是普通人,沒(méi)有辦法在腦袋瓜中把所有問(wèn)題都想清楚,那么就記下來(lái),特別對(duì)于復(fù)雜的邏輯。

            編寫(xiě)代碼:對(duì)于沒(méi)有把握的代碼,例如:新設(shè)計(jì)的算法,最好保證其正確性。可以單獨(dú)將這部分測(cè)試,這可以讓代碼模塊化的同時(shí)又保證了代碼的正確性。一句話:少量的代碼保證質(zhì)量還是比較簡(jiǎn)單的。

            單元測(cè)試:?jiǎn)卧獪y(cè)試的重要性不在贅敘了,現(xiàn)在也有許多工具可以幫助程序員并減少工作量。

            功能測(cè)試:程序員保證自己代碼質(zhì)量的最后一關(guān);為了做這樣的工作我們可能必須寫(xiě)一些代碼來(lái)測(cè)試,甚至是測(cè)試工作。使用大量的 CASE 來(lái)測(cè)試,以及錯(cuò)誤的 CASE 。這里和測(cè)試人員的測(cè)試不同之處在于:仍然讓程序員的注意力放在其自己的代碼范圍內(nèi),減小了排錯(cuò)的難度。

            ?

            如果你通過(guò)了以上的步驟都找不出你程序中有任何問(wèn)題的話,那么我想你的程序應(yīng)該足夠健壯了。其實(shí)還有一點(diǎn)必須說(shuō)明的就是:代碼 REVIEW

            前面說(shuō)道了程序員對(duì)待別人代碼的態(tài)度是挑剔和學(xué)習(xí)的態(tài)度,所以讓其他程序員來(lái) REVIEW 你的代碼也是檢查程序有沒(méi)有邏輯錯(cuò)誤的很好的辦法。團(tuán)隊(duì)中應(yīng)該交叉 REVIEW 代碼,這是實(shí)踐的經(jīng)驗(yàn)。

            作為一個(gè)好的程序員必須有以上的習(xí)慣,以及對(duì)待自己代碼象孩子一樣,我們要愛(ài)惜我們的代碼,同時(shí)也要讓代碼走正確的路。

            (有感于程序員的八榮八恥?而發(fā))

            posted on 2006-06-28 11:29 笨笨 閱讀(1234) 評(píng)論(6)  編輯 收藏 引用

            評(píng)論

            # re: 程序員怎么樣才能保證自己的程序沒(méi)有BUG 2006-06-28 18:34 LOGOS

            程序沒(méi)有bug。。。。
            要么是你的程序過(guò)于簡(jiǎn)單,要么只能說(shuō)明你的程序已經(jīng)很健壯了。
            沒(méi)有Bug的事情的確很難想象  回復(fù)  更多評(píng)論   

            # re: 程序員怎么樣才能保證自己的程序沒(méi)有BUG 2006-06-29 09:05 niming

            很難保證沒(méi)有bug,只能說(shuō)盡量減少bug。
            通過(guò)嚴(yán)格的單元測(cè)試是個(gè)方法,同時(shí)還要有相應(yīng)的一系列規(guī)范。
            不過(guò)我感覺(jué)做c++的寫(xiě)單元測(cè)試的好像不多啊:)  回復(fù)  更多評(píng)論   

            # re: 程序員怎么樣才能保證自己的程序沒(méi)有BUG 2006-06-29 17:57 笨笨

            其實(shí)我這里不想和大家爭(zhēng)論什么是BUG或什么叫沒(méi)有BUG,關(guān)鍵在于寫(xiě)程序的態(tài)度,如果作為一個(gè)程序員自己都認(rèn)為自己的程序有BUG,那么你不是合格的程序員或者說(shuō)不是好的程序員。希望大家可以理解我的意思。  回復(fù)  更多評(píng)論   

            # re: 程序員怎么樣才能保證自己的程序沒(méi)有BUG 2006-07-15 10:59 kylin

            從QA的角度來(lái)看,“程序員怎么樣才能保證自己的程序沒(méi)有BUG”是很可笑的,除非你不寫(xiě)程序。  回復(fù)  更多評(píng)論   

            # re: 程序員怎么樣才能保證自己的程序沒(méi)有BUG 2006-07-16 20:44 笨笨

            對(duì)于kylin的問(wèn)題,我想其實(shí)根本不用回答,因?yàn)镼A是為了找程序員的BUG,和程序員怎么樣保證自己沒(méi)有BUG,一點(diǎn)關(guān)系都沒(méi)有。  回復(fù)  更多評(píng)論   

            # re: 程序員怎么樣才能保證自己的程序沒(méi)有BUG 2006-07-16 20:47 笨笨

            還有一種理解就是,QA測(cè)試無(wú)數(shù)次,程序員修改無(wú)數(shù)次之后才保證的代碼能夠正常,沒(méi)有BUG的情況提前到來(lái),在第一次由程序員將代碼交給QA的時(shí)候完成。我想大家不要光看題目,因?yàn)闆](méi)有BUG是目標(biāo),保證沒(méi)有BUG是過(guò)程。  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            人妻少妇精品久久| 久久超乳爆乳中文字幕| 思思久久99热免费精品6| 久久人人爽人人澡人人高潮AV| 久久精品国产福利国产琪琪| 久久综合久久综合亚洲| 久久人与动人物a级毛片| 久久亚洲精品中文字幕| 国产精品久久久久天天影视| 99精品伊人久久久大香线蕉| 久久久99精品成人片中文字幕| 欧美日韩久久中文字幕| 久久久久久国产精品无码超碰| 99国内精品久久久久久久| 中文字幕精品久久| 粉嫩小泬无遮挡久久久久久| 久久国产香蕉视频| 久久亚洲春色中文字幕久久久 | 99精品国产99久久久久久97| 91视频国产91久久久| 亚洲一级Av无码毛片久久精品| 久久人人爽人人爽人人片av高请 | 亚洲国产日韩欧美久久| 久久精品国产亚洲AV香蕉| 天天综合久久一二三区| 久久超乳爆乳中文字幕| 怡红院日本一道日本久久| 亚洲va久久久噜噜噜久久天堂| 亚洲国产成人久久精品动漫| 精品久久久久成人码免费动漫| 亚洲国产精品久久66| 无码日韩人妻精品久久蜜桃| 久久久精品波多野结衣| 97r久久精品国产99国产精| 久久亚洲精品成人无码网站| 国内精品久久久久久久亚洲| 国产精品99精品久久免费| 伊人色综合九久久天天蜜桃| 久久久精品久久久久特色影视| av无码久久久久不卡免费网站 | 亚洲综合日韩久久成人AV|