posts - 59,  comments - 323,  trackbacks - 0
            我寫了一篇blog叫做《招人不難》,很多朋友很贊同,也有的朋友不同意我的意見,他們很懷疑:“有bug的一律不要?沒有BUG的代碼是不存在的...blabla”
          ?
            正好今天又看到一篇轉(zhuǎn)貼的笑話,叫做《【轉(zhuǎn)】從一個(gè)笑話看軟件開發(fā)管理》,大意是,程序員交出了自以為沒有bug的代碼,然后一切都變得越來越糟糕,而程序員總是會(huì)交出自以為沒有bug的代碼。
          ?
            我們今天就來談?wù)劊粋€(gè)程序員,什么時(shí)候可以交出自己的代碼,并且可以自豪的對(duì)別人說:“我的代碼里面,沒有bug!”。
          ?
            先說傳統(tǒng)的做法,一個(gè)負(fù)責(zé)的程序員,應(yīng)該在交出代碼之前,自己跑好多次自己的代碼,左看右看,上看下看。直到交出去的時(shí)候,沒有一個(gè)人能夠發(fā)現(xiàn)其中的問題。這樣的能力一般只有天才才能具備,我以前遇到過一個(gè)。但是,如果我企圖以這樣的標(biāo)準(zhǔn)來招人的話,那就是在發(fā)瘋,怎么還敢說“招人不難”?
          ?
            說說可行的辦法吧。一個(gè)程序員如果足夠的謙虛,時(shí)時(shí)想證明自己可能犯錯(cuò),即將犯錯(cuò),或者已經(jīng)犯錯(cuò)。那么他就會(huì)盡量寫出足夠多的TestCase,以便打消自己的疑慮。直到所有的測(cè)試用例全部通過,屏幕上顯示出美麗的綠色長條,他才能確信,自己的代碼沒有bug。
          ?
            所以,我的判斷標(biāo)準(zhǔn),也很簡(jiǎn)單。如果寄給我的代碼,沒有附帶測(cè)試用例,我就自己運(yùn)行他的程序,隨意的亂找,找到一個(gè)我認(rèn)為是bug的,那就是有bug了。如果寄給我的代碼,附帶了足夠的測(cè)試用例,我只要Run一次,看到綠條,這一關(guān)就算是過了。~~~很簡(jiǎn)單吧。
          ?
            也許有人會(huì)說,那如果他的測(cè)試用例很簡(jiǎn)單呢?豈不是不能說明什么問題?怎么不能說明問題呢?首先可以說明:這是一個(gè)會(huì)寫測(cè)試用例的程序員!其次,我會(huì)看看他的測(cè)試用例的代碼,大概覆蓋了多少的功能特性。當(dāng)然,這是更進(jìn)一步的能力判斷。但是至少,他的代碼已經(jīng)達(dá)成了他自己的設(shè)計(jì)了呀。
          ?
            所以:“有bug的一律不要”,意味著,你最好能夠自己證明自己沒有bug,否則,我如果找到一個(gè)bug,你就沒戲了。
          posted on 2006-06-11 10:34 讀書、思考、生活 閱讀(29301) 評(píng)論(10)  編輯  收藏


          FeedBack:
          # re: 如何寫出沒有bug的程序?
          2006-06-11 11:56 | wolfsquare
          鉆個(gè)牛角尖,如果程序?qū)懖怀鰷y(cè)試用例的情況呢?
          例如復(fù)雜的GUI程序.  回復(fù)  更多評(píng)論
            
          # re: 如何寫出沒有bug的程序?
          2006-06-11 12:17 | 讀書、思考、生活
          @wolfsquare
          這的確是個(gè)問題,不過如果是在招人的時(shí)候,還是盡量不要讓人家做太多GUI相關(guān)的demo,這樣的demo,也不容易評(píng)價(jià)水平的高低。

          如果是一個(gè)GUI為主的demo,那也只能靠人工判斷了。  回復(fù)  更多評(píng)論
            
          # re: 如何寫出沒有bug的程序?
          2006-06-11 14:25 | Andy luo
          原來是要寫測(cè)試用例阿,當(dāng)時(shí)怎么就沒想到呢~~  回復(fù)  更多評(píng)論
            
          # re: 如何寫出沒有bug的程序?
          2006-06-12 14:57 | heny.alex
          look down on so man~  回復(fù)  更多評(píng)論
            
          # re: 如何寫出沒有bug的程序?
          2006-06-12 17:57 | 不曾真實(shí)
          第一:GUI也是可以寫出測(cè)試用例的。
          第二:?jiǎn)栴}的關(guān)鍵在哪里?是你的測(cè)試觀點(diǎn)。你有多少個(gè)觀點(diǎn)決定你可能發(fā)現(xiàn)多少個(gè)BUG。  回復(fù)  更多評(píng)論
            
          # re: 如何寫出沒有bug的程序?
          2006-06-14 09:43 | 不要出來搞笑
          沒有bug的程序?????????
          靠,站著說話不腰疼。那個(gè)公司可以做出沒有bug的軟件來?
          當(dāng)然,沒有寫過程序的人不出bug!!
          估計(jì)這位同志不會(huì)寫代碼,是個(gè)理論專家。
          還是不要這么狂的好。
          我估摸按你的標(biāo)準(zhǔn),你是肯定不會(huì)被別人錄用的!
            回復(fù)  更多評(píng)論
            
          # re: 如何寫出沒有bug的程序?
          2006-06-14 11:12 | 讀書、思考、生活
          @不要出來搞笑

          不要出來搞笑,謝謝。  回復(fù)  更多評(píng)論
            
          # re: 如何寫出沒有bug的程序?
          2006-06-15 17:27 | ronghao
          @讀書、思考、生活

          項(xiàng)目的開始還是盡量地寫測(cè)試用例,但是到項(xiàng)目的結(jié)尾,比如在表現(xiàn)層改動(dòng)重新涉及到DAO層,就很難再對(duì)DAO層寫測(cè)試用例了:)趕時(shí)間啊
            回復(fù)  更多評(píng)論
            
          # re: 如何寫出沒有bug的程序?
          2006-06-16 16:51 | 123
          你是編程的嗎?
          無“BUG”搞笑吧你
          測(cè)試是不能查出所有BUG的
          而且不是所有測(cè)試都能窮舉的
          只能是測(cè)試覆蓋率達(dá)到一個(gè)標(biāo)準(zhǔn)
          BUG出現(xiàn)的概率達(dá)到標(biāo)準(zhǔn)
          才算產(chǎn)品
          “ZERO-BUG”做夢(mèng)去吧


            回復(fù)  更多評(píng)論
            
          # re: 如何寫出沒有bug的程序?
          2006-06-26 09:47 | dfinger
          如果說一個(gè)產(chǎn)品有明確的是需求,設(shè)計(jì),實(shí)現(xiàn)和完整測(cè)試用例。。
          那么無bug的夢(mèng)想真的也不是那么難。。。
          不過呢。。往往需求總是會(huì)變化的。。。
          需求和實(shí)現(xiàn)總會(huì)脫節(jié)。。schedule的問題總會(huì)造成
          testcase跟不上代碼變化。。。最終淪為無用的東西之類事兒。。。

          如果說一個(gè)demo。應(yīng)該不會(huì)有什么問題。。
          但是一個(gè)龐大的產(chǎn)品。多個(gè)小組合作。。
          中間不可避免的會(huì)出協(xié)調(diào)性問題。。。。
          這好似工程上建大廈。如果按照成熟的板型
          咱們嘩啦嘩啦的建他100個(gè)。只要材料ok。態(tài)度認(rèn)真。
          復(fù)核程序到位。。那房子肯定建的板板的。。。
          但是如果你是從新設(shè)計(jì)。。諸如法國那個(gè)飛機(jī)場(chǎng)似的。
          加入很多創(chuàng)新的元素。系統(tǒng)又復(fù)雜。。。你怎么可以說我
          幾十年后就肯定能保證不掉磚?

          這問題似乎很沒意思。每個(gè)人都不希望看到別扭的bug。。
          但是這永遠(yuǎn)是一個(gè)極限。。好似成品率度只能算小數(shù)點(diǎn)后多少多少位
          哪怕是99.99999%。他也不是100%。。  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2006年6月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(20)

          隨筆檔案

          友情BLOG

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 汕尾市| 德州市| 革吉县| 冀州市| 宁国市| 浦城县| 和林格尔县| 兴宁市| 西贡区| 安化县| 海兴县| 濉溪县| 保康县| 奉节县| 陆良县| 宜宾县| 阿图什市| 金湖县| 丽水市| 鄱阳县| 鹤山市| 都匀市| 青神县| 浏阳市| 乐陵市| 松溪县| 通辽市| 沧源| 环江| 封开县| 哈尔滨市| 怀来县| 宁陕县| 金山区| 惠州市| 靖州| 兴化市| 旺苍县| 灵台县| 漳州市| 博白县|