我寫了一篇blog叫做《招人不難》,很多朋友很贊同,也有的朋友不同意我的意見,他們很懷疑:“有bug的一律不要?沒有BUG的代碼是不存在的...blabla”
?
正好今天又看到一篇轉(zhuǎn)貼的笑話,叫做《【轉(zhuǎn)】從一個笑話看軟件開發(fā)管理》,大意是,程序員交出了自以為沒有bug的代碼,然后一切都變得越來越糟糕,而程序員總是會交出自以為沒有bug的代碼。
?
我們今天就來談?wù)劊粋€程序員,什么時候可以交出自己的代碼,并且可以自豪的對別人說:“我的代碼里面,沒有bug!”。
?
先說傳統(tǒng)的做法,一個負責的程序員,應(yīng)該在交出代碼之前,自己跑好多次自己的代碼,左看右看,上看下看。直到交出去的時候,沒有一個人能夠發(fā)現(xiàn)其中的問題。這樣的能力一般只有天才才能具備,我以前遇到過一個。但是,如果我企圖以這樣的標準來招人的話,那就是在發(fā)瘋,怎么還敢說“招人不難”?
?
說說可行的辦法吧。一個程序員如果足夠的謙虛,時時想證明自己可能犯錯,即將犯錯,或者已經(jīng)犯錯。那么他就會盡量寫出足夠多的TestCase,以便打消自己的疑慮。直到所有的測試用例全部通過,屏幕上顯示出美麗的綠色長條,他才能確信,自己的代碼沒有bug。
?
所以,我的判斷標準,也很簡單。如果寄給我的代碼,沒有附帶測試用例,我就自己運行他的程序,隨意的亂找,找到一個我認為是bug的,那就是有bug了。如果寄給我的代碼,附帶了足夠的測試用例,我只要Run一次,看到綠條,這一關(guān)就算是過了?!芎唵伟伞?/div>
?
也許有人會說,那如果他的測試用例很簡單呢?豈不是不能說明什么問題?怎么不能說明問題呢?首先可以說明:這是一個會寫測試用例的程序員!其次,我會看看他的測試用例的代碼,大概覆蓋了多少的功能特性。當然,這是更進一步的能力判斷。但是至少,他的代碼已經(jīng)達成了他自己的設(shè)計了呀。
?
所以:“有bug的一律不要”,意味著,你最好能夠自己證明自己沒有bug,否則,我如果找到一個bug,你就沒戲了。
FeedBack:
# re: 如何寫出沒有bug的程序?
# re: 如何寫出沒有bug的程序?
# re: 如何寫出沒有bug的程序?
# re: 如何寫出沒有bug的程序?
# re: 如何寫出沒有bug的程序?
# re: 如何寫出沒有bug的程序?
2006-06-26 09:47 | dfinger
如果說一個產(chǎn)品有明確的是需求,設(shè)計,實現(xiàn)和完整測試用例。。
那么無bug的夢想真的也不是那么難。。。
不過呢。。往往需求總是會變化的。。。
需求和實現(xiàn)總會脫節(jié)。。schedule的問題總會造成
testcase跟不上代碼變化。。。最終淪為無用的東西之類事兒。。。
如果說一個demo。應(yīng)該不會有什么問題。。
但是一個龐大的產(chǎn)品。多個小組合作。。
中間不可避免的會出協(xié)調(diào)性問題。。。。
這好似工程上建大廈。如果按照成熟的板型
咱們嘩啦嘩啦的建他100個。只要材料ok。態(tài)度認真。
復(fù)核程序到位。。那房子肯定建的板板的。。。
但是如果你是從新設(shè)計。。諸如法國那個飛機場似的。
加入很多創(chuàng)新的元素。系統(tǒng)又復(fù)雜。。。你怎么可以說我
幾十年后就肯定能保證不掉磚?
這問題似乎很沒意思。每個人都不希望看到別扭的bug。。
但是這永遠是一個極限。。好似成品率度只能算小數(shù)點后多少多少位
哪怕是99.99999%。他也不是100%。。 回復(fù) 更多評論
那么無bug的夢想真的也不是那么難。。。
不過呢。。往往需求總是會變化的。。。
需求和實現(xiàn)總會脫節(jié)。。schedule的問題總會造成
testcase跟不上代碼變化。。。最終淪為無用的東西之類事兒。。。
如果說一個demo。應(yīng)該不會有什么問題。。
但是一個龐大的產(chǎn)品。多個小組合作。。
中間不可避免的會出協(xié)調(diào)性問題。。。。
這好似工程上建大廈。如果按照成熟的板型
咱們嘩啦嘩啦的建他100個。只要材料ok。態(tài)度認真。
復(fù)核程序到位。。那房子肯定建的板板的。。。
但是如果你是從新設(shè)計。。諸如法國那個飛機場似的。
加入很多創(chuàng)新的元素。系統(tǒng)又復(fù)雜。。。你怎么可以說我
幾十年后就肯定能保證不掉磚?
這問題似乎很沒意思。每個人都不希望看到別扭的bug。。
但是這永遠是一個極限。。好似成品率度只能算小數(shù)點后多少多少位
哪怕是99.99999%。他也不是100%。。 回復(fù) 更多評論
只有注冊用戶登錄后才能發(fā)表評論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||