欧美人妻少妇精品久久黑人,日韩国产精品免费av久久98,欧美高清freexxxx性,欧美日韩精品suv,国产suv精品一区二区,欧美大屁股xxxxbbbbb,

電子方案開發(fā)供應(yīng)鏈平臺
一鍵發(fā)布任務(wù)
獲取驗證碼
返回

發(fā)布成功


贊賞作者

贊賞金額:

  • ¥2
  • ¥5
  • ¥10
  • ¥50
  • ¥100
  • ¥200

支付金額:5

支付方式:

微信支付

贊賞成功!
你的贊賞是對作者最大的肯定~?

當前位置 : 首頁 > 方案訊 > 方案訊詳情
為什么程序員一定要關(guān)注技術(shù)趨勢?
發(fā)布時間:2019-05-08 閱讀量:994 來源: 作者:ThoughtWorks
技術(shù)雷達是 ThoughtWorks 每半年發(fā)布一期的技術(shù)趨勢報告,InfoQ 每年都與 ThoughtWorks 合作發(fā)布最新一期雷達內(nèi)容。這是一份關(guān)于技術(shù)趨勢的報告,由 ThoughtWorks 技術(shù)戰(zhàn)略委員會(TAB)經(jīng)由多番正式討論給出,它以獨特的雷達形式對各類最新技術(shù)的成熟度進行評估并給出建議,為從程序員到 CTO 的利益相關(guān)者提供參考。


0本期主題
日新月異的數(shù)據(jù)形態(tài)


十年前,數(shù)據(jù)幾乎等同于關(guān)系數(shù)據(jù)庫。如今,數(shù)據(jù)則可能呈現(xiàn)出各種形態(tài),包括 NoSQL、時間序列、像 CockRoachDB 和 Spanner 這樣提供全局一致性的 SQL 存儲,以及提供聚合日志文件查詢功能的事件流。隨著數(shù)據(jù)源不斷增長,數(shù)據(jù)規(guī)模越來越大,種類越來越多,變化速度越來越快,企業(yè)想要對這些數(shù)據(jù)做出更實時的響應(yīng),上述情況也就應(yīng)運而生了。對于開發(fā)人員,每種形式的數(shù)據(jù)使用方法都存在固有的優(yōu)缺點,如何取舍是個難題。架構(gòu)師和開發(fā)人員應(yīng)該密切關(guān)注各種工具和模型提供的新功能,同時保持勤奮好學(xué),不要完全以對待現(xiàn)有工具的常用方法來使用新工具。我們必須認識到數(shù)據(jù)形勢正在發(fā)生重大變革,并堅持尋找合適的策略和工具。


Terraform 生態(tài)系統(tǒng)建設(shè)


開發(fā)人員喜歡抽象層,原因很明顯,因為他們可以將復(fù)雜問題封裝到抽象層中,從而集中精力處理更高層級的問題。在前幾期的技術(shù)雷達中,我們都闡述了這種發(fā)展趨勢,很多團隊在同時使用云和容器時都會采用這種方法。一開始他們關(guān)注的是 Docker 及其生態(tài)系統(tǒng)。然后焦點開始轉(zhuǎn)向 Kubernetes?,F(xiàn)在,我們發(fā)現(xiàn)主要活動總體上都集中在基礎(chǔ)設(shè)施即代碼方面,尤其是集中在 Terraform 生態(tài)系統(tǒng)上。雖然除了 Terraform,我們還推薦了其他工具,但是它在提供商社區(qū)中的采用率仍然讓人印象深刻。本期雷達的內(nèi)容重點包括 Terratest(用于測試基礎(chǔ)設(shè)施代碼),以及 GoCD 的新提供商(可以使用 Terraform 配置 GoCD)。


Kotlin 方興未艾


