2009-06-02 38 views
1

我是一名承包商,經常帶領項目進行正式工作,只是在截止日期前實施功能。雖然我的速度通常比底層設計更快。所以我經常在等待最終設計的時候創建功能/方法來初步完成任務。例如,目前我的任務是以一種對當前數據庫設計來說過於複雜的方式來執行默認排序的記錄(實際上,我會使用MySQL的「字段」功能,除非我不認爲Java/Hibernate支持它)。因此,我創建了一個函數,在這個函數中,記錄可以暫時在應用程序級進行排序,可以在必要的數據庫設計工作完成後重新實現或完全避免。設計趕上實施時避免髒東西

我擔心的是,一旦完成了所有必要的設計(總體上和/或具體針對上述情況),我不想留下可能不必要的功能/方法的蹤跡。有時他們可能會增加設計的價值,但有時他們最終可能會變成不必要的間接層。

我應該如何處理這個問題?我能做些什麼來減輕這一點?通常是短期承包商,我通常沒有時間 - 或權限 - 實施諸如「戰略模式」之類的東西,如果我真的對整體設計負責,這可能是我的傾向。

+0

我並不反對擱置這個問題,考慮到8歲的問題,投票似乎完全沒有必要,而且那個網站在當時完全不同 – 2017-11-18 03:36:45

回答

2

我認爲隨着代碼庫的發展,會出現一定數量的垃圾。即使您試圖對刪除舊的未使用的代碼進行系統化處理,也很難將其全部刪除。在我的系統中查找可以刪除的未使用的代碼總是令人滿意的。

強打字在這裏是你的朋友,因爲它可以讓你以比弱打字更好的方式跟蹤類型和用法。因此,遠離這些字符串數據類型,它們會使清理更加困難。

一個非常巧妙的技巧是,如果您可以通過一個代碼覆蓋工具同時運行測試系統,從生產系統重放24小時的流量。這通常是一個死代碼的金礦,但很難找到時間來處理其他優先事項中的大量清理工作;)