當你花一整天的時間獲得一個正常工作的功能,但是後來的架構變化導致該功能不再被使用?但是你知道代碼是否足夠有用,以至於如果架構迴盪,那麼這個函數將會再次有用?如何處理未使用,有用的代碼?
這似乎是錯誤的,你做檢查之前,但隨後又佔用空間的未使用的功能,如果你選擇了它在刪除的功能。
當你花一整天的時間獲得一個正常工作的功能,但是後來的架構變化導致該功能不再被使用?但是你知道代碼是否足夠有用,以至於如果架構迴盪,那麼這個函數將會再次有用?如何處理未使用,有用的代碼?
這似乎是錯誤的,你做檢查之前,但隨後又佔用空間的未使用的功能,如果你選擇了它在刪除的功能。
我把所有有用的代碼記錄在離線碼片段數據庫。
不檢查 - 集中式存儲庫僅適用於在應用程序中使用的工作代碼。
簽入並註釋掉。恕我直言,空間成本非常值得你花在正確的時間上(如果風力發生變化,可能需要再次花費)。也許你可以將它作爲「零碎」文件的一部分進行檢查,以便它不會混淆你的活動代碼。
我肯定會刪除它。你可以把它放在一個特殊的地方,項目的成員可以看到,但把它從項目中解脫出來。當開發人員無法調用某個特定函數時,它會使維護變得困難。
根據定義,未使用的代碼無用。永遠記得YAGNI。在99%的情況下,你應該刪除它,因爲在下次可能有用時,它可能會更快再次執行它(你只花了一天的時間)。
在極少數情況下,它很酷,您可以將其存儲在片段數據庫中。
作爲一個答案,請考慮這個小故事:
的死碼採集器:帶出揭掉死代碼。
死人代碼:這是一個。
死代碼收集器:這將是ninepence。
死碼:我不是死碼。
死碼收藏家:什麼?
死者代碼:無。有你的九便士。
死碼:我不是死碼。
死者代碼收集者:'以前,他說他不是死代碼。
死者的男人:是的,他是。
死碼:我不是。
死碼收藏家:他不是。
死人代碼:好的,他很快就會,他病得很重。
死代碼:我越來越好。
死者的男人:不,你不會,你會在一瞬間石頭死的代碼。
死碼收藏家:呃,我不能把他當作那樣。這違反了規定。
死碼:我不想上車。
死人的男人:哦,別這麼寶貝。
死號收藏家:我不能接他。
死碼:我感覺很好。
死人代碼:哦,幫我一個忙。
死碼收藏家:我不能。
死人代碼:嗯,你可以在這裏呆幾分鐘嗎?他不會很久。
死碼收藏家:我答應我會在羅賓遜的。他們今天輸了九場。
死人代碼:你的下一輪是什麼時候?
死碼收藏家:星期四。
死號:我想我會去散步。
死人代碼:你不是在愚弄任何人,你知道的。沒有什麼可以做的嗎?
死代碼:我感到高興。我感到開心。
[死代碼收集幾眼上下偷偷在街上,然後沉默死碼與他自己按Ctrl-X的失衡]
男子死碼:嗯,非常感謝你。
刪除代碼。寫一個很好的簽到評論,它解釋了你刪除了什麼以及爲什麼。 這應該是足夠清楚的,以便那些在該文件上運行歷史命令的人可以理解它,並且可以從版本存儲庫檢索您的函數。
自從我大約兩年前開始在當前的僱主工作以來,我創建了相當大的實用程序代碼庫。它分成幾個類別並用於多個項目。我創建的代碼不需要立即進入並且休眠直到它被使用(或永遠,以先發生者爲準)。
在這種情況下,我總是使用描述該軟件片段的軟件。 A 已標記好的子項目和很好的描述然後做那個功能。
在我看來,重用這個整個函數並不總是有用,但是看一下那些曾經有意義的好的,可用的代碼。
發表您的代碼: http://snipplr.com/ http://refactormycode.com/
讓其他人速度,也許用它太:)
開源吧!如果它對你沒有用處,也許對其他人有用。
反對這個問題的常見理由是,公司不會付錢給您編寫免費代碼,但是,他們讓您在不穩定的架構下工作,因此無論如何他們都無法從您的代碼中獲益。
死代碼不再被維護。當你再次需要它時,你需要花時間讓它重新工作。如果它確實有用,而且您仍然可以記住它,則可以始終通過您的版本控制獲得。
在工作中,有些人的代碼已經在4年前被註釋掉,包含70%的源文件。 只是讓它去吧
刪除它很高興。
代碼是針對動態世界中不斷變化的需求而做出的靜態承諾。今天
我的觀點是,如果我們要計算的代碼行,我們不應該把它們當作「線生產」,而是「行花」:目前的傳統智慧是愚蠢預訂該計數在賬本的錯誤一面。
我已經在我的項目中,我一直保存有用的未使用函數的副本的類文件。
另一種方式:因爲我們將項目保存在SVN存儲庫中,所以當我替換我的有用函數時,我總是在我的日誌文件中具有dat函數,以便將來我可以隨時訪問它。
檢查它,並註釋(在代碼和檢查),說你要刪除它。
然後刪除它並立即簽入更改,並附上解釋原因的簽入註釋。
通過這種方式,您的代碼庫中不會存在垃圾,但是您擁有代碼的永久記錄。
只需將其保存在您爲自己設計的任何代碼片段收集器中,或者可在您的系統中使用。問題不在於放在哪裏(主要是我們只談論文本,不是我們?),而是如何再次找到它。問題是如何再次找到它,所以需要使用某種標記/搜索方法。
我把我的代碼片段保存在Code Collector Pro(Mac版)中。
這樣它不在任何項目中,但我可以在需要時重複使用它。
免責聲明:我只是一個滿意的客戶。
使用較少代碼的系統更好一個如果以後取消註釋,您的註釋代碼將無用。所有代碼以前可以修改的環境都可以更改或更危險 - 可能會更改隨新業務邏輯附帶的一些小型隱形部分。
舊代碼是引入新bug的絕好機會。取消註釋舊代碼與通過猜測進行編程相同(查看ma,它的工作原理!),這是根據定義而定的。
如果它的數量很大(並且通常很有用),爲什麼不考慮公開採購呢?我喜歡回收的想法。
How to Delete Code中的許多建議,但我保留一個純文本文件,我轉儲偶爾測試但未使用的函數,可能有一天會派上用場。我無法忍受把它們完全扔掉,但是再一次,我也沒有必要回到任何一個。
有關此類文件/代碼片段集合的更多規則:只有一個,在一個地方。
不錯:-)這是來自Monty Python的一集,對吧? – Daan 2008-12-09 10:04:24