小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

@程序員,代碼清理有必要嗎?

 長沙7喜 2018-11-30

【CSDN編者按】日常編程工作中,程序員經(jīng)常面臨各種代碼bug。但是是否所有項(xiàng)目都適合清理重構(gòu)?bug修復(fù)的手段又是否合理?本文的作者以原型設(shè)計(jì)、新項(xiàng)目、緊急bug修復(fù)、新功能開發(fā)、項(xiàng)目維護(hù)等各階段為例,分別給出了相應(yīng)的解決方法,希望能對你有所幫助。


以下為譯文:

你的項(xiàng)目截止時(shí)間就要到了,你有一個(gè)緊急的 bug 需要修復(fù),你的項(xiàng)目需要快速迭代輸出產(chǎn)品。

雖然你很忙,但是你也必須考慮你的未來:你現(xiàn)在引入的每一個(gè) bug,都會(huì)給以后修復(fù)帶來巨大的時(shí)間成本。因此我們不應(yīng)該使用過時(shí)的API、過時(shí)的版本依賴、或者一些老舊的做事方法。

所以,我們什么時(shí)候來清理我們的代碼呢?

  • 現(xiàn)在就做?

  • 以后需求少了再做?

  • 還是永遠(yuǎn)不做?

本文,我將告訴你該在什么時(shí)間去用以下三種方法來清理你的代碼:

  • 更新項(xiàng)目依賴和廢棄的API;

  • 重構(gòu)不合適的抽象設(shè)計(jì);

  • 編碼規(guī)范和日常編程習(xí)慣等雜項(xiàng)清理。


解決方法


原型設(shè)計(jì)

在工程構(gòu)建之前,你會(huì)做一些技術(shù)調(diào)研,做一些原型設(shè)計(jì)(或者極限編程中的Spike解決方案),但你不會(huì)長期保留使用這些代碼,你僅僅是使用這些代碼來驗(yàn)證是否能解決問題??紤]到你有可能會(huì)廢棄掉這些代碼,更新和規(guī)范沒有什么需要值得特別注意的事項(xiàng)。如果你也想嘗試?yán)斫鈱W(xué)習(xí)那些已經(jīng)存在的API,你也不需要對代碼進(jìn)行重構(gòu)。

但是,如果你是想通過原型設(shè)計(jì)找到更好的抽象方式,你就必須進(jìn)行大量的重構(gòu)了。

最佳實(shí)踐:

  • 更新:不需要處理;

  • 重構(gòu):如果你需要找到更好的架構(gòu)方式,你就需要重構(gòu),反之,你就不用在意重構(gòu)的問題;

  • 雜項(xiàng)清理:不需要處理。

新項(xiàng)目

如果你正在著手搭建一個(gè)全新的項(xiàng)目,你的任何一個(gè)決定都會(huì)給以后帶來很大的維護(hù)成本。

當(dāng)然,這也是一個(gè)機(jī)會(huì),讓你可以使用最新的框架,最佳的解決方案,最好的編程規(guī)范和最好的架構(gòu)。雖然你不一定能做到完美,但是你可以使它盡可能的接近完美。

最佳實(shí)踐:

  • 更新:從現(xiàn)在開始;

  • 重構(gòu):從現(xiàn)在開始;

  • 雜項(xiàng)清理:從現(xiàn)在開始。

緊急的bug修復(fù)

在這個(gè)時(shí)候,你需要快速為用戶修改 bug。如果你看到了問題需要解決,但是這個(gè)問題和當(dāng)前需要修復(fù)的bug無關(guān),我建議你暫時(shí)不要?jiǎng)铀?,?bug 修復(fù)結(jié)束了再來處理它。

有些時(shí)候,bugfix 有兩層含義: 一次是快速解決問題,另一次是你需要讓代碼更整潔。

最佳實(shí)踐:

  • 更新:稍后;

  • 重構(gòu):稍后;

  • 雜項(xiàng)清理:稍后。

新功能開發(fā)中或者不緊急的bug修復(fù)

當(dāng)你有一個(gè)正常迭代開發(fā)的一個(gè)項(xiàng)目,不管你是在做新功能開發(fā),還是bug修復(fù),這個(gè)時(shí)間是你做代碼清理的最佳時(shí)機(jī)。

在這個(gè)時(shí)候,你并不需要修復(fù)所有你接觸到的代碼,你需要做的是整理你處理中的代碼,并且使你的代碼庫更加的整潔。詳情參考https:///xprog/articles/refactoring-not-on-the-backlog/。

最佳實(shí)踐:

  • 更新:立即更新你用到的代碼;

  • 重構(gòu):立即重構(gòu)你用到的代碼;

  • 雜項(xiàng)清理: 在你用到的代碼中,立即使用新的代碼規(guī)范等。

項(xiàng)目維護(hù)階段

當(dāng)你的項(xiàng)目已經(jīng)開發(fā)完成,沒有什么新的開發(fā)任務(wù)的時(shí)候,經(jīng)常幾個(gè)月才有一些給菜單多加一個(gè)選項(xiàng)等這種小的需求修改。

現(xiàn)階段,你的目標(biāo)是做少量的修改,讓項(xiàng)目穩(wěn)定運(yùn)行。重構(gòu)和雜項(xiàng)清理在現(xiàn)階段是不必要的,但是你項(xiàng)目需要你及時(shí)更新一些框架庫的依賴 —— 某些框架庫不在提供服務(wù),或者有安全更新。經(jīng)常更新依賴顯然要比5年才更新一次容易得多。

所以不管你是不是因?yàn)橛衎ug要修復(fù),你都應(yīng)該及時(shí)的去更新你的依賴項(xiàng) —— 理想情況下,長期發(fā)布更新,以減少對API使用的更新需求。

最佳實(shí)踐:

  • 更新:現(xiàn)在更新,并且長期發(fā)布版本支持;

  • 重構(gòu):不需要;

  • 雜項(xiàng)清理: 不需要。


現(xiàn)在與未來的平衡


軟件開發(fā)是一個(gè)持續(xù)的過程,不是做完就沒事了?,F(xiàn)在著手去清理代碼,將會(huì)為你以后節(jié)省時(shí)間,盡管你現(xiàn)在趕項(xiàng)目的截止時(shí)間,現(xiàn)在著手去做也比放在以后多花幾周時(shí)間去做要好。

本文只是做一個(gè)開篇,與任何其它方法一樣,也都有不適用的時(shí)候,所以,你需要根據(jù)你項(xiàng)目中的實(shí)際情況和目標(biāo)來做一些調(diào)整。

原文: https:///2018/11/02/when-clean-up-your-code/

譯者:羅昭成

責(zé)編:郭芮

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多