Kotlin 作為一項開源語言,不僅在 Android 環(huán)境中獲得了廣泛應(yīng)用,而且還在向其他環(huán)境拓展,也在技術(shù)雷達中受到了持續(xù)密切的關(guān)注。由于不喜歡現(xiàn)有的語言選擇,JetBrains 在內(nèi)部開發(fā)了 Kotlin,并隨后開源。Kotlin 似乎在各種開發(fā)人員中廣受歡迎。它經(jīng)常在各種平臺和工具中用作通用甚至專用開發(fā)語言,而且在技術(shù)雷達中出現(xiàn)的頻率也越來越高。此外,我們的項目團隊也在采用該語言(Ktor、MockK、Detekt、HTTP4K)。這個新興語言在實用性設(shè)計和先進工具中獲得了廣泛應(yīng)用,并且形成了一個蓬勃發(fā)展的生態(tài)系統(tǒng),取得了巨大的成功,對此我們深感欣慰。


封裝邊界的泄漏


隨著“一切即代碼”理念的盛行,以前難以改變的絕大多數(shù)環(huán)節(jié)(基礎(chǔ)設(shè)施、安全、合規(guī)性和運營),幾乎都變得可以通過編程來處理,這就意味著開發(fā)人員可以采用更完善的工程實踐。然而,我們?nèi)匀唤?jīng)??吹?,要么配置子系統(tǒng)異常復(fù)雜,要么過度依賴于可視化編排工具,邏輯滲透到配置文件中,以 YAML 編寫的條件語法晦澀復(fù)雜,還有各種技術(shù)需要使用大量編排框架等情況。隨著多語言編程、基礎(chǔ)設(shè)施即代碼和一切皆服務(wù)技術(shù)的出現(xiàn),我們不再需要將各種組件都組合到單一內(nèi)聚的系統(tǒng)中。因此,原本應(yīng)位于系統(tǒng)邊界內(nèi)的邏輯就會泄漏到編排工具、配置文件和其他管道中。雖然有時候確有這種必要,但是我們建議各團隊保持謹慎,考慮將此類代碼放在開發(fā)人員執(zhí)行測試、版本控制、持續(xù)集成和其他完善的工程實踐的位置。請避免將業(yè)務(wù)邏輯放在配置文件中(并且避免使用要求將業(yè)務(wù)邏輯放在配置文件中的工具),盡可能減少必須執(zhí)行的編排操作,不要讓編排功能主導(dǎo)你的系統(tǒng)。


1技術(shù)維度



a1.png


Four key metrics


詳盡的 DevOps 現(xiàn)狀報告?zhèn)戎赜趯Ω呖冃ЫM織的數(shù)據(jù)驅(qū)動型統(tǒng)計分析。這項研究持續(xù)多年,結(jié)果發(fā)表在 Accelerate,證明了組織績效和軟件交付效能之間存在直接關(guān)聯(lián)。研究人員證實,只需四個關(guān)鍵指標就能區(qū)分低績效、中績效和高績效人員:前置時間、部署頻率、平均修復(fù)時間 (MTTR) 和變更失敗率。的確,我們已經(jīng)發(fā)現(xiàn)這四個關(guān)鍵指標(Four key metrics)是個簡單卻強大的工具,可幫助領(lǐng)導(dǎo)和團隊專注于衡量并改進重要的環(huán)節(jié)。實施構(gòu)建流水線是一個良好開端,以便你能夠捕獲四個關(guān)鍵指標,并使軟件交付價值流可見。例如,作為 GoCD Analytics 的一等公民,GoCD 流水線能夠衡量這四個關(guān)鍵指標。


Continuous delivery for machine learning (CD4ML) models


機器學(xué)習的持續(xù)交付 (CD4ML) 模型(Continuous delivery for machine learning -CD4ML models),將持續(xù)交付實踐應(yīng)用于開發(fā)機器學(xué)習模型上,以便于隨時應(yīng)用在生產(chǎn)環(huán)境中。該方法解決了傳統(tǒng)機器學(xué)習模型開發(fā)的兩個主要問題:一個是訓(xùn)練模型和將模型部署到生產(chǎn)環(huán)境之間的周期過長,此過程通常包括將模型手動轉(zhuǎn)換為可上線的代碼;另一個問題是使用被過時數(shù)據(jù)訓(xùn)練過的產(chǎn)品環(huán)境模型。

