2008-12-09 17 views
7

當你花一整天的時間獲得一個正常工作的功能,但是後來的架構變化導致該功能不再被使用?但是你知道代碼是否足夠有用,以至於如果架構迴盪,那麼這個函數將會再次有用?如何處理未使用,有用的代碼?

這似乎是錯誤的,你做檢查之前,但隨後又佔用空間的未使用的功能,如果你選擇了它在刪除的功能。

回答

10

我把所有有用的代碼記錄在離線碼片段數據庫。

不檢查 - 集中式存儲庫僅適用於在應用程序中使用的工作代碼。

2

簽入並註釋掉。恕我直言,空間成本非常值得你花在正確的時間上(如果風力發生變化,可能需要再次花費)。也許你可以將它作爲「零碎」文件的一部分進行檢查,以便它不會混淆你的活動代碼。

4

我肯定會刪除它。你可以把它放在一個特殊的地方,項目的成員可以看到,但把它從項目中解脫出來。當開發人員無法調用某個特定函數時,它會使維護變得困難。

6

根據定義,未使用的代碼無用。永遠記得YAGNI。在99%的情況下,你應該刪除它,因爲在下次可能有用時,它可能會更快再次執行它(你只花了一天的時間)。

在極少數情況下,它很酷,您可以將其存儲在片段數據庫中。

11

作爲一個答案,請考慮這個小故事:

的死碼採集器:帶出揭掉死代碼。

死人代碼:這是一個。

死代碼收集器:這將是ninepence。

死碼:我不是死碼。

死碼收藏家:什麼?

死者代碼:無。有你的九便士。

死碼:我不是死碼。

死者代碼收集者:'以前,他說他不是死代碼。

死者的男人:是的,他是。

死碼:我不是。

死碼收藏家:他不是。

死人代碼:好的,他很快就會,他病得很重。

死代碼:我越來越好。

死者的男人:不,你不會,你會在一瞬間石頭死的代碼。

死碼收藏家:呃,我不能把他當作那樣。這違反了規定。

死碼:我不想上車。

死人的男人:哦,別這麼寶貝。

死號收藏家:我不能接他。

死碼:我感覺很好。

死人代碼:哦,幫我一個忙。

死碼收藏家:我不能。

死人代碼:嗯,你可以在這裏呆幾分鐘嗎?他不會很久。

死碼收藏家:我答應我會在羅賓遜的。他們今天輸了九場。

死人代碼:你的下一輪是什麼時候?

死碼收藏家:星期四。

死號:我想我會去散步。

死人代碼:你不是在愚弄任何人,你知道的。沒有什麼可以做的嗎?

死代碼:我感到高興。我感到開心。

[死代碼收集幾眼上下偷偷在街上,然後沉默死碼與他自己按Ctrl-X的失衡]

男子死碼:嗯,非常感謝你。

+0

不錯:-)這是來自Monty Python的一集,對吧? – Daan 2008-12-09 10:04:24

3

刪除代碼。寫一個很好的簽到評論,它解釋了你刪除了什麼以及爲什麼。 這應該是足夠清楚的,以便那些在該文件上運行歷史命令的人可以理解它,並且可以從版本存儲庫檢索您的函數。

0

自從我大約兩年前開始在當前的僱主工作以來,我創建了相當大的實用程序代碼庫。它分成幾個類別並用於多個項目。我創建的代碼不需要立即進入並且休眠直到它被使用(或永遠,以先發生者爲準)。

4

在這種情況下,我總是使用描述該軟件片段的軟件。 A 已標記好的子項目很好的描述然後做那個功能。

在我看來,重用這個整個函數並不總是有用,但是看一下那些曾經有意義的好的,可用的代碼。

0

開源吧!如果它對你沒有用處,也許對其他人有用。

反對這個問題的常見理由是,公司不會付錢給您編寫免費代碼,但是,他們讓您在不穩定的架構下工作,因此無論如何他們都無法從您的代碼中獲益。

1

死代碼不再被維護。當你再次需要它時,你需要花時間讓它重新工作。如果它確實有用,而且您仍然可以記住它,則可以始終通過您的版本控制獲得。

在工作中,有些人的代碼已經在4年前被註釋掉,包含70%的源文件。 只是讓它去吧

2

刪除它很高興。

代碼是針對動態世界中不斷變化的需求而做出的靜態承諾。今天

我的觀點是,如果我們要計算的代碼行,我們不應該把它們當作「線生產」,而是「行花」:目前的傳統智慧是愚蠢預訂該計數在賬本的錯誤一面。

- Dijkstra 1036-11

0

我已經在我的項目中,我一直保存有用的未使用函數的副本的類文件。

另一種方式:因爲我們將項目保存在SVN存儲庫中,所以當我替換我的有用函數時,我總是在我的日誌文件中具有dat函數,以便將來我可以隨時訪問它。

3

檢查它,並註釋(在代碼和檢查),說你要刪除它。

然後刪除它並立即簽入更改,並附上解釋原因的簽入註釋。

通過這種方式,您的代碼庫中不會存在垃圾,但是您擁有代碼的永久記錄。

1

只需將其保存在您爲自己設計的任何代碼片段收集器中,或者可在您的系統中使用。問題不在於放在哪裏(主要是我們只談論文本,不是我們?),而是如何再次找到它。問題是如何再次找到它,所以需要使用某種標記/搜索方法。

我把我的代碼片段保存在Code Collector Pro(Mac版)中。

這樣它不在任何項目中,但我可以在需要時重複使用它。

免責聲明:我只是一個滿意的客戶。

0

使用較少代碼的系統更好一個如果以後取消註釋,您的註釋代碼將無用。所有代碼以前可以修改的環境都可以更改或更危險 - 可能會更改隨新業務邏輯附帶的一些小型隱形部分。

舊代碼是引入新bug的絕好機會。取消註釋舊代碼與通過猜測進行編程相同(查看ma,它的工作原理!),這是根據定義而定的。

1

如果它的數量很大(並且通常很有用),爲什麼不考慮公開採購呢?我喜歡回收的想法。

0

How to Delete Code中的許多建議,但我保留一個純文本文件,我轉儲偶爾測試但未使用的函數,可能有一天會派上用場。我無法忍受把它們完全扔掉,但是再一次,我也沒有必要回到任何一個。

有關此類文件/代碼片段集合的更多規則:只有一個,在一個地方。

相關問題