|
英文原文:There is No Right Way to Develop Software
驅(qū)動(dòng)測(cè)試開(kāi)發(fā)(TDD)是唯一能讓你寫(xiě)出沒(méi)有 bug 的程序的方法。只有結(jié)對(duì)編程是可行的。我們之所以成功就是因?yàn)槲覀兪褂玫氖沁h(yuǎn)程開(kāi)發(fā)人員。等等等等……
像這樣的話每天我都能看見(jiàn)。
像這樣的風(fēng)言風(fēng)語(yǔ)十分能蠱惑人心,它愚弄我們,讓我們認(rèn)為這就是我們不能遇到阿拉丁的那個(gè)茶壺里的精靈的唯一原因。最終,這些人所寫(xiě)的會(huì)讓你也這么認(rèn)為。
如果你隨機(jī)找 100 個(gè)程序員,問(wèn)他們“開(kāi)始一個(gè)新項(xiàng)目前首先想到的技術(shù)方案是什么?”相信你會(huì)得到 100 種不同的回答。
那么,為什么有這么多的人看起來(lái)堅(jiān)信自己的方法才是唯一可行的?
在我看來(lái),這答案既十分的簡(jiǎn)單,又十分的復(fù)雜。說(shuō)簡(jiǎn)單,是因?yàn)橛行┤司褪窍矚g說(shuō)。說(shuō)復(fù)雜,是因?yàn)檐浖I(yè)實(shí)際上是一系列亞文化的聚合,它們不斷相互對(duì)抗來(lái)保衛(wèi)自己的職業(yè)安全。我知道,這話有多重含義。
我之所以會(huì)談?wù)撨@些,全是因?yàn)樽蛲碜x到了 Chris Sturgill 的一篇文章,是關(guān)于測(cè)試以及它們?nèi)绾伪贿^(guò)度吹捧。文章提到的所有觀點(diǎn)都有理有據(jù),令人信服。
但這篇文章后面跟隨的評(píng)論描述的卻是一副完全不一樣的景象。如果你不看文章只讀評(píng)論,你會(huì)以為 Chris 腦子進(jìn)水了或出來(lái)什么其它事。他怎么敢質(zhì)疑TDD?他怎么膽敢質(zhì)疑測(cè)試驅(qū)動(dòng)文化的有效性?
看了這些評(píng)論后,我感覺(jué)有一股力量在逼迫我去寫(xiě)點(diǎn)什么。但我的這篇文章絕對(duì)不是來(lái)討論什么 TDD 的。我想討論的是如果成為一名優(yōu)秀的軟件開(kāi)發(fā)人員。
讓我們進(jìn)入正題。
軟件開(kāi)發(fā)中沒(méi)有所謂“正確”的方法。我重申:軟件開(kāi)發(fā)中沒(méi)有所謂“正確”的方法。編程界里有些人喜歡搞圖騰崇拜,他們拒絕接受這樣的事實(shí)。他們執(zhí)著于幾小時(shí)前剛學(xué)到的一些誘人的新出現(xiàn)的熱門(mén)技術(shù),他們認(rèn)為這是能讓工作做好、能開(kāi)發(fā)出可信賴的軟件的唯一辦法。
我很抱歉讓你們失望。這些新出現(xiàn)的熱門(mén)技術(shù)很可能并不新。很可能只是一些曾經(jīng)流行的技術(shù)的新的市場(chǎng)炒作。從另一方面講,你拋棄以前學(xué)到的所有東西,你改變以前的所有做法,你全面擁抱你學(xué)到的這個(gè)新的“唯一”的方法。事情不是這樣的。別這么做。
做一個(gè)優(yōu)秀的程序員就意味著你要學(xué)會(huì)妥協(xié)折中。這意味著在A項(xiàng)目是你需要使用一種技術(shù)方案而在B項(xiàng)目上你需要使用另外一種。這意味著你需要在你的思路和老板/客戶的要求之間做平衡。很多時(shí)候事情并不能做到雙方達(dá)成統(tǒng)一,但這并不意味著你該懊惱、痛斥為什么不按你的思路去做。
真正重要的是,秉持自己的觀點(diǎn),但柔軟的應(yīng)用。
只有這樣,你才能走的更遠(yuǎn)。
it知識(shí)庫(kù):軟件開(kāi)發(fā)中沒(méi)有所謂正確的方法,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。