機器學(xué)習模型的持續(xù)交付流水線有兩個觸發(fā)因素:(1) 模型結(jié)構(gòu)的變動;(2) 訓(xùn)練與測試數(shù)據(jù)集的變動。要使其發(fā)揮作用,我們需要對數(shù)據(jù)集和模型源代碼進行版本化。流水線通常包括用測試數(shù)據(jù)集來測試模型、按需使用 H2O 等工具來對模型作自動轉(zhuǎn)換、以及將模型部署到生產(chǎn)環(huán)境以交付價值。


Ethical OS


作為 ThoughtWorks 的開發(fā)人員,我們對于工作中可能涉及到的道德問題十分敏感。隨著社會對科技的依賴程度日益增長,軟件開發(fā)團隊在制定決策時必須考慮道德問題。目前已經(jīng)出現(xiàn)的一些工具,可以幫助我們思考自己所構(gòu)建的軟件會在未來產(chǎn)生什么影響。此類工具包括技術(shù)塔羅牌和道德風險手冊(Ethical OS),這兩類工具都獲得了廣泛好評。道德風險手冊為我們提供了一個思維框架和一系列工具,可以促進我們圍繞軟件構(gòu)建方面存在的道德問題展開討論。該手冊由 Institute of the Future(未來研究所)和科技與社會解決方案實驗室(Tech and Society Solutions Lab)聯(lián)合編制。其中探討了一系列切實的風險,例如網(wǎng)癮、多巴胺經(jīng)濟,而且還分析了很多值得探討的場景。


Smart contracts


我們在使用分布式賬本技術(shù) (DLTs) 方面積累的經(jīng)驗越多,遇到的當前智能合約(Smart contracts )未完善之處就越多。從理論上來看,在賬本上自動添加不可否認、不可逆的合約是個好主意。但如果在你考慮如何使用現(xiàn)代化軟件交付技術(shù)來開發(fā)它們,以及出現(xiàn)實施方式之間的差異時,問題就出現(xiàn)了。不可變數(shù)據(jù)是一回事,但不可變業(yè)務(wù)邏輯則完全是另外一回事!一定要想清楚是否在智能合約中包含邏輯,這一點真的非常重要。我們已經(jīng)發(fā)現(xiàn),不同的實施方式之間存在截然不同的運營特征。例如,即使合約可以演變,不同平臺對這種演變的支持程度也不一樣。我們的建議是,在智能合約中加入業(yè)務(wù)邏輯之前,請認真考慮,并權(quán)衡不同平臺的利弊。


Release train


我們已親眼見證,組織通過使用版本火車(Release train)概念,從極低的發(fā)布頻率成功轉(zhuǎn)向更高頻率。版本火車是一種用于協(xié)調(diào)跨多個團隊或具有運行時依賴性組件的發(fā)布技術(shù)。無論所有預(yù)期功能是否已準備就緒,所有版本根據(jù)一個固定且可靠的時間表發(fā)布(火車不會等你,如果錯過,就只能等下一趟了)。雖然我們完全支持關(guān)于定期發(fā)布和演示可用軟件的紀律性,但從中長期來看,我們發(fā)現(xiàn)該方法存在一些嚴重缺陷,因為該方法會增加有關(guān)變更排序的臨時耦合,而且如果團隊趕著在給定時間范圍內(nèi)完工,質(zhì)量可能會降低。我們更傾向于關(guān)注在必要的架構(gòu)與組織的方法,來支持獨立發(fā)布。雖然火車對于提升較慢團隊的速度非常有用,但我們也看到它給快速團隊帶來了上限。所以我們認為,在使用該技術(shù)時,應(yīng)盡量小心謹慎。


2平臺維度



a2.png


EVM beyond Ethereum


以太坊虛擬機 (EVM) 最初是為以太坊主網(wǎng)絡(luò)設(shè)計的。但如今,大多數(shù)團隊不再想要從頭開始發(fā)明區(qū)塊鏈;相反,他們會選擇“超越以太坊的 EVM(EVM beyond Ethereum )”。我們看到眾多區(qū)塊鏈團隊選擇對以太坊進行分支(如 Quorum)或?qū)崿F(xiàn) EVM 規(guī)范(如 Burrow、Pantheon),并添加他們自己的設(shè)計。這樣做不僅是為了重用以太坊的設(shè)計,還可以利用其生態(tài)系統(tǒng)和開發(fā)人員社區(qū)。對于許多開發(fā)人員而言,“智能合約”的概念差不多等同于“以 Solidity 編寫智能合約”。雖然以太坊本身具有一些限制,但圍繞 EVM 生態(tài)系統(tǒng)的技術(shù)正在繁榮發(fā)展。


