很多人在進行軟件開發和軟件維護的時候會發現一個嚴重的問題,需要對軟件代碼進行重構,讓系統更加穩定的運行。
目前成都創新互聯已為上千多家的企業提供了網站建設、域名、虛擬空間、網站托管維護、企業網站設計、富蘊網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
那么在進行代碼重構的過程中有哪些常見的問題呢?下面遼寧電腦培訓為大家具體介紹。
1、任敬茄務管理問題和離線模式問題。
我們的線服務是眾所周知的,我們往亮碧察往容易受到網上商業邏輯守則的約束,這些守則往往忽略了在線規則的管理和維護。
然而,在現場,在線規則和守則也很重要。
因此,遼寧IT培訓發現有效維護守則和離線任務是我們面臨的問題。
2、特征日志問題在推薦系統中,我們經常遇到特征的拼寫和特征的“穿越時間”問題。
特征時間穿越是指,使用在模型訓練時無法預測無法得到的“慧清未來信息”,這主要是因為訓練label與特征的連接時間不嚴格。
3、服務監制問題一個通用的推薦系統應當在基礎監視上盡可能通用地再利用,具體的業務應當減少對監視的開發量,并且遼寧IT培訓發現這樣更加方便業務定位問題。
4、離線任務的管理問題在包含推薦系統的算法方向上,需要構建大量的脫機任務,支持各種數據計算業務,需要支持模型的定時訓練工作。
但是在實際工作中,我們往往忽略了離線任務代碼管理的重要性,當時間變長時,遼寧電腦培訓發現各種數據和特征的質量往往是不能保證的。
相信大家在開發軟件和進行軟件維護的時候也會發現,有時候我們會針對一些軟件的功能進行代碼重構來讓系統運行更加的穩定。
今天天津java培訓就一起來了解一下,在代碼重構的過程中都會遇到哪些問題。
1、離線任務和模型的管理問題。
我們做在線服務的都有體會,我們經常容易對線上業務邏輯代碼更關注一些,而往往忽視離線代碼任務的管理和維護。
但離線代碼任務和模型在推薦場景中又至關重要。
因此如何有效維護離線代碼和任務,是我們面臨的一個問題。
2、特征日志問題。
在推薦系統中,我們常常會遇到特征拼接和特征的『時間穿越』的問題。
所謂特征時間穿越,指的是模型訓練時用到了預測時無法獲取的『未來信息』,這主要是訓練label和特征拼接時時間上不夠嚴謹導致。
如何構建便捷通用的特征日志,減少特征拼接錯誤和特征穿越,是我們面臨的二個問題。
3、服務監控問題察行。
一個通用的推薦系統應該在基礎監控上做到盡可能通用可復用,減少具體業務對于監控的開發量,并方便業務定位問題。
4、離線任務和模型的管理問題。
在包括推薦系統的算法方向中,需要構建大量離線任務支持各種數據計算業務,和模型的定時訓練工作。
但實際工作中,我們往往忽略離線任務代碼管理的重要性,當時間一長,各種數據和特征的質量往往無法保證。
為了盡可能解決這樣的問題,我們從三方面來做,一,將通用推薦系統依賴的離線任務的代碼統一到一處管理;二,結合公司離線任務管理平臺,將所有任務以通用包的形式吵晌進行管理,這樣保證所有任務的都是依賴新包;三,建設任務結果的監控體系,將離線任務的產出完整監控起來。
5、特征日志問題。
AndrewNg之前說過:『挖掘特征是困難、費時且需要專業知識的事,應用機器學習其實基本上是在做特征工程。
』我們理想中的推薦系統模型應該是有干凈的RawData,方便處理成可學習的Dataset,通過某種算法學習model,來達到預測效果不斷優化的目的。
但現實中,我們需要處理各種各樣的數據源,有數據庫的,有日志的,有離線的,有在線的。
這么多來源的RawData,不可避免的會遇到各種各敗碰嘩樣的問題,比如特征拼接錯誤,特征『時間穿越』等等。
這里邊反應的一個本質問題是特征處理流程的規范性問題。
那么我們是如何來解決這一點呢,先,我們用在線代替了離線,通過在線落特征日志,而不是RawData,并統一了特征日志Proto,如此就可以統一特征解析腳本。
首先,重構這個概念,不是JAVA所特有的,而是跡舉軟件工程的一個概念仔州敗。
主要是指念顫改善現有的程序代碼,使其更方便、簡單的使用,提高可重用性、可維護性。
在面向對象C++\C#\JAVA等語言中,重構的概念一般是指對類進行重構,一般在現有類的某些功能方法不能滿足擴展需要,或者修復BUG時,就需要重構
重構是一個可迭代的過程,可以對一個功能重復重構,直到其滿足軟件的需求、維護和可擴展性
重構的方法比較多,一本書也說不完,一些概念性的內容見百科
重構如頃可以說是覆蓋,用覆蓋一詞來講就比較清楚。
在面向對象的一個特性--繼承中就表現出重銀輪構的意思。
重構,就是繼承鋒橡信于父類方法的子類將子類的方法重寫,方法名及參數完全相同.
重用是繼承了就可以用父類定義的方法和變量,不用再定義一次。
比如說
class B {
public void see(){
System.out.println("this is b");
}
}
public class A extends B{
public void see() {
System.out.println("this is a");
}
public static void main(String[] args) {
B b=new A();
b.see();
}
}
這是重構的意思。
class B {
public void see(){
System.out.println("this is b");
}
}
public class A extends B{
public static void main(String[] args) {
B b=new A();
b.see();
}
}
這是重用的意思
文章題目:重構java代碼 重構 java
網頁路徑:http://m.newbst.com/article16/ddpdodg.html
成都網站建設公司_創新互聯,為您提供動態網站、網站制作、云服務器、用戶體驗、外貿網站建設、手機網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