時(shí)間:2021-05-20 17:33:01來源:閑集網(wǎng)
對于大多數(shù)現(xiàn)代軟件團(tuán)隊(duì)而言,軟件交付是一個(gè)連續(xù)的過程。
軟件交付不再是開發(fā)結(jié)束時(shí)的明確階段,而是每天開發(fā)過程中的連續(xù)過程,每天甚至每小時(shí)進(jìn)行一次部署。如今,機(jī)器學(xué)習(xí)流程更多地應(yīng)用于軟件部署,以節(jié)省時(shí)間并優(yōu)化流程,以便軟件公司可以繼續(xù)有效地開發(fā)和部署。
機(jī)器學(xué)習(xí)(ML)是指開發(fā)算法以識別模式并基于數(shù)據(jù)集開發(fā)模型的過程。這些分析可以提供對可能隱藏的數(shù)據(jù)的見解。不僅如此,這些機(jī)器學(xué)習(xí)工具還可以根據(jù)其生成的預(yù)測自動(dòng)執(zhí)行操作。
在ML中,特別強(qiáng)大的功能是能夠?qū)崟r(shí)或接近實(shí)時(shí)處理大數(shù)據(jù)。這在軟件交付中非常有價(jià)值,在該世界中,在任何給定時(shí)間,成千上萬的用戶可能同時(shí)使用軟件。向這些用戶推出更新對于確保無論使用何種設(shè)備或平臺(tái),都可以通過錯(cuò)誤修復(fù)和新功能向所有用戶提供更新至關(guān)重要。機(jī)器學(xué)習(xí)可以通過分析數(shù)據(jù)日志,檢測錯(cuò)誤以及在錯(cuò)誤傳給全球數(shù)百萬用戶之前做出決定,來輔助軟件交付過程。
持續(xù)測試和持續(xù)集成已成為軟件開發(fā)中的核心理念。這種快節(jié)奏的開發(fā)風(fēng)格打破了軟件開發(fā)的傳統(tǒng)階段。相反,軟件沒有被視為明確的計(jì)劃,開發(fā)和測試階段,而是被視為不斷測試和開發(fā)的實(shí)際產(chǎn)品。
機(jī)器學(xué)習(xí)已在軟件交付的許多不同領(lǐng)域中變得非常有用。在提倡CI / CD方法論的環(huán)境中工作的開發(fā)人員可以快速提供軟件更新,因此,為他們提供所需的工具以使其提交安全,按預(yù)期工作并且不會(huì)迅速產(chǎn)生無關(guān)的錯(cuò)誤,這是非常必要的。重要的。機(jī)器學(xué)習(xí)過程可以通過多種方式幫助實(shí)現(xiàn)這一目標(biāo)。
連續(xù)測試在開發(fā)過程必不可少,而不是在開發(fā)周期結(jié)束時(shí)作為離散階段進(jìn)行測試。在這種情況下,將在計(jì)劃,原型,開發(fā)和部署代碼的每個(gè)階段對產(chǎn)品進(jìn)行測試。
這些測試采用許多不同的形式。單元測試,API測試,UI測試等等都屬于連續(xù)測試的范圍。但是,盡管大部分測試可以自動(dòng)化,但它們并非同時(shí)提供所有結(jié)果。例如,與單元測試相比,執(zhí)行UI測試通常需要更長的時(shí)間,并且部分UI測試套件可能涉及手動(dòng)測試。這會(huì)導(dǎo)致開發(fā)人員提交代碼和獲得反饋所需的時(shí)間有所延遲。
開發(fā)人員習(xí)慣于編譯器優(yōu)化代碼,但是這種實(shí)踐不必局限于編譯。隨著軟件變得越來越復(fù)雜,其部署環(huán)境變得難以預(yù)測?;谠频姆?wù)通常在開發(fā)團(tuán)隊(duì)未直接維護(hù)的虛擬服務(wù)器上運(yùn)行。一種解決方案是使用容器化的應(yīng)用程序來提供一致性,但是可以使用機(jī)器學(xué)習(xí)過程來根據(jù)其部署環(huán)境來優(yōu)化應(yīng)用程序設(shè)置和環(huán)境配置。這可以幫助最大化產(chǎn)品性能并協(xié)調(diào)跨平臺(tái)和環(huán)境的開發(fā)。
機(jī)器學(xué)習(xí)也可以通過培訓(xùn)來實(shí)施編碼準(zhǔn)則。隨著時(shí)間的流逝,大型和成熟的軟件產(chǎn)品可能會(huì)變得非常笨拙,因?yàn)閿?shù)百名開發(fā)人員會(huì)不斷使用它們。保持代碼的清潔和標(biāo)準(zhǔn)化可以使開發(fā)人員清楚地知道哪些代碼單元可以執(zhí)行,而無需花費(fèi)時(shí)間進(jìn)行研究或?qū)W習(xí)。機(jī)器學(xué)習(xí)過程可以檢測提交中與編碼準(zhǔn)則的差異,并在將提交添加到代碼庫之前創(chuàng)建重寫的建議,從而使代碼庫保持整潔并強(qiáng)制執(zhí)行準(zhǔn)則,而無需進(jìn)行人工檢查。
加快軟件交付
機(jī)器學(xué)習(xí)有助于自動(dòng)化開發(fā)和測試流程。測試的關(guān)鍵部分是測試維護(hù),這是使測試與軟件保持同步的必要條件。對于頻繁更改的區(qū)域(例如UI測試),這可能特別耗時(shí)。機(jī)器學(xué)習(xí)過程不僅可以幫助減少維護(hù)時(shí)間的自我修復(fù)測試,而且還可以突出顯示最需要測試的代碼區(qū)域。
這增加了測試套件中測試的價(jià)值。機(jī)器學(xué)習(xí)過程可以提供有助于優(yōu)化測試和測試范圍的見解。機(jī)器學(xué)習(xí)不是分散測試所有內(nèi)容的方法,而是為開發(fā)人員提供了數(shù)據(jù)驅(qū)動(dòng)的見解,以了解在決策過程中測試最有價(jià)值的地方。
機(jī)器學(xué)習(xí)和軟件開發(fā)的未來
機(jī)器學(xué)習(xí)是軟件開發(fā)中相對較新且快速創(chuàng)新的內(nèi)容。所使用的模型及其應(yīng)用正在不斷變化和改進(jìn),尤其是隨著它們變得越來越廣泛地使用和嵌入各種不同的過程中。隨著越來越多的軟件開發(fā)流程實(shí)現(xiàn)自動(dòng)化,這些機(jī)器學(xué)習(xí)工具將被賦予更大的決策權(quán)。
當(dāng)前,機(jī)器學(xué)習(xí)過程主要用于輔助決策過程。他們可以標(biāo)記出可疑的錯(cuò)誤,預(yù)測潛在的錯(cuò)誤并提供有價(jià)值的見解,但是如何處理此信息的決定通常仍由人決定。這部分是信任問題,部分是傳統(tǒng)問題。軟件開發(fā)和部署中的許多過程都依賴人工干預(yù),因?yàn)檫@一直都是如此。
展望機(jī)器學(xué)習(xí)和軟件開發(fā)的未來,為機(jī)器學(xué)習(xí)過程提供動(dòng)力的算法只會(huì)變得更加完善,并且基于更多的數(shù)據(jù)和更精細(xì)的分析,生成的模型將進(jìn)一步得到改善。
有一天,開發(fā)人員可能不需要為其創(chuàng)建的代碼進(jìn)行測試。相反,將在編寫代碼時(shí)自動(dòng)生成測試,并且預(yù)測分析將通知開發(fā)人員,甚至在提交代碼之前,編寫的代碼是否會(huì)對代碼庫產(chǎn)生預(yù)期的效果。
中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。