任何有用的指標都會好的你什麼時候說代碼是遺留代碼?
回答
我在代碼中尋找的一件事是單元測試。這將給予重構它的自由。所以如果代碼沒有測試,我認爲它是一個遺留代碼。
術語「遺留代碼」是主觀的,可能是一個加載的術語。但總的來說,我認同傳統代碼不是單元測試的觀點,因此很難重構。
我可能是錯的,但我不認爲有一個確定的指標。
通常一段代碼被認爲是遺留的,當它看到至少5-6個發佈週期(可能更多)。通常情況下,原來的執行者不在身邊,代碼通過維護。
我不知道任何可用於確定是否是「遺留代碼」的實際度量標準,但是比剛剛編寫的任何東西都可以被認爲是遺留的。遺留代碼對不同的人/組織來說意味着不同的事情,所以它確實有點主觀。
如果代碼:
- 已取代實現相同或功能或更好
- 沒有使用當前系統更新的代碼
- 很快被別的完全的東西所取代
- 已被封存於歷史原因
- 當供應商停止支持它
我不相信有一個確定的答案,但我確實認爲代碼是遺留代碼的可能性隨着不想觸摸它的人數增加以及改變它的可能性會導致它打破。
開發者離開房屋幾乎幾秒鐘。 :)
如果...
有沒有錢存在銀行新功能
你找不到任何人坦言工作的項目,需要固定
源代碼您擁有的項目已經失效MIA
...那麼您正在處理遺留代碼。
- 當代碼足夠老時,您從未遇到最初編寫代碼的開發人員。
- 當第三方庫不再受支持時。
一個更好的問題可能是將一段代碼標記爲非遺留問題。
對我而言,傳統意味着不可改變。所以只要你不再能夠改變它,它就是遺產。
能力是否被固定需求所消除,害怕破碎,知識喪失或其他影響在很大程度上是無關緊要的。
一個相關的說明是,我不認爲我會使用遺留下來的確切單詞,因爲它激起了太多的情緒,是有用的。
我們使用術語「傳統」是指任何代碼,仍然在使用,使用技術,我們已經停止了活躍的發展而發展。
這是代碼,我們寧願重寫使用較新的工具比修改其當前狀態。
在我看來,所有編寫的代碼都是遺留代碼。可能需要一些時間才能將原始意圖和關於代碼的所有決定都遺忘,但遲早你無法想象他們在寫作時想到的是什麼。你從不編寫遺留代碼,對吧?
使用單元測試或自開發人員離開建築物之類的某些度量(如秒)並不真正衡量代碼是否爲遺留代碼。遺留代碼可能有一套很好的單元測試和評論,它可能已經過嚴格的代碼審查和其他分析。這並不意味着代碼對於手頭的程序仍然是相關的。它只是表明代碼可能寫得相當好。如果它不再相關,代碼實際上會使解決程序開發的問題變得更加困難。
當沒有人熟悉或熟悉維護代碼時,通常人們會將其稱爲遺留代碼。
單元測試使不熟悉代碼的人可以更容易地深入其中,因此理論有助於防止代碼成爲「遺留」代碼。
通常當代碼是遺留的時候,它以不同的方式被改變。人們是害怕改變它,但也往往是快速和骯髒變化,因爲沒有人理解全部後果。代碼重複問題可能會出現,因爲人們不想承擔與更深層次變化相關的風險。
所以,在這種情況下,情況可能會變得更糟,在增加速度。
傳統代碼在許多地方被定義爲「沒有測試的代碼」。我並不認爲它們在測試類型中是特定的,但總的來說,如果您不能在不擔心未知事件的情況下對代碼進行更改,那麼它很快就會發生變化。
- 1. 「遺留代碼」的定義是什麼?
- 2. Fortran遺留代碼
- 3. MSXML2和.net - 遺留代碼
- 4. 測試遺留代碼
- 5. PowerMockito測試遺留代碼
- 6. 棱鏡是否使用遺留代碼?
- 7. 密碼驗證遺留代碼
- 8. 什麼時候不用開源代碼?
- 9. 什麼時候重構代碼?
- 10. 什麼時候你會首先使用實體框架代碼
- 11. PHP代碼重複。在什麼時候複製代碼是正確的方式?
- 12. 什麼好處泛型提供了遺留代碼:
- 13. 右鍵,左鍵和雙鍵 - 你有什麼代碼和什麼時候?
- 14. 你如何看待遺留代碼(和數據)?
- 15. 遺留代碼:代碼首先一對一或零關係
- 16. 支持遺留代碼,無需訪問編譯後代碼
- 17. Rcpp升級遺留代碼問題
- 18. 刪除遺留代碼分支
- 19. 瞭解遺留的grails代碼?
- 20. 構建遺留Turbo C++代碼
- 21. 遺留代碼visual basic to c#
- 22. 可以EntityFramework與遺留代碼並存
- 23. 彈簧依賴衝突 - 遺留代碼
- 24. .Net向遺留代碼添加表
- 25. 對於大型遺留代碼庫MSTest
- 26. 接受測試遺留代碼
- 27. 神祕線「??!??!」在遺留代碼
- 28. RequireJS和頁面代碼中的遺留
- 29. 使用ActiveMerchant的PayPal API(遺留代碼)
- 30. 如何使用yii與遺留代碼?
一個程序員修煉之我見這裏。 – 2008-09-23 08:36:22