寫更好的代碼,還是寫更少的代碼?

2017-02-26    分類: 網(wǎng)站建設(shè)

我寧愿讓我的學(xué)生盡他們大的努力去寫更好的代碼,而不是寫更好的注釋。——Uncle Bob Martin

比起“更好”的代碼,我更寧愿學(xué)生們寫更少的代碼。——Bob Marshall

沒有任何事情比“非常有效率地做了一件本不應(yīng)該做的事”更沒用的了。——Peter Drucker

這引發(fā)了一場(chǎng)關(guān)于“寫更好的代碼”還是“寫更少的代碼”的討論。

一個(gè)好的折中方案就是,用更少的代碼寫出更好的代碼。代碼的優(yōu)劣或多少不是看代碼行數(shù),也不是其他一些愚蠢的東西,而主要看的是有意義的代碼。在這場(chǎng)討論中,支持“更少代碼”的一方,關(guān)心的不是使代碼盡可能緊湊、避免重復(fù),等等,而是他們認(rèn)為只要合理,盡可能少些或不寫代碼。

我們是否應(yīng)該將重點(diǎn)放在決定什么應(yīng)該做,什么不應(yīng)該做,還是應(yīng)該竭力去改進(jìn)我們的軟件開發(fā)技能?

無論如何,在沒有一個(gè)上下文環(huán)境的情況下,誰也無法合理地回答這個(gè)問題。下面我們來分開討論。

更好的代碼

這是站在開發(fā)者的角度來說的。在大部分中、大型軟件開發(fā)公司中,開發(fā)者與產(chǎn)品管理者或產(chǎn)品所有者之間幾乎沒有任何直接聯(lián)系,這意味著,管理者對(duì)于產(chǎn)品的構(gòu)建知識(shí)知道得很少,甚至一點(diǎn)都不知道。

當(dāng)然,作為一個(gè)開發(fā)人員,我可以,也應(yīng)該分享我關(guān)于構(gòu)建特定功能的一些看法,但是我也不太可能有足夠的信息在很多情況下做出正確的判斷。比如,我認(rèn)為不應(yīng)該添加某一個(gè)該死的功能,就算我是對(duì)的,但如果客戶讓加,我的意見被采納的幾率會(huì)很小。當(dāng)然,也不完全是這樣,你可以說服客戶改變想法,但這種情況很少。

如果你曾經(jīng)參與過一個(gè)大的合同項(xiàng)目,每個(gè)細(xì)節(jié)在前期都已經(jīng)確定好了,并且由于內(nèi)部政治原因,客戶方面也沒人想去更改任何東西,你知道我在說什么。如果你沒有在類似公司工作過,你很幸運(yùn)。

在這種情況下,最好專注于構(gòu)建更好的代碼,而不是更少的代碼,因?yàn)楹茈y說什么是有意義的更少的代碼。

更少的代碼

這是站在產(chǎn)品管理者的角度。對(duì)于他們來說,他們首要的重點(diǎn)應(yīng)放在構(gòu)建更少的代碼上。是的,我知道他們不寫代碼,但這仍然應(yīng)該是他們首要的目標(biāo)。

產(chǎn)品經(jīng)理應(yīng)該知道哪些功能能夠提升產(chǎn)品的價(jià)值,哪些不能。他們通常更適合與客戶進(jìn)行這樣的討論,比如客戶想要哪些功能、費(fèi)用、不必要的功能、無用的代碼等。

作為開發(fā)者,你的領(lǐng)導(dǎo)希望你創(chuàng)造更多的價(jià)值,或更少的浪費(fèi),把重點(diǎn)放在構(gòu)建更少的代碼上。當(dāng)然,你可以自由地選擇編寫更好的代碼,或者更少的代碼,但是似乎選擇后者要更加明智。同時(shí),你的工作效率很大程度上取決于你完成的工作,因此,你應(yīng)該用更少量的代碼完成更多的功能,并注重這些代碼的質(zhì)量,而不是使用大量的代碼來解決問題。

很顯然,這場(chǎng)爭(zhēng)論不會(huì)有一個(gè)確定的答案。站在產(chǎn)品經(jīng)理的立場(chǎng),我會(huì)建議Peter Drucker的觀點(diǎn),而對(duì)于開發(fā)者,我會(huì)建議Bob Martin的觀點(diǎn)。

當(dāng)前標(biāo)題:寫更好的代碼,還是寫更少的代碼?
文章路徑:http://www.muchs.cn/news27/74377.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、品牌網(wǎng)站制作、服務(wù)器托管、網(wǎng)站收錄、微信小程序、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)