InfluxDB


時序數(shù)據(jù)庫(TSDB)已經(jīng)問世一段時間了。隨著符合時序模型的使用場景愈發(fā)常見,TSDB 日益成為主流。InfluxDB 仍然是 TSDB 的理想選擇,主要用于監(jiān)控場景。TICK Stack 就是一款以 InfluxDB 作為核心的監(jiān)控解決方案。Influx 2.0 的 alpha 版最近引入了 Flux(一種用于查詢和處理時序數(shù)據(jù)的腳本語言)。雖然 Flux 目前仍處于早期階段,且無法斷定能比 InfluxDB 獲得更廣泛的應(yīng)用,但它承諾會比 InfluxQL 更強大且更具表達力,且能將時序分析工作交由數(shù)據(jù)庫來完成。然而,InfluxDB 只有企業(yè)版才能提供集群支持,因此在項目中需要留意這個限制。


Istio


Istio 正逐漸成為將微服務(wù)生態(tài)系統(tǒng)付諸應(yīng)用的標準基礎(chǔ)設(shè)施。其開箱即用的橫切關(guān)注點的實現(xiàn),已經(jīng)幫助我們快速實現(xiàn)了微服務(wù)。這些橫切關(guān)注點實現(xiàn)包括:服務(wù)發(fā)現(xiàn)、服務(wù)之間和從請求到服務(wù)之間的安全性、可觀測性(包括遙測和分布式跟蹤)、滾動發(fā)布和彈性。Istio 是我們一直使用的服務(wù)網(wǎng)格技術(shù)的主要實現(xiàn)平臺。我們非常享受它的每月發(fā)布及無縫升級所帶來的持續(xù)改進。我們使用 Istio 來啟動項目,從一開始就能獲得可觀測性(跟蹤和遙測)和服務(wù)之間的安全性。我們正密切關(guān)注其在網(wǎng)格內(nèi)外各處服務(wù)之間身份驗證方面所做的改進。此外,我們希望看到 Istio 為配置文件建立最佳實踐,從而在為服務(wù)開發(fā)人員提供自主權(quán)和為服務(wù)網(wǎng)格運營商提供控制權(quán)之間達到平衡。


Hot Chocolate


GraphQL 生態(tài)系統(tǒng)和社區(qū)正不斷發(fā)展。Hot Chocolate 是用于.NET(包括新的 core 和原先的傳統(tǒng)框架)的 GraphQL 服務(wù)器。該平臺可用于構(gòu)建和托管 schema,并能用于處理針對這些 schema 的查詢。Hot Chocolate 的開發(fā)團隊近期增添了 schema 拼接功能,允許從單個入口點跨多個 schema(從不同位置聚合而成)進行查詢。雖然該功能會被以多種方式誤用,但還是值得對其進行評估。


Knative


無服務(wù)器架構(gòu)的應(yīng)用,讓 FaaS 編程風格在開發(fā)人員之間越來越普及。該架構(gòu)通過獨立構(gòu)建和部署的函數(shù),幫助開發(fā)人員專注于解決核心業(yè)務(wù)問題。這些函數(shù)能響應(yīng)事件、運行業(yè)務(wù)流程、在流程中生成其他事件,完成任務(wù)后隨即消失,不再消耗資源。以前,AWS Lambda 或 Microsoft Azure Functions 等專有無服務(wù)器平臺已實現(xiàn)這種編程范式。Knative 是基于 Kubernetes 的開源平臺,用來運行 FaaS 工作負載。Knative 有幾點突出之處:開源且適用于任何供應(yīng)商;實現(xiàn)了 CNCF 無服務(wù)器工作小組白皮書中所定義的無服務(wù)器工作流;通過實現(xiàn)符合 CNCF CloudEvents 規(guī)格的事件接口,來確保跨服務(wù)的互操作性;尤其重要的是,它能夠解決在運維混合 FaaS 與長期運行的容器化架構(gòu)時所遇到的常見挑戰(zhàn)。該平臺易與 Istio 和 Kubernetes 集成。例如,通過在不同版本的函數(shù)之間切換流量,開發(fā)人員可以利用 Istio 實施金絲雀發(fā)布策略。對于處在相同 Kubernetes 環(huán)境中的長期運行的容器服務(wù)和 FaaS 程序,開發(fā)人員都可以享受到 Istio 所提供的可觀測能力。我們預(yù)計,Knative 開源事件接口將繼續(xù)支持更多底層源和目的事件的集成。


