我花了一個月的時間寫出了一個既能處理信用卡支付又能處理電子資金轉賬的精細支付系統。我的工作在生產服務器上使用了大約一個月。客戶最近告訴我,他不再想使用電子轉帳功能。因爲我不得不與信用卡網關進行接口和通信的方式與電子資金轉賬api有很大不同(例如cc公司在http請求後立即給出交易響應,而eft公司給出交易響應5之後工作日HTTP請求),我花了很多時間寫我自己的API,以抽象的共同函數調用像何時刪除新棄用的代碼?
功能薪水(金額,pay_method,pay_freq)
功能updateRecurringSchedule(USER_ID,new_schedule)
等。
既然客戶想放棄EFT功能,那麼我爲這個抽象付款API所做的所有工作都已經過時。
我正在考慮是否應該放棄我的工作。下面是現在殺它我的親與CON:
PRO 1:消除代碼膨脹
PRO 2:新的開發人員並不需要學習我的API。他們只需要閱讀CC公司的API
專業3:由於EFT公司沒有處理經常性付款時間表,退款和驗證,我寫了自己的應用程序來執行此操作。儘管CC公司的API允許這種功能,但我選擇使用我的代碼,以便簡化我的代碼。現在EFT已經不存在了,我可以刪除所有這些令人困惑的代碼,只依靠CC公司的系統來管理經常性的計費,付款時間表,退款,驗證等等......
CON 1:雖然我可以刪除EFT代碼,移除整合不同支付系統的整個框架仍然需要時間。
CON 2:對於PRO 3,需要時間來構建與CC公司更緊密地集成支付系統的功能。
CON 3:我感到不安全刪除所有這些工作。我不認爲我會再次使用它。但是,出於某種莫名其妙的原因,我現在不太願意刪除這部作品。
CON 4:還有數據庫的問題。如果我刪除了我的業務邏輯代碼,然後對數據庫進行規範化(最終將創建一個新的數據庫模式),但由於數據遷移問題而難以恢復此功能。然而,如果我將現有的代碼與現有的數據庫保持一致,那麼開發人員要維護起來會更麻煩,但不要害怕丟失任何東西。
所以我的問題是,我應該刪除一個月的價值最近的發展?如果是,我應該立即執行還是等待X時間?
其他細節 我加CON 4
有點偏離主題,但由於這是標記重構......是什麼「功能支付()」 * *做?付款?進行付款?打印付款?我見過的最好的命名建議是*函數是動詞,變量是名詞*。 – David 2010-05-22 18:27:21
你是正確的,該功能實際上是所謂的工資(),該構造函數是支付()。我將修改我的問題的細節,以避免混淆 – John 2010-05-22 18:32:33