之前有篇文章講了4條優(yōu)秀代碼的準(zhǔn)則,今天再分享4條聂受。(此文來自樂字節(jié))
01 —
好的代碼,無違和感
產(chǎn)品就像工具烤镐,幫用戶達(dá)成某種目的蛋济。它們既不是裝飾物也不是藝術(shù)品。因此炮叶,它們的設(shè)計(jì)應(yīng)既中立又受約束碗旅,為用戶的自我表達(dá)留出空間。
代碼本就是抽象的镜悉,但有些代碼過度抽象了祟辟。
比如使用不常見的數(shù)據(jù)結(jié)構(gòu),過于復(fù)雜的庫积瞒,重新發(fā)明輪子等等川尖,而那些實(shí)際上可用的、可維護(hù)的代碼卻被忽略了茫孔。
那些為了優(yōu)雅而優(yōu)雅的代碼叮喳,以犧牲正確性為代價(jià)的代碼,只會(huì)適得其反缰贝,影響正常工作馍悟。
這種代碼應(yīng)該重構(gòu)或刪除。
02 —
好的代碼剩晴,穿越時(shí)間
好的設(shè)計(jì)在創(chuàng)造時(shí)就避免過時(shí)锣咒,所以永遠(yuǎn)不會(huì)顯得過時(shí)侵状。與時(shí)尚的設(shè)計(jì)不同,它可以持續(xù)很多年毅整,甚至在如今的“快餐時(shí)尚”中也是如此趣兄。
在臨時(shí)數(shù)據(jù)庫、框架和模式方面悼嫉,軟件開發(fā)面臨的問題比其他任何領(lǐng)域都多艇潭。
我們應(yīng)該選擇經(jīng)過實(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é)省資源并最大程度地減少物理和視覺污染刃唤。
程序的維護(hù)隔心,對(duì)服務(wù)器消耗很大。有時(shí)為了提高代碼的性能尚胞,不僅會(huì)影響用戶硬霍,還會(huì)影響環(huán)境。
好的代碼笼裳,可以有效利用數(shù)據(jù)結(jié)構(gòu)和算法唯卖,提高其復(fù)用性。
初級(jí)程序員躬柬,可能會(huì)經(jīng)常在代碼庫之間復(fù)制粘貼相同的功能拜轨,這種做法其實(shí)很低效。
它們應(yīng)該放在庫里面允青,在合適的情況下開源橄碾。
04 —
好的代碼,是簡(jiǎn)潔的
更少颠锉,但是更好法牲。因?yàn)樗鼘W⒂诨久妫耶a(chǎn)品不會(huì)因?yàn)榉潜匾蛩囟又刎?fù)擔(dān)琼掠。好的產(chǎn)品設(shè)計(jì)拒垃,回歸純粹,回歸簡(jiǎn)單瓷蛙。
這條也是我在樂字節(jié)的首選準(zhǔn)則悼瓮。怎么才能用更少的代碼達(dá)到同樣的目的戈毒?給大家?guī)c(diǎn)建議:
優(yōu)先找現(xiàn)成的解決方案 專注于當(dāng)下的問題,方案不要“太大” 深度思考横堡,確保方案的簡(jiǎn)單性完全窮盡
從長(zhǎng)遠(yuǎn)來看埋市,簡(jiǎn)潔的代碼更易維護(hù),新的開發(fā)者接管也能更容易理解翅萤,測(cè)試成本也更低...總之好處很多恐疲。
總的來說,代碼既體現(xiàn)了文學(xué)素養(yǎng)套么,又是一種理性的嘗試,所以使用產(chǎn)品設(shè)計(jì)的一些基本原理來思考和討論代碼碳蛋,往往會(huì)很受益胚泌。
PS:自學(xué)視頻阿里P8強(qiáng)烈推薦的8個(gè)Java項(xiàng)目實(shí)戰(zhàn)大合集B站:BV1J64y1R7UN