自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

重構(gòu)代碼,真沒(méi)有銀彈

譯文
開(kāi)發(fā) 前端
當(dāng)你試圖為大型項(xiàng)目重構(gòu)代碼時(shí),很快就會(huì)碰壁,因?yàn)槟悴恢酪婚_(kāi)始該做什么,于是你轉(zhuǎn)而開(kāi)始閱讀O'Reilly的技術(shù)類圖書,或者對(duì)軟件開(kāi)發(fā)流程或方法(比如TDD和DDD等)產(chǎn)生興趣。如果是這樣,你的策略將以失敗告終。

?譯者 | 布加迪

審校 | 千山

我的一位同事在大型項(xiàng)目代碼重構(gòu)方面有豐富的經(jīng)驗(yàn),他真誠(chéng)地與我分享了他如何處理這些繁雜的任務(wù)。雖然他做的大部分事情只是堅(jiān)持不懈地努力,就像在健身房鍛煉那樣,但這對(duì)我來(lái)說(shuō)很有意義。本文分享他的秘訣。

1、組織目錄

當(dāng)你試圖為大型項(xiàng)目重構(gòu)代碼時(shí),很快就會(huì)碰壁,因?yàn)槟悴恢酪婚_(kāi)始該做什么,于是你轉(zhuǎn)而開(kāi)始閱讀O'Reilly的技術(shù)類圖書,或者對(duì)軟件開(kāi)發(fā)流程或方法(比如TDD和DDD等)產(chǎn)生興趣。如果是這樣,你的策略將以失敗告終。

無(wú)論如何,你應(yīng)該實(shí)際做起來(lái),而不是尋找所謂的銀彈。首先何不組織項(xiàng)目目錄?你可以從了解幾個(gè)風(fēng)險(xiǎn)入手,因?yàn)檫@么做幾乎不會(huì)導(dǎo)致錯(cuò)誤(bug)。

由于大型項(xiàng)目目錄通常很凌亂,所以你一開(kāi)始會(huì)發(fā)現(xiàn)很難掌握類的范圍、類在何處使用。因此,組織目錄可以幫助你在修改類之前了解類在項(xiàng)目中有哪種角色和作用域。

有時(shí),你很難理解某些類的作用。在這種情況下,可以創(chuàng)建一些臨時(shí)目錄,比如“l(fā)egacy”、“garbage”或之類的目錄,并將類文件放入其中。如果你逐漸了解了類的含義,可以將它們移到其他適當(dāng)?shù)哪夸洝?/p>

2、多寫注釋和文檔

即使你已經(jīng)不得不做代碼重構(gòu),如果仍認(rèn)為不需要任何注釋以獲得干凈的代碼,那么是時(shí)候意識(shí)到你的代碼不再干凈了;你要做的就是寫大量注釋,即使它們看起來(lái)冗長(zhǎng)多余。

你應(yīng)該在讀代碼時(shí)可能會(huì)產(chǎn)生疑問(wèn)的代碼旁邊留下注釋。如果你找到了答案,就應(yīng)該趁還沒(méi)有忘記,把它們作為注釋寫下來(lái)。

如果代碼與你執(zhí)行的當(dāng)前任務(wù)無(wú)關(guān),你可能不想留下注釋。不過(guò)請(qǐng)仔細(xì)想想。如果你不擺脫一種自我強(qiáng)加的約束,你就無(wú)法花時(shí)間去注釋,也看不到未來(lái)開(kāi)始注釋的任何跡象。請(qǐng)注意,它們只是注釋而已。

接下來(lái),不妨寫你不喜歡寫的文檔。寫文檔對(duì)于代碼重構(gòu)來(lái)說(shuō)也必不可少,盡管這項(xiàng)工作總是讓人感到厭煩,有時(shí)甚至讓人筋疲力盡。

你可能過(guò)去或現(xiàn)在參與幾個(gè)基于“代碼即文檔”這一規(guī)則的項(xiàng)目。如果把一項(xiàng)特性換成新特性,你將需要閱讀所有代碼才能理解這項(xiàng)特性的功能。另一方面,如果你有無(wú)可挑剔的文檔,完全可以使用理想的編程來(lái)實(shí)現(xiàn)這些特性。

“好奇怪。既然代碼最終會(huì)被重構(gòu),我為什么還要寫注釋和文檔呢?”

這種想法是錯(cuò)誤的。代碼重構(gòu)是一項(xiàng)持久的工作。你不確定什么時(shí)候可以開(kāi)始,也不確定是否可以憑一己之力開(kāi)始。有許多注釋和文檔在將來(lái)供你和同事閱讀。

3、編寫更多的代碼

這聽(tīng)起來(lái)似乎很簡(jiǎn)單,但不是開(kāi)玩笑。

為了評(píng)估工作效率,確認(rèn)提交和修改了幾行代碼怎么樣?比如說(shuō),假設(shè)你無(wú)法在頭一個(gè)月完成100次提交和10000次添加或刪除,那么你可能需要重新審查計(jì)劃。

不管怎樣,不妨盡可能關(guān)注編程。你不必事先考慮架構(gòu)、測(cè)試、編程規(guī)則或之類的事情,因?yàn)槟憧梢赃吘幊踢吙紤]這些事情。如果你首先正視代碼編寫,就會(huì)找到與項(xiàng)目兼容的度量指標(biāo)。

“你的意思是,我必須一開(kāi)始就要重寫我寫的所有代碼,是嗎?”

是的,你說(shuō)得對(duì)。如果你犯了錯(cuò)誤,就重寫代碼。沒(méi)有人能夠在不遇到失敗的情況下完成代碼重構(gòu)。

“話雖如此,還是很難擠出時(shí)間寫這么多的代碼。”

你可能會(huì)遇到一些問(wèn)題,比如辦公室會(huì)議太多、項(xiàng)目前期時(shí)間太長(zhǎng),或者你自身的技能不足。然而,沒(méi)有什么是一蹴而就的。同樣,你沒(méi)必要尋找銀彈,只需不斷地努力。

有志者,事竟成。

原文鏈接:https://medium.com/@cafedeichi/massive-project-code-refactoring-tips-4a973c3bcc7f

責(zé)任編輯:武曉燕 來(lái)源: 51CTO技術(shù)棧
相關(guān)推薦

2014-06-17 09:42:05

軟件開(kāi)發(fā)軟件設(shè)計(jì)

2021-08-03 08:13:48

重構(gòu)API代碼

2012-07-27 10:30:12

重構(gòu)

2013-08-06 13:58:27

2019-04-03 08:10:17

代碼架構(gòu)信息

2016-12-12 15:22:41

編程

2024-09-05 10:17:34

2011-09-05 10:30:51

重構(gòu)代碼庫(kù)業(yè)務(wù)模型

2022-08-02 08:07:24

單元測(cè)試代碼重構(gòu)

2013-10-21 17:54:00

代碼重構(gòu)修改

2022-07-04 07:37:51

模板模式重構(gòu)

2015-08-11 09:39:25

重構(gòu)提高代碼質(zhì)量

2011-08-16 09:47:58

編程

2019-02-18 16:21:47

華為代碼重構(gòu)

2021-09-03 23:01:58

CSS 技巧代碼重構(gòu)

2021-05-26 08:50:37

JavaScript代碼重構(gòu)函數(shù)

2011-03-21 16:10:08

SQL Server日志

2024-02-22 10:27:00

Python開(kāi)發(fā)

2018-04-25 10:03:28

前端重構(gòu)Javascript

2024-08-06 12:35:42

C#代碼重構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)