3工具維度



a3.png


UI dev environments


隨著越來越多的團隊擁抱 DesignOps,該領(lǐng)域的實踐和工具也日漸成熟。UI 開發(fā)環(huán)境專注于用戶體驗設(shè)計師與開發(fā)人員之間的協(xié)作(UI dev environments),為 UI 組件的快速迭代提供了綜合環(huán)境。目前在該領(lǐng)域可用的工具包括:Storybook、React Styleguidist、Compositor 和 MDX。這些工具既可以在組件庫或設(shè)計系統(tǒng)的開發(fā)過程中單獨使用,也可以將其嵌入到 web 應(yīng)用程序中使用。通過使用這些工具,許多團隊在開發(fā)準備工作中縮短了 UI 反饋周期并改善了 UI 工作的時間。于是,使用 UI 開發(fā)環(huán)境成為了我們合理的默認選擇。


batect


大量的精力仍然被浪費在部署本地開發(fā)環(huán)境和排查“works on my machine”(在我的機器上可以工作)的問題上。多年來,我們的團隊已經(jīng)采用“檢查并實施”的方法,使用腳本化方法來確保本地開發(fā)環(huán)境的配置始終一致。Batect 是由 ThoughtWorker 開發(fā)的一款開源工具,可幫助輕松搭建和共享基于 Docker 的構(gòu)建環(huán)境。Batect 作為構(gòu)建系統(tǒng)的入口點腳本,能夠啟動容器來執(zhí)行完全不依賴于本地配置的構(gòu)建任務(wù)。對構(gòu)建配置和依賴項的更改僅通過源碼管理即可共享,無需在本地機器或 CI 代理上進行任何更改或安裝。在該領(lǐng)域的其他工具中,我們偏向于使用 Cage,但我們也看到 batect 正在以符合我們團隊需求的方向迅速發(fā)展。


Detekt


Detekt 是一個適用于 Kotlin 的靜態(tài)代碼分析工具。它能夠發(fā)現(xiàn)代碼中的壞味道和復(fù)雜性。你可以通過命令行運行它,也可以使用其插件集成一些熱門的開發(fā)者工具,例如 Gradle(用于在項目構(gòu)建時執(zhí)行代碼分析)、SonarQube(用于除靜態(tài)代碼分析外的代碼覆蓋率統(tǒng)計)和 IntelliJ 等。Detekt 能夠給 Kotlin 應(yīng)用的構(gòu)建流水線錦上添花。


Humio


在日志管理領(lǐng)域,Humio 是一款相對較新的工具。該工具完全從零開始構(gòu)建,通過基于定制設(shè)計的時序數(shù)據(jù)庫的內(nèi)置查詢語言,在日志提取和查詢方面性能非???。從提取、可視化和報警提醒的角度來看,該工具能夠與幾乎所有工具相集成。日志管理領(lǐng)域已被 Splunk 和 ELK Stack 主導(dǎo),所以,有替代選擇也是一件好事。我們將持續(xù)關(guān)注 Humio 的發(fā)展。


Kubernetes Operators


我們對于 Kubernetes 對行業(yè)產(chǎn)生的影響興奮不已,但也擔心隨之而來的運維復(fù)雜度。保持 Kubernetes 集群啟動并運行、管理在該集群上部署的軟件包都需要特殊技能和時間。升級、遷移、備份等運維流程經(jīng)常會是一項全職工作。我們認為 Kubernetes Operator 會對降低復(fù)雜度起到關(guān)鍵作用。該框架提供了一套標準機制,為在 Kubernetes 集群中運行的軟件包描述了自動化運維流程。雖然 Operator 由 RedHat 發(fā)起和推廣,但多個社區(qū)為常用開源軟件包(如 Jaeger、MongoDB 和 Redis)開發(fā)的 Operator 已初露頭角。


4語言 & 框架維度



a4.png


Apache Beam


Apache Beam 是一個開源的統(tǒng)一編程模型,用于定義和執(zhí)行數(shù)據(jù)并行處理流水線的批處理與流式傳輸。Beam 模型基于數(shù)據(jù)流模型,允許我們以優(yōu)雅的方式表達邏輯,以便在批處理、窗口化批處理或流式傳輸之間輕松切換。大數(shù)據(jù)處理生態(tài)系統(tǒng)已經(jīng)取得了長足發(fā)展,這可能會導(dǎo)致人們難以選擇正確的數(shù)據(jù)處理引擎。允許我們在不同運行程序之間切換,這是選擇 Beam 的一個關(guān)鍵原因。幾個月前,它支持了 Apache Samza,這是除 Apache Spark、Apache Flink 和 Google Cloud Dataflow 之外的又一個新的運行程序。不同運行程序具有不同能力,且提供輕便的 API 是一項困難的任務(wù)。Beam 將這些運行程序的創(chuàng)新主動應(yīng)用于 Beam 模型,并與社區(qū)合作以影響這些運行程序的路線圖,從而試圖達到微妙的平衡。Beam 具有包括 Java、Python 和 Golang 多種語言的 SDK。我們也成功使用了 Scio,它為 Beam 提供了 Scala 包裝器。


Puppeteer


與 Cypress 和 TestCafe 一樣,Puppeteer 也是備受我們團隊推崇的一款 Web UI 測試工具。Puppeteer 能夠?qū)o頭瀏覽器進行細粒度控制,生成時間軸信息,以用于性能診斷等。我們的團隊發(fā)現(xiàn),相較其他基于 WebDriver 的同類工具,Puppeteer 更加穩(wěn)定、快速和靈活。


Room


Room 是一個數(shù)據(jù)持久化庫,用于在 Android 上訪問 SQLite。它支持使用最小限度的樣板代碼進行數(shù)據(jù)庫訪問,同時通過編譯時 SQL 校驗使數(shù)據(jù)庫訪問更加穩(wěn)健。令我們開發(fā)人員感到滿意的是,使用 LiveData 后,Room 能夠與可觀察查詢完整集成。Room 是 Android Jetpack 組件之一,旨在簡化 Android 應(yīng)用開發(fā)。


Rust


Rust 最近一次在技術(shù)雷達中出現(xiàn)是 2015 年,自那以來,我們看到開發(fā)者對 Rust 的興趣在逐漸提升。我們的一些客戶正在使用 Rust 語言,尤其在圍繞基礎(chǔ)設(shè)施工具方面的使用最為常見,而在高性能的嵌入式設(shè)備中也可以見到 Rust 的身影。不斷完善的生態(tài)系統(tǒng)以及語言本身的改進推動了人們的興趣提升。語言的改進方面,包括了直接的性能增強,也包括了直觀表現(xiàn)力的提高,例如非詞法作用域的更改。大多數(shù)重大變化都包含在去年 12 月發(fā)布的 Rust 2018 標準中。


fastai


fastai 是一個開源 Python 庫,能夠簡化對快速且準確的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。它基于 PyTorch 構(gòu)建,已成為備受我們數(shù)據(jù)科學(xué)家歡迎的工具。fastai 可簡化模型訓(xùn)練中的難點,如預(yù)處理、使用少量代碼加載數(shù)據(jù)。該庫根據(jù)深度學(xué)習最佳實踐構(gòu)建而成,對計算機視覺、自然語言處理 (NLP) 等提供開箱即用的支持。創(chuàng)始人的動機是為深度學(xué)習創(chuàng)建易于使用的庫,使之成為一個改進版的 Keras。GCP、AWS 和 Azure 很快便接納了 fastai,將其包含在機器學(xué)習的鏡像中。fastai 的創(chuàng)建者意識到 Python 在速度和安全方面的限制,已宣布接納 Swift 作為深度學(xué)習的替代語言。我們將密切關(guān)注其進展。


文章評論

您需要登錄才可以對文章進行評論。

沒有賬號?立即注冊

最新活動
意見反饋
取消