免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
30 年編碼經(jīng)驗(yàn)濃縮的 10 條最佳實(shí)踐


是什么使得代碼更好?

良好的代碼更易于閱讀、理解、調(diào)試和修改,最重要的是它的缺陷也更少。顯然,編寫良好的代碼需要更多的時(shí)間,但是從長(zhǎng)遠(yuǎn)來看,它也具有更多的價(jià)值,因?yàn)檫@降低了維護(hù)的成本,而且具有更好的可重用性。

事實(shí)上,我們可以將好的代碼等同為可重用的代碼,這也是本篇文章羅列的許多技巧背后的驅(qū)動(dòng)原則。作為一個(gè)要實(shí)現(xiàn)特定功能的開發(fā)者,代碼可以實(shí)現(xiàn)你的短期目標(biāo),但如果沒有其他人希望重用它(包括未來的自己),這些代碼一定會(huì)缺失某些東西。無論它是太復(fù)雜,還是太具體,在不同情況下都有很大可能會(huì)出錯(cuò),或者不被其他開發(fā)者信任。

我發(fā)現(xiàn),只要嘗試堅(jiān)持將下面的最佳實(shí)踐應(yīng)用于你編寫的所有代碼(包括你的實(shí)驗(yàn)和原型),無論你現(xiàn)在的經(jīng)驗(yàn)水平如何,都會(huì)編寫出更好的代碼。


1

遵循單一職責(zé)原則


函數(shù)是程序員的工具中最重要的抽象形式。它們能更多地被重復(fù)使用,你需要編寫的代碼就越少,代碼也因此變得更可靠。較小的函數(shù)遵循單一職責(zé)原則更有可能被重復(fù)使用。


2

盡量減少共享狀態(tài)


你應(yīng)該盡量減少函數(shù)之間的隱式共享狀態(tài),無論它是文件作用域的變量還是對(duì)象的成員字段,這有利于明確要求把值作為參數(shù)。當(dāng)能明確地顯示函數(shù)需要什么才可以產(chǎn)生所需的結(jié)果時(shí),代碼會(huì)變得更容易理解和重用。

對(duì)此的一個(gè)推論是,在一個(gè)對(duì)象中,相對(duì)于成員變量,你更應(yīng)該優(yōu)先選擇靜態(tài)的無狀態(tài)變量 (static stateless variables)。


3

將“副作用”局部化


理想的副作用(例如:打印到控制臺(tái)、日志記錄、更改全局狀態(tài)、文件系統(tǒng)操作等)應(yīng)該被放置到單獨(dú)的模塊中,而不是散布在整個(gè)代碼里面。函數(shù)中的一些“副作用”功能往往違反了單一職責(zé)原則。


4

優(yōu)先使用不變的對(duì)象


如果一個(gè)對(duì)象的狀態(tài)在其構(gòu)造函數(shù)中僅被設(shè)置一次,并且從不再次更改,則調(diào)試會(huì)變得更加容易,因?yàn)橹灰獦?gòu)造正確就能保持有效。這也是降低軟件項(xiàng)目復(fù)雜性的最簡(jiǎn)單方法之一。


5

接口高于類


接收接口的函數(shù)(或 C 中的模板參數(shù)和概念)比在類上運(yùn)行的函數(shù)更具可重用性。


6

對(duì)模塊應(yīng)用良好的原則


尋找機(jī)會(huì)將軟件項(xiàng)目分解成更小的模塊(例如庫和應(yīng)用程序),以促進(jìn)模塊級(jí)別的重用。對(duì)于模塊,應(yīng)該遵循的一些關(guān)鍵原則是:

  1. 盡可能減少依賴

  2. 每個(gè)項(xiàng)目應(yīng)該有一個(gè)明確的職責(zé)

  3. 不要重復(fù)自身

你應(yīng)該努力使你的項(xiàng)目保持小巧和明確。


7

避免繼承


在面向?qū)ο缶幊讨校^承 —— 特別是和虛擬函數(shù)結(jié)合使用時(shí),在可重用性方面往往是一條死胡同。我很少有成功的使用或編寫重載類的庫的經(jīng)歷。


8

將測(cè)試作為設(shè)計(jì)和開發(fā)的一部分


我不是測(cè)試驅(qū)動(dòng)開發(fā)的堅(jiān)定分子,但開始編碼時(shí)先編寫測(cè)試代碼會(huì)使得代碼十分自然地遵循許多指導(dǎo)原則。這也有助于盡早發(fā)現(xiàn)錯(cuò)誤。不過要注意避免編寫無用的測(cè)試,良好的編碼實(shí)踐意味著更高級(jí)別的測(cè)試(例如單元測(cè)試中的集成測(cè)試或特征測(cè)試)在揭示缺陷方面更有效。


9

優(yōu)先使用標(biāo)準(zhǔn)的庫


我經(jīng)??吹礁冒姹镜?nbsp;std::vector 或 std::string,但這幾乎總是浪費(fèi)時(shí)間和精力。一個(gè)明顯的事實(shí)是 —— 你正在為一個(gè)新的地方引入 bug,其他開發(fā)者也不太可能重用你的代碼,因?yàn)闆]有被廣泛理解、支持和測(cè)試。


10

避免編寫新的代碼


這是每個(gè)程序員都應(yīng)遵循的最重要的教誨:最好的代碼就是還沒寫的代碼。你寫的代碼越多,你將遇到的問題就越多,查找和修復(fù)錯(cuò)誤就越困難。

在寫一行代碼之前先問一問自己,有沒有一個(gè)工具、函數(shù)或者庫已經(jīng)實(shí)現(xiàn)了你所需要的功能?你真的需要自己實(shí)現(xiàn)這個(gè)功能,而不是調(diào)用一個(gè)已經(jīng)存在的功能嗎?


寫在最后的話


我發(fā)現(xiàn)編程是一門與學(xué)習(xí)藝術(shù)或運(yùn)動(dòng)非常相似的技能,你通過刻意的練習(xí)和從別人的經(jīng)驗(yàn)中學(xué)習(xí)會(huì)得到更好的結(jié)果。不斷提升你產(chǎn)出的代碼質(zhì)量有助于你成為更優(yōu)秀的程序員。




本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
30 多年的軟件經(jīng)驗(yàn),總結(jié)出10個(gè)編寫出更好代碼的技巧
一個(gè)程序員的讀書筆記
優(yōu)秀編碼原來也可以這么容易--編碼四原則
單元測(cè)試大揭密
程序的書寫規(guī)則(程序的編碼規(guī)范)
STM32單片機(jī)程序與6個(gè)設(shè)計(jì)原則之單一職責(zé)原則
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服