之前有篇文章講了4條優(yōu)秀代碼的準(zhǔn)則,今天再分享4條。(此文來(lái)自樂(lè)字節(jié))
01 —
好的代碼,無(wú)違和感
產(chǎn)品就像工具,幫用戶達(dá)成某種目的。它們既不是裝飾物也不是藝術(shù)品。因此,它們的設(shè)計(jì)應(yīng)既中立又受約束,為用戶的自我表達(dá)留出空間。
代碼本就是抽象的,但有些代碼過(guò)度抽象了。
比如使用不常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),過(guò)于復(fù)雜的庫(kù),重新發(fā)明輪子等等,而那些實(shí)際上可用的、可維護(hù)的代碼卻被忽略了。
那些為了優(yōu)雅而優(yōu)雅的代碼,以犧牲正確性為代價(jià)的代碼,只會(huì)適得其反,影響正常工作。
這種代碼應(yīng)該重構(gòu)或刪除。
02 —
好的代碼,穿越時(shí)間
好的設(shè)計(jì)在創(chuàng)造時(shí)就避免過(guò)時(shí),所以永遠(yuǎn)不會(huì)顯得過(guò)時(shí)。與時(shí)尚的設(shè)計(jì)不同,它可以持續(xù)很多年,甚至在如今的“快餐時(shí)尚”中也是如此。
在臨時(shí)數(shù)據(jù)庫(kù)、框架和模式方面,軟件開(kāi)發(fā)面臨的問(wèn)題比其他任何領(lǐng)域都多。
我們應(yīng)該選擇經(jīng)過(guò)實(shí)戰(zhàn)檢驗(yàn)的解決方案,并在技術(shù)選擇上堅(jiān)持保守原則。
好的代碼,可以穿越時(shí)間。
多年前的一些底層原理放到現(xiàn)在仍然適用,因?yàn)樗鼈兛紤]長(zhǎng)遠(yuǎn),不會(huì)為了迎合當(dāng)下而沿用臨時(shí)方案。
03 —
好的代碼,是環(huán)保的
好的設(shè)計(jì)為保護(hù)環(huán)境做出了重要貢獻(xiàn)。在產(chǎn)品的整個(gè)生命周期中,它可以節(jié)省資源并最大程度地減少物理和視覺(jué)污染。
程序的維護(hù),對(duì)服務(wù)器消耗很大。有時(shí)為了提高代碼的性能,不僅會(huì)影響用戶,還會(huì)影響環(huán)境。
好的代碼,可以有效利用數(shù)據(jù)結(jié)構(gòu)和算法,提高其復(fù)用性。
初級(jí)程序員,可能會(huì)經(jīng)常在代碼庫(kù)之間復(fù)制粘貼相同的功能,這種做法其實(shí)很低效。
它們應(yīng)該放在庫(kù)里面,在合適的情況下開(kāi)源。
04 —
好的代碼,是簡(jiǎn)潔的
更少,但是更好。因?yàn)樗鼘W⒂诨久?,而且產(chǎn)品不會(huì)因?yàn)榉潜匾蛩囟又刎?fù)擔(dān)。好的產(chǎn)品設(shè)計(jì),回歸純粹,回歸簡(jiǎn)單。
這條也是我在樂(lè)字節(jié)的首選準(zhǔn)則。怎么才能用更少的代碼達(dá)到同樣的目的?給大家?guī)c(diǎn)建議:
優(yōu)先找現(xiàn)成的解決方案 專注于當(dāng)下的問(wèn)題,方案不要“太大” 深度思考,確保方案的簡(jiǎn)單性完全窮盡
從長(zhǎng)遠(yuǎn)來(lái)看,簡(jiǎn)潔的代碼更易維護(hù),新的開(kāi)發(fā)者接管也能更容易理解,測(cè)試成本也更低...總之好處很多。
總的來(lái)說(shuō),代碼既體現(xiàn)了文學(xué)素養(yǎng),又是一種理性的嘗試,所以使用產(chǎn)品設(shè)計(jì)的一些基本原理來(lái)思考和討論代碼,往往會(huì)很受益。
PS:自學(xué)視頻阿里P8強(qiáng)烈推薦的8個(gè)Java項(xiàng)目實(shí)戰(zhàn)大合集B站:BV1J64y1R7UN