我寧愿讓我的學(xué)生盡他們最大的努力去寫(xiě)更好的代碼,而不是寫(xiě)更好的注釋。——Uncle Bob Martin
比起“更好”的代碼,我更寧愿學(xué)生們寫(xiě)更少的代碼。——Bob Marshall
沒(méi)有任何事情比“非常有效率地做了一件本不應(yīng)該做的事”更沒(méi)用的了。——Peter Drucker
這引發(fā)了一場(chǎng)關(guān)于“寫(xiě)更好的代碼”還是“寫(xiě)更少的代碼”的討論。
一個(gè)好的折中方案就是,用更少的代碼寫(xiě)出更好的代碼。代碼的優(yōu)劣或多少不是看代碼行數(shù),也不是其他一些愚蠢的東西,而主要看的是有意義的代碼。在這場(chǎng)討論中,支持“更少代碼”的一方,關(guān)心的不是使代碼盡可能緊湊、避免重復(fù),等等,而是他們認(rèn)為只要合理,盡可能少些或不寫(xiě)代碼。
我們是否應(yīng)該將重點(diǎn)放在決定什么應(yīng)該做,什么不應(yīng)該做,還是應(yīng)該竭力去改進(jìn)我們的軟件開(kāi)發(fā)技能?
無(wú)論如何,在沒(méi)有一個(gè)上下文環(huán)境的情況下,誰(shuí)也無(wú)法合理地回答這個(gè)問(wèn)題。下面我們來(lái)分開(kāi)討論。
更好的代碼
這是站在開(kāi)發(fā)者的角度來(lái)說(shuō)的。在大部分中、大型軟件開(kāi)發(fā)公司中,開(kāi)發(fā)者與產(chǎn)品管理者或產(chǎn)品所有者之間幾乎沒(méi)有任何直接聯(lián)系,這意味著,管理者對(duì)于產(chǎn)品的構(gòu)建知識(shí)知道得很少,甚至一點(diǎn)都不知道。
當(dāng)然,作為一個(gè)開(kāi)發(fā)人員,我可以,也應(yīng)該分享我關(guān)于構(gòu)建特定功能的一些看法,但是我也不太可能有足夠的信息在很多情況下做出正確的判斷。比如,我認(rèn)為不應(yīng)該添加某一個(gè)該死的功能,就算我是對(duì)的,但如果客戶(hù)讓加,我的意見(jiàn)被采納的幾率會(huì)很小。當(dāng)然,也不完全是這樣,你可以說(shuō)服客戶(hù)改變想法,但這種情況很少。
如果你曾經(jīng)參與過(guò)一個(gè)大的合同項(xiàng)目,每個(gè)細(xì)節(jié)在前期都已經(jīng)確定好了,并且由于內(nèi)部政治原因,客戶(hù)方面也沒(méi)人想去更改任何東西,你知道我在說(shuō)什么。如果你沒(méi)有在類(lèi)似公司工作過(guò),你很幸運(yùn)。
在這種情況下,最好專(zhuān)注于構(gòu)建更好的代碼,而不是更少的代碼,因?yàn)楹茈y說(shuō)什么是有意義的更少的代碼。
更少的代碼
這是站在產(chǎn)品管理者的角度。對(duì)于他們來(lái)說(shuō),他們首要的重點(diǎn)應(yīng)放在構(gòu)建更少的代碼上。是的,我知道他們不寫(xiě)代碼,但這仍然應(yīng)該是他們首要的目標(biāo)。
產(chǎn)品經(jīng)理應(yīng)該知道哪些功能能夠提升產(chǎn)品的價(jià)值,哪些不能。他們通常更適合與客戶(hù)進(jìn)行這樣的討論,比如客戶(hù)想要哪些功能、費(fèi)用、不必要的功能、無(wú)用的代碼等。
作為開(kāi)發(fā)者,你的領(lǐng)導(dǎo)希望你創(chuàng)造更多的價(jià)值,或更少的浪費(fèi),把重點(diǎn)放在構(gòu)建更少的代碼上。當(dāng)然,你可以自由地選擇編寫(xiě)更好的代碼,或者更少的代碼,但是似乎選擇后者要更加明智。同時(shí),你的工作效率很大程度上取決于你完成的工作,因此,你應(yīng)該用更少量的代碼完成更多的功能,并注重這些代碼的質(zhì)量,而不是使用大量的代碼來(lái)解決問(wèn)題。
很顯然,這場(chǎng)爭(zhēng)論不會(huì)有一個(gè)確定的答案。站在產(chǎn)品經(jīng)理的立場(chǎng),我會(huì)建議Peter Drucker的觀點(diǎn),而對(duì)于開(kāi)發(fā)者,我會(huì)建議Bob Martin的觀點(diǎn)。
地 址:北京市海淀區(qū)建材城中路12號(hào)院17號(hào)樓1層119室
武漢分公司地址:湖北省武漢市洪山區(qū)南國(guó)雄楚廣場(chǎng)A4棟2011室
鄭州分公司地址:河南鄭州金水區(qū)東風(fēng)路科技市場(chǎng)對(duì)面米蘭陽(yáng)光6號(hào)樓917室
郵 箱:haidanet@163.com
24小時(shí)聯(lián)系電話: 15201609116 13651084380