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