2024年技術(shù)雷達(dá)-針對(duì)當(dāng)今科技領(lǐng)域發(fā)展的前沿指南報(bào)告(第31期)_第1頁(yè)
2024年技術(shù)雷達(dá)-針對(duì)當(dāng)今科技領(lǐng)域發(fā)展的前沿指南報(bào)告(第31期)_第2頁(yè)
2024年技術(shù)雷達(dá)-針對(duì)當(dāng)今科技領(lǐng)域發(fā)展的前沿指南報(bào)告(第31期)_第3頁(yè)
2024年技術(shù)雷達(dá)-針對(duì)當(dāng)今科技領(lǐng)域發(fā)展的前沿指南報(bào)告(第31期)_第4頁(yè)
2024年技術(shù)雷達(dá)-針對(duì)當(dāng)今科技領(lǐng)域發(fā)展的前沿指南報(bào)告(第31期)_第5頁(yè)
已閱讀5頁(yè),還剩84頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

技術(shù)雷達(dá)2024年10月關(guān)于技術(shù)雷達(dá)3雷達(dá)一覽4貢獻(xiàn)者本期主題6TheRadar8本期雷達(dá)9平臺(tái)20工具26語(yǔ)言和框架36Thoughtworks技術(shù)雷達(dá)Thoughtworker酷愛(ài)技術(shù)。我們致力于建造技術(shù),研究技術(shù),測(cè)試技術(shù),開(kāi)源技術(shù),書(shū)寫(xiě)技術(shù),并不斷改進(jìn)技術(shù)。支持卓越軟件并掀起IT革命是我們的使命,Thoughtworks技術(shù)雷達(dá)就是為了完成這一使命。它由Thoughtworks中一群資深技術(shù)領(lǐng)導(dǎo)組成的技術(shù)顧問(wèn)委員會(huì),通過(guò)定期討論Thoughtworks的全球技術(shù)戰(zhàn)略以技術(shù)雷達(dá)以獨(dú)特的形式記錄技術(shù)顧問(wèn)委員會(huì)的討論結(jié)果,從首席技術(shù)官到開(kāi)發(fā)人員,雷達(dá)將會(huì)為各路利益相關(guān)想要了解更多技術(shù)雷達(dá)相關(guān)信息,請(qǐng)點(diǎn)擊:/cn/radar/faq?Thoughtworks,Inc.AllRightsReserved.Thoughtworks技術(shù)雷達(dá)行分類(lèi),不同象限代表不同種類(lèi)的技術(shù),而圓環(huán)則代表我們對(duì)它作出軟件領(lǐng)域瞬息萬(wàn)變,我們追蹤的技術(shù)條目也如此,因此您會(huì)發(fā)現(xiàn)它們?cè)诶撞杉{:我們強(qiáng)烈主張業(yè)界采用這些技術(shù)。我們會(huì)試驗(yàn):值得追求。重要的是理解如何建立這種能評(píng)估:為了確認(rèn)它將如何影響你所在的企業(yè),值暫緩評(píng)估試驗(yàn)技術(shù)雷達(dá)是具有前瞻性的。為了給新的技術(shù)條目騰出空間,我們挪出了近期沒(méi)有發(fā)生太多變?Thoughtworks,Inc.AllRightsReserved.4技術(shù)顧問(wèn)委員會(huì)(TAB)由Thoughtworks的22名高級(jí)技術(shù)專(zhuān)家組成。TAB每年召開(kāi)兩次面對(duì)面會(huì)議,每?jī)芍苷匍_(kāi)一次視頻會(huì)議。其主要職責(zé)是為T(mén)houghtworks的首席技術(shù)官RachelLaycock和名譽(yù)首席技術(shù)官RebeccaParsons提供咨詢(xún)建議。作為一個(gè)綜合型組織,TAB能夠?qū)徱曈绊慣houghtworks技術(shù)戰(zhàn)略和技術(shù)人員的各種主題。本期技術(shù)雷達(dá)內(nèi)容基于2024年9月技術(shù)委員會(huì)成員在紐約的面對(duì)面會(huì)議創(chuàng)建。RachelLaycockErikD?rnenburgPawanShahVanyaSethMartinFowlerJamesLewisScottShawWillAmaralKenMugrageSelvakumarNatesanBharaniSubramaniamMayaOrmazaShangqiLiuBirgittaB?ckelerMikeMasonSofiaTaniaCamillaFalconiCrispimThomasSqueo?Thoughtworks,Inc.AllRightsReserved.5興模式。伴隨這些模式不可避免的也出現(xiàn)了對(duì)應(yīng)的反模式――那些開(kāi)發(fā)者應(yīng)避免的情境化問(wèn)題。我們?cè)谶^(guò)度亢使用大量嵌套條件語(yǔ)句而不是應(yīng)用一個(gè)策略設(shè)計(jì)模式。代碼質(zhì)量問(wèn)題尤其突顯了開(kāi)發(fā)者和架構(gòu)師需Rust逐漸成為首選的系統(tǒng)編程語(yǔ)言。在每一次的雷達(dá)會(huì)議中,Rust都反復(fù)出現(xiàn)討論的許多工具都是用Rust編寫(xiě)的。當(dāng)替換舊的系統(tǒng)級(jí)實(shí)用工具時(shí),它是首選語(yǔ)言,同時(shí)也是為了提高性能而重寫(xiě)生態(tài)系統(tǒng)某些部分的選擇――基于Rust的工具最常見(jiàn)的描述是“極其快速”。例如,我們看到Python生態(tài)系統(tǒng)中有幾種工具提供了基于Rust的替代方案,以支持明顯更好的WASM(WebAssembly)是一種用于基于棧的虛擬機(jī)的二進(jìn)制指令格式,這聽(tīng)起來(lái)對(duì)大多數(shù)開(kāi)發(fā)者來(lái)說(shuō)太深?yuàn)W和底層,直到人們看到其潛在的影響:能夠在瀏覽器沙箱中運(yùn)行復(fù)雜的應(yīng)用程序。WASM可以在現(xiàn)有的JavaScript虛擬機(jī)中運(yùn)行,使得開(kāi)發(fā)者過(guò)去只能在原生框架和擴(kuò)展中實(shí)現(xiàn)的應(yīng)用程序可以嵌入到瀏覽器中?,F(xiàn)發(fā)開(kāi)辟了令人興奮的可能性。過(guò)去幾年,我們對(duì)此標(biāo)準(zhǔn)一直保持高度關(guān)注,看到它開(kāi)始展現(xiàn)作為一個(gè)合理部署?Thoughtworks,Inc.AllRightsReserved.6框架、向量數(shù)據(jù)庫(kù)、云服務(wù)和可觀(guān)察性工具。在許多方面,這種快速多樣的發(fā)送首個(gè)提示詞后所做的夢(mèng)想和夸大宣傳,但我們?cè)谠S多客戶(hù)中看到了生成式人工智能的合理高效的應(yīng)用,這些工具、平臺(tái)和框架在將基于LLM的解決方案投入生產(chǎn)中發(fā)揮了重要作用。就像2015年左右JavaSc態(tài)系統(tǒng)的爆發(fā)一樣,我們預(yù)計(jì)這種混亂的增長(zhǎng)還將?Thoughtworks,Inc.AllRightsReserved.7本期雷達(dá)2323586059225860592261626374616263746465476465476649481066494810505251675052686997142086869971420853354705336 42435571645724544562452465773暫緩評(píng)估試驗(yàn)采納采納試驗(yàn)評(píng)估暫緩9090247689753024768975301048886103258710488861032587858333328583333282842728342926828427283429268110079998110080357798773637977837979638939594963893959439404140419192?Thoughtworks,Inc.AllRightsReserved.8本期雷達(dá)平臺(tái)平臺(tái)5.領(lǐng)域敘事(Domainstorytelling)8.LLMasajudge9.Passkeys―24.DatabricksUnityCatalog25.FastChat26.GCPVertexAIAgentBuilder27.Langfuse28.Qdrant29.Vespa30.AzureAISearch31.DatabricksDeltaLiveTables32.ElastisysCompliantKubernetes33.FoundationDB34.Golem35.Iggy36.Iroh38.OpenBCIGalea39.PGLite40.SpinKube41.Unblocked―工具工具42.Bruno43.K9s46.Wiz47.AWSControlTower48.CCMenu49.ClickHouse50.Devbox51.Difftastic52.LinearB53.pgvector54.Snapcraft構(gòu)建工具55.Spinnaker56.TypeScriptOpenAPI58.AstronomerCosmos59.ColPali60.Cursor61.DataMeshManager62.GitButler63.JetBrainsAIAssistant64.Mise65.Mockoon66.Raycast68.Rspack70.軟件工程代理Softwareengineeringagents72.Warp73.Zed74.CocoaPods?Thoughtworks,Inc.AllRightsReserved.75.dbt76.Testcontainers79.DatabricksAssetBundles80.Instructor82.LiteLLM83.LlamaIndex84.LLMGuardrails85.Medusa88.seL489.SetFit90.vLLM91.ApacheXTable?92.dbldatagen93.DeepEval95.FlutterforWeb96.kotaemon98.LLMLingua99.MicrosoftAutogen102.Score103.shadcn104.Slint―232210879201436452暫緩評(píng)估232210879201436452暫緩評(píng)估●沒(méi)有變化5.領(lǐng)域敘事(Domainstorytelling)8.LLMasajudge9.Passkeys這些用戶(hù)是從不同類(lèi)別中精心挑選的。這使團(tuán)隊(duì)能夠快速獲取用戶(hù)反饋,并觀(guān)察新的影響,必要時(shí)進(jìn)行學(xué)習(xí)和調(diào)整。這一技術(shù)在團(tuán)隊(duì)向移動(dòng)應(yīng)用程序或一系列設(shè)備(如邊緣計(jì)算設(shè)汽車(chē))推出軟件更新時(shí)尤為重要。通過(guò)適當(dāng)?shù)目捎^(guān)察性和早期反饋,它能夠在生產(chǎn)影響范圍。雖然金絲雀發(fā)布有助于更快地獲取用戶(hù)反饋,但我們認(rèn)為從小部分用戶(hù)開(kāi)始測(cè)試是應(yīng)該穩(wěn)定且快速運(yùn)行。相反,我們看到的是,團(tuán)隊(duì)放棄了對(duì)組件測(cè)試的掌握,而更傾向于端到的測(cè)試以及非常狹隘定義的單元測(cè)試。單元測(cè)試往往迫使組件暴露本應(yīng)是純內(nèi)部的功能,而基中運(yùn)行組件測(cè)試。當(dāng)然,像Playwright這樣的瀏覽器工具仍然適用于端到端的測(cè)試,但不應(yīng)用于組件測(cè)試。我們認(rèn)為,組織應(yīng)該在可能的情況下采用持續(xù)部署實(shí)踐。持續(xù)部持續(xù)部署與持續(xù)交付的區(qū)別在于,它只要求代碼“可以”在任何時(shí)候進(jìn)行部署;并不要求每個(gè)更改“實(shí)際被”部署到生產(chǎn)環(huán)境中。我們過(guò)去一直猶豫將持續(xù)部署移入“采納”環(huán)節(jié),因?yàn)檫@是一種需要在軟件交付具備高水平成熟度的實(shí)踐,因此并不適合所有團(tuán)隊(duì)。然而,Thou書(shū)籍《持續(xù)部署》提供了在組織中實(shí)施這一實(shí)踐的全面指南。它為組織提供了一條實(shí)現(xiàn)?Thoughtworks,Inc.AllRightsReserved.12檢索增強(qiáng)生成(RAG)是我們團(tuán)隊(duì)提高LLM生成響應(yīng)質(zhì)量的首選模式技術(shù),包括JugalbandiAI平臺(tái)。在RAG技術(shù)中,相關(guān)且可信的文檔信息存儲(chǔ)在數(shù)據(jù)庫(kù)中。在給定的提示詞富的上下文。這不僅提高了輸出質(zhì)量,還大大減少了幻覺(jué)現(xiàn)象。雖然隨著新模型的出現(xiàn),LLM的上下文窗口心構(gòu)建的較小上下文有時(shí)能比廣泛的大上下文產(chǎn)生更好的效果。并且使用大上下文也會(huì)導(dǎo)致速度變慢且成本更高。我們過(guò)去依賴(lài)存儲(chǔ)在向量數(shù)據(jù)庫(kù)中的向量嵌入(embedding)來(lái)識(shí)別額外的上下文,但現(xiàn)在我們看到了重排序和混合搜索的趨勢(shì):搜索工具如ElasticsearchRelevanceEngine以及諸如GraphRAG等利用LLM創(chuàng)建的知識(shí)圖譜的方法開(kāi)始被使用。在我們利用生成式AI理解遺留代碼庫(kù)的工作中,基于圖譜的方法表現(xiàn)得特別出色。5.領(lǐng)域敘事(Domainstorytelling)域模型沒(méi)有一種通用的方法。我們最近遇到的一種前景看好的技術(shù)是領(lǐng)域敘事(Domainstorytelling)。領(lǐng)域敘事是一種引導(dǎo)技術(shù),業(yè)務(wù)專(zhuān)家被提示描述業(yè)務(wù)中的活動(dòng)體和參與者之間的關(guān)系和動(dòng)作。使這些故事可視化的過(guò)程有助于澄清和發(fā)展參與者之間的共同理解。由于沒(méi)有微調(diào)嵌入模型可以提高特定任務(wù)或領(lǐng)域嵌入的準(zhǔn)確性和相關(guān)性。我們的團(tuán)隊(duì)在開(kāi)發(fā)領(lǐng)域特定的大語(yǔ)言模型應(yīng)用時(shí)進(jìn)行了嵌入微調(diào),因?yàn)榫_的信息提取至關(guān)重要。然而,當(dāng)你急于微調(diào)嵌入模型之前,請(qǐng)仔細(xì)權(quán)衡這種?Thoughtworks,Inc.AllRightsReserved.13其輸出進(jìn)行操作,有效地彌合了思想與行動(dòng)之間的差距――就像人類(lèi)使用工具來(lái)完成各種任務(wù)一樣。通過(guò)引入接到內(nèi)部系統(tǒng)和數(shù)據(jù)庫(kù),甚至通過(guò)連接的瀏覽器進(jìn)行互聯(lián)網(wǎng)搜索。像Open調(diào)其作為多種實(shí)現(xiàn)中基礎(chǔ)工具的潛力,而非8.LLMasajudge9.Passkeys在FIDO聯(lián)盟的引導(dǎo)下,并由Apple、Google和Microsoft支持,passkeys正逐步接近主流可用性。使用證明自己擁有私鑰來(lái)進(jìn)行身份驗(yàn)證,該私鑰存儲(chǔ)在用戶(hù)設(shè)備上,永遠(yuǎn)不會(huì)發(fā)送到物識(shí)別或PIN碼保護(hù)。passkeys可以在大科技生態(tài)系統(tǒng)中存儲(chǔ)和同步,如Apple的iCloud鑰匙串、Google在創(chuàng)建密鑰或需要登錄的設(shè)備之外的其他設(shè)備上。對(duì)passkeys最常見(jiàn)的反對(duì)意見(jiàn)是它對(duì)技術(shù)來(lái)說(shuō)是個(gè)挑戰(zhàn),而我們認(rèn)為這種觀(guān)點(diǎn)實(shí)際上是在自我否定。這類(lèi)用戶(hù)通替代方法中受益。實(shí)際上,使用passkeys的系統(tǒng)在必要時(shí)可以回退到更傳統(tǒng)的認(rèn)證方式。?Thoughtworks,Inc.AllRightsReserved.14示需要大量計(jì)算資源,導(dǎo)致查詢(xún)速度慢且成本高;這些模型是專(zhuān)有的,體積龐大,必須由第三方托管在云中,這可能對(duì)敏感數(shù)據(jù)造成問(wèn)題;而且,在大多數(shù)情況下,訓(xùn)練一個(gè)模型的費(fèi)用是非常高的。最后一個(gè)問(wèn)題可以通常在35億到100億個(gè)參數(shù)之間。最近的研究表明,在適當(dāng)?shù)纳宪浲瞥銎銹hi-3系列,該領(lǐng)域正在迅速發(fā)展。合成數(shù)據(jù)集創(chuàng)建涉及生成可以模擬現(xiàn)實(shí)世界場(chǎng)景的人工數(shù)據(jù),而無(wú)需依賴(lài)數(shù)據(jù)中重新使用合成數(shù)據(jù)的趨勢(shì)。企業(yè)通常面臨領(lǐng)域特定數(shù)據(jù)缺乏標(biāo)注的問(wèn)題,尤其是在訓(xùn)練或型(LLMs)時(shí)。像Bonito和Microsoft’sAgentInstruct這樣的工具可以從原始數(shù)據(jù)源(如文本文檔和代碼文件)生成合成的指令調(diào)優(yōu)數(shù)據(jù)。這有助于加速模型訓(xùn)練,同時(shí)降低成本和對(duì)手動(dòng)數(shù)據(jù)管理的依賴(lài)。另一個(gè)重要擬稀有交易,使模型在檢測(cè)邊緣案例方面更加穩(wěn)健,從式AI理解遺留代碼庫(kù)的技術(shù)和產(chǎn)品得到了進(jìn)一步的發(fā)展,我們已經(jīng)成功實(shí)踐了一些方法,機(jī)現(xiàn)代化改造的逆向工程中。我們使用的一個(gè)特別有前景的技術(shù)是retrieval-augmentedgeneration(RAG)文本代碼中推導(dǎo)的內(nèi)容。這對(duì)于那些不具備自我描述性和一致性的遺留代碼庫(kù)尤其有幫助。另一個(gè)提升代碼理?Thoughtworks,Inc.AllRightsReserved.15AI編碼輔助工具通常是在幫助和增強(qiáng)個(gè)人貢獻(xiàn)者的工作方面被討論的。然而,軟件交付始終是團(tuán)隊(duì)合作的過(guò)來(lái)源匯聚在一起,并智能地整合到團(tuán)隊(duì)成員工具中的隊(duì)協(xié)作平臺(tái),為團(tuán)隊(duì)提供新的搜索類(lèi)型和訪(fǎng)問(wèn)其文檔的方式,并通14.動(dòng)態(tài)少樣本提示像scikit-llm這樣的庫(kù)實(shí)現(xiàn)了這一技術(shù),它使用最近鄰搜索來(lái)獲取與用戶(hù)查詢(xún)最相關(guān)的示例。該技術(shù)可以更好地利用模型有限的上下文窗口,并減少token消耗。開(kāi)源SQL生成器vanna就是利用動(dòng)態(tài)少樣本提示來(lái)提高討論過(guò)GraphQL作為一種API協(xié)議,它使開(kāi)發(fā)者能夠創(chuàng)建一個(gè)統(tǒng)一的API層,縫地發(fā)現(xiàn)數(shù)據(jù)格式和關(guān)系,并使用熟悉的客戶(hù)端工具進(jìn)行各種操作。我們的團(tuán)隊(duì)正在探索將根據(jù)用戶(hù)提示詞構(gòu)建,同時(shí)還可以在提示詞中引入GraphQL結(jié)構(gòu)以便于LLM參考以生成準(zhǔn)確的查詢(xún)語(yǔ)句。項(xiàng)技術(shù)允許開(kāi)發(fā)人員將復(fù)雜的任務(wù)分解為多個(gè)小任務(wù),再交由不同的工具來(lái)執(zhí)行任務(wù),代理之間通過(guò)對(duì)話(huà)來(lái)協(xié)調(diào)任務(wù)流程。該技術(shù)仍處于早期開(kāi)發(fā)階段。在我們目前的團(tuán)隊(duì)遇到了一些問(wèn)題,比如說(shuō)代理陷入持續(xù)循環(huán)和行為失控。像LangGraph這樣的庫(kù)提供了更大的代理交互控制能力,能夠以圖的形式定義流程。如果你使用這項(xiàng)技術(shù),我們建議實(shí)施?Thoughtworks,Inc.AllRightsReserved.16可觀(guān)察性2.0代表了一種從傳統(tǒng)的、分散的監(jiān)控工具向統(tǒng)一方法的轉(zhuǎn)變,它通過(guò)以原始形式存儲(chǔ)事件,這種方法簡(jiǎn)化了關(guān)聯(lián)性分析,支持實(shí)時(shí)和取證分析,并能夠深入了解復(fù)雜的分布式系統(tǒng)。它允許高分辨率的監(jiān)控和動(dòng)態(tài)調(diào)查能力??捎^(guān)察性2.0優(yōu)先捕捉高基數(shù)和高維度數(shù)據(jù),能夠進(jìn)行詳細(xì)的檢查而不會(huì)產(chǎn)生性能瓶頸。統(tǒng)一的數(shù)據(jù)存儲(chǔ)減少了復(fù)雜性,大語(yǔ)言模型(LLMs)現(xiàn)在可以在網(wǎng)絡(luò)瀏覽器和智能手機(jī)、筆記本電腦等邊緣設(shè)成為可能。這允許在不傳輸?shù)皆贫说那闆r下安全處理敏感數(shù)據(jù),為邊緣計(jì)算、實(shí)時(shí)圖像或視頻處理等任務(wù)提供極低的延遲,通過(guò)本地計(jì)算降低成本,并在網(wǎng)絡(luò)連接不穩(wěn)定或不可用時(shí)依然能夠正常工作。這是研究和開(kāi)發(fā)領(lǐng)域。我們之前曾提到過(guò)MLX,這是一個(gè)在AppleSilicon上高效執(zhí)行機(jī)器學(xué)習(xí)的開(kāi)源框架。其他新興工具包括Transformers.js和Chatty。Transformers.js允許你通過(guò)ONNXRuntime在瀏覽器中運(yùn)行transformers,支持從PyTorch、TensorFlow和JAX轉(zhuǎn)換的模型。Chatty利用WebGPU在瀏覽器中本地和從LLMs獲取結(jié)構(gòu)化輸出是指通過(guò)定義的結(jié)構(gòu)模式來(lái)約束語(yǔ)言模型的響應(yīng)。這可以通過(guò)指示通用模型以特定格式響應(yīng),或者通過(guò)微調(diào)模型使其“原生”輸出互和外部集成中尤其有價(jià)值,因?yàn)檫@些場(chǎng)景中格式的準(zhǔn)確性和一致性至關(guān)重要。結(jié)構(gòu)化輸出不僅提升了與代碼交互的方式,還支持更廣泛的使用場(chǎng)景,例如生成用于呈現(xiàn)圖?Thoughtworks,Inc.AllRightsReserved.17AI編程助手,如GitHubCopilot和Tabnine,已經(jīng)變得非常受歡迎。根據(jù)StackOverflow2024年開(kāi)發(fā)者調(diào)了幾次積極的AI輔助體驗(yàn)后,很容易在審查AI建議時(shí)變得不夠謹(jǐn)慎。像GitClear的這項(xiàng)研究顯示了代碼庫(kù)創(chuàng)建企業(yè)范圍的集成測(cè)試環(huán)境是一種常見(jiàn)且浪費(fèi)的做法,會(huì)拖珍貴資源,成為開(kāi)發(fā)的瓶頸。由于不同環(huán)境之間不可避免的數(shù)據(jù)和配置開(kāi)銷(xiāo)差異,它們還會(huì)提供點(diǎn)未能考慮到企業(yè)級(jí)集成測(cè)試環(huán)境所造成的延遲成本,因?yàn)殚_(kāi)發(fā)團(tuán)隊(duì)往往需要等待其他團(tuán)隊(duì)完成任務(wù)或等待依賴(lài)系統(tǒng)的新版本部署。相反,團(tuán)隊(duì)?wèi)?yīng)使用臨時(shí)環(huán)境,最好是開(kāi)發(fā)團(tuán)隊(duì)擁建和銷(xiāo)毀,使用替身(fakestubs)而不是實(shí)際的副22.禁用大語(yǔ)言模型批準(zhǔn)且可能不安全的替代方案,帶來(lái)不必要的風(fēng)險(xiǎn)。正如個(gè)人計(jì)算機(jī)早期一樣,具來(lái)完成工作,無(wú)論是否存在障礙。如果公司不提供安全且獲大語(yǔ)言模型,這會(huì)帶來(lái)知識(shí)產(chǎn)權(quán)、數(shù)據(jù)泄露和法律責(zé)任的風(fēng)險(xiǎn)。相反,提供安全、?Thoughtworks,Inc.AllRightsReserved.18有的同行信任它,有的同行討厭它?,F(xiàn)在大家都會(huì)對(duì)編碼助手們提出同樣智能,而不是另外一個(gè)程序員,進(jìn)行結(jié)對(duì)編程,從而達(dá)到同樣的團(tuán)隊(duì)產(chǎn)出嗎?GithubCopilot甚至自稱(chēng)為“你代替結(jié)對(duì)編程。把編碼助手當(dāng)做結(jié)對(duì)編程者忽略了結(jié)對(duì)編程的一個(gè)關(guān)鍵收益:它可以讓團(tuán)隊(duì)而不只是個(gè)人變得更好。在幫助解決難題,學(xué)習(xí)新技術(shù),引導(dǎo)新人,或者提高技術(shù)任務(wù)的效率從而讓團(tuán)隊(duì)更關(guān)注戰(zhàn)些方面,使用編程助手確實(shí)大有裨益。但在諸如將正在進(jìn)行的工作的數(shù)量控學(xué)習(xí),讓持續(xù)集成成為可能,或者改善集體代碼所有權(quán)等等這些團(tuán)隊(duì)合作相關(guān)的層面,它沒(méi)有帶?Thoughtworks,Inc.AllRightsReserved.19平臺(tái)暫緩評(píng)估30242532平臺(tái)暫緩評(píng)估3024253233263428293536373840392741●沒(méi)有變化―24.DatabricksUnityCatalog25.FastChat26.GCPVertexAIAgentBuilder27.Langfuse28.Qdrant29.Vespa30.AzureAISearch31.DatabricksDeltaLiveTables32.ElastisysCompliantKubernetes33.FoundationDB34.Golem35.Iggy36.Iroh38.OpenBCIGalea39.PGLite40.SpinKube41.Unblocked―24.DatabricksUnityCatalogDatabricksUnityCatalog是一種用于數(shù)據(jù)治理的解決方案,適用于在lakehouse中的資產(chǎn),例如文件、表或機(jī)器學(xué)習(xí)模型。它是開(kāi)源UnityCatalog的托管版本,可用于管理和查詢(xún)存儲(chǔ)在外部存儲(chǔ)或由Databricks管理的需求。我們團(tuán)隊(duì)發(fā)現(xiàn)的一個(gè)問(wèn)題是Databricks托管的UnityCatalog缺乏自動(dòng)災(zāi)難恢復(fù)功能。雖然他們能通常會(huì)實(shí)施集中化的解決方案,以確保工作空間和工作負(fù)載之間的一致性,但可以通過(guò)讓各個(gè)團(tuán)隊(duì)管理自己的25.FastChatFastChat是一個(gè)開(kāi)放平臺(tái),用于訓(xùn)練、服務(wù)和評(píng)估大型語(yǔ)言模型。我們的團(tuán)隊(duì)利用其模型服務(wù)能力來(lái)托管多個(gè)模型―Llama3.1(8Band70B)、Mistral7B和Llama-SQL―出于不同的目的,所有模型均以一致的OpenAIAPI格式運(yùn)行。FastChat采用控制器-工作者架構(gòu),允許多個(gè)工作者托管不同的模型。它支持不同類(lèi)型的工作者,如vLLM、LiteLLM和MLX。我們選擇使用vLLM模型工作的擴(kuò)展能力進(jìn)行A/B測(cè)試。我們用相同的模型但不同的超參數(shù)(Hyperparameter)值配置FastChat工作者,我們進(jìn)行A/B測(cè)試以確保平滑遷移。例如,我們最近將代碼建議的模型從CodeLlama70B遷移到Llama3.170B。通過(guò)同時(shí)運(yùn)行這兩個(gè)模型并比較輸出,我們驗(yàn)證了新模型在性能上達(dá)到26.GCPVertexAIAgentBuilderGCPVertexAIAgentBuilder提供了一個(gè)靈活的平臺(tái),可以通過(guò)自然語(yǔ)言或代碼優(yōu)先的方式創(chuàng)建AI代理。該工具通過(guò)第三方連接器無(wú)縫集成企業(yè)數(shù)據(jù),并且擁有構(gòu)建、原型設(shè)計(jì)和部署AI代理所需的全部工具。隨著對(duì)AI代理需求的增加,許多團(tuán)隊(duì)在理解其優(yōu)勢(shì)和實(shí)施上面臨困難。GCPVertexAIAgentBuilder使開(kāi)發(fā)者能夠更快地進(jìn)行代理的原型設(shè)計(jì),并以最小的設(shè)置處理復(fù)雜的數(shù)據(jù)任務(wù)。我代理的系統(tǒng),例如知識(shí)庫(kù)或自動(dòng)化支持系統(tǒng),這些系統(tǒng)可以高效地管理結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)?Thoughtworks,Inc.AllRightsReserved.2127.Langfuse程序在生產(chǎn)環(huán)境中的運(yùn)作至關(guān)重要。我們團(tuán)隊(duì)在使用Langfuse方面有過(guò)積極的體驗(yàn),我們?cè)盟鼇?lái)觀(guān)察、監(jiān)控和評(píng)估基于LLM的應(yīng)用程序。它的追蹤、分析和評(píng)估能力使我們能夠分析完成性能和準(zhǔn)確性,管理成本和延遲,并理解生產(chǎn)使用模式,從而促進(jìn)持續(xù)的數(shù)據(jù)驅(qū)動(dòng)改進(jìn)。儀器數(shù)據(jù)提供了請(qǐng)求-響應(yīng)流和中間步驟的完整可追溯性,這可以作為測(cè)試數(shù)據(jù),在部署新變更之前驗(yàn)證應(yīng)用程序。我們已將Langfuse與RAG(檢索增強(qiáng)生慮的選項(xiàng)是Langsmith。28.QdrantQdrant是一個(gè)開(kāi)源的向量相似度搜索引擎和數(shù)據(jù)庫(kù),使用Rust編寫(xiě)。它支持多重文本和多模態(tài)密集向量嵌入模型。我們的團(tuán)隊(duì)使用了諸如MiniLM-v6和BGE等開(kāi)源嵌入模型,將其應(yīng)用于多的產(chǎn)品知識(shí)庫(kù)中。我們把Qdrant作為一個(gè)企業(yè)級(jí)VectorStore使用,利用多租戶(hù)技術(shù)將向量嵌入存儲(chǔ)為獨(dú)立的集合,從而隔離不同產(chǎn)品的知識(shí)庫(kù)。用戶(hù)訪(fǎng)問(wèn)策略則在應(yīng)用層中進(jìn)行管理。29.VespaVespa是一個(gè)開(kāi)源搜索引擎和大數(shù)據(jù)處理平臺(tái)。它特別適合于需要低延遲和高吞吐量的應(yīng)用。我們的團(tuán)隊(duì)喜歡Vespa實(shí)現(xiàn)混合搜索的能力,能夠使用多種檢索技術(shù)高效過(guò)濾和排序多種類(lèi)型的元數(shù)據(jù),實(shí)30.AzureAISearchAzureAISearch,前稱(chēng)CognitiveSearch,是一個(gè)云端搜索服務(wù),專(zhuān)為處理結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)而設(shè)計(jì),例如PDF、DOC和PPT,從而簡(jiǎn)化創(chuàng)建可搜索內(nèi)容的流程。此外,它還與常適合在Azure環(huán)境中托管的項(xiàng)目。通果您在Azure生態(tài)系統(tǒng)中工作并需要為RAG應(yīng)用構(gòu)建強(qiáng)大的搜索解決方案,AzureAISearch值得考慮。?Thoughtworks,Inc.AllRightsReserved.2231.DatabricksDeltaLiveTablesDatabricksDeltaLiveTables是一個(gè)聲明式框架,旨在構(gòu)建可靠、可維護(hù)和可測(cè)試的數(shù)據(jù)處理管道。它允許數(shù)據(jù)工程師使用聲明式方法定義數(shù)據(jù)轉(zhuǎn)換,并自動(dòng)管理底層基礎(chǔ)設(shè)施和數(shù)據(jù)流。DeltaLiveTabl這種可見(jiàn)性對(duì)于復(fù)雜的流水線(xiàn)至關(guān)重要,幫助數(shù)據(jù)工程師和數(shù)據(jù)科學(xué)家跟蹤數(shù)據(jù)血緣和依賴(lài)關(guān)系。DeltaLiveTables之前仔細(xì)評(píng)估輸入和輸出接口的兼容性。32.ElastisysCompliantKubernetesElastisysCompliantKubernetes是一個(gè)專(zhuān)門(mén)設(shè)計(jì)的Kubernetes發(fā)行版,旨在滿(mǎn)足嚴(yán)格的監(jiān)管和合規(guī)要求,尤其適用于醫(yī)療、金融和政府等高度監(jiān)管的行業(yè)。它自動(dòng)化了需要安全、合規(guī)且可靠的Kubernetes環(huán)境的公司來(lái)說(shuō),這是一個(gè)具有吸引力的選擇。33.FoundationDBFoundationDB是一個(gè)多模型數(shù)據(jù)庫(kù),2015年被蘋(píng)果公司收購(gòu),并于2018年4月開(kāi)源。FoundationDB的顯著的改進(jìn),包括智能數(shù)據(jù)分布以避免寫(xiě)入熱點(diǎn)、新的存儲(chǔ)引擎、性能優(yōu)化以及多區(qū)域復(fù)制支持。我們正在FoundationDB仍然非常易于運(yùn)行和操作大型集群。34.Golem組件,同時(shí)Golem具有確定性并支持快速啟動(dòng)時(shí)間。我們認(rèn)為Gole?Thoughtworks,Inc.AllRightsReserved.2335.IggyIggy是一個(gè)用Rust編寫(xiě)的持久化消息流36.Iroh中構(gòu)建去中心化帶來(lái)了令人興奮的可能性。如果您不想自己托管Iroh節(jié)點(diǎn),可以使用其云服務(wù)work。處于早期階段,但值得關(guān)注,因?yàn)樗锌赡艹蔀槿ブ行幕鎯?chǔ)更適合簡(jiǎn)單的聊天界面或純文本API不同,計(jì)算機(jī)視覺(jué)工括V7、NvidiaDeepstreamSDK和Roboflow,這些平臺(tái)正在解決這些挑戰(zhàn)。Deepstream和Roboflow對(duì)我們特別有吸引力,因?yàn)樗鼈兘Y(jié)合了用于管理和標(biāo)注視頻流的集成GUI開(kāi)發(fā)環(huán)境,同時(shí)提供了Python、C++?Thoughtworks,Inc.AllRightsReserved.2438.OpenBCIGalea的平臺(tái)上構(gòu)建創(chuàng)新應(yīng)用,而不必?fù)?dān)心低級(jí)信號(hào)處理和集成挑戰(zhàn)。這樣的平臺(tái)的例子功能結(jié)合在一起。它為開(kāi)發(fā)人員提供了一系列時(shí)間鎖定的生理數(shù)據(jù)流,以及空間定位傳感器和眼動(dòng)追蹤。這些傳感器數(shù)據(jù)可以用于控制各種物理和數(shù)字設(shè)備。該SDK支持多種語(yǔ)言,并在Unity或Unreal中提供傳感器數(shù)據(jù)。我們很高興看到這一能力在開(kāi)源平臺(tái)上提供,這樣研究人員就能獲得他們?cè)谶@一領(lǐng)域創(chuàng)新所需的工具和數(shù)據(jù)。39.PGLitePostgreSQL構(gòu)建為WASM,允許你完全在web瀏覽器中運(yùn)行它。你可以在內(nèi)存中創(chuàng)建一個(gè)臨時(shí)數(shù)據(jù)庫(kù),或顯著發(fā)展。借助Electric和PGLite,你現(xiàn)在可以基于PostgreSQL構(gòu)建響應(yīng)式的本地優(yōu)先應(yīng)用。40.SpinKubeSpinKube是一個(gè)在Kubernetes上運(yùn)行的開(kāi)源無(wú)服務(wù)器(serverless)WebAssembly運(yùn)行時(shí)。雖然Kubernetes提供了強(qiáng)大的自動(dòng)擴(kuò)展能力,但容器的冷啟動(dòng)時(shí)間仍然可能需要預(yù)先配置以應(yīng)對(duì)高峰負(fù)載。我們認(rèn)為,WebAssembly的毫秒級(jí)啟動(dòng)時(shí)間為按需工作負(fù)載提供了更加動(dòng)態(tài)和靈活的無(wú)服務(wù)器(serverless)解決方案。自從我們上次討論Spin以來(lái),WebAssembly生態(tài)系統(tǒng)已經(jīng)取得了顯著的進(jìn)展。我們很高興推薦SpinKube這一平臺(tái),它簡(jiǎn)化了在Kubernetes上基于WebAssembly工作負(fù)載的開(kāi)發(fā)和部署過(guò)程。41.UnblockedUnblocked提供軟件開(kāi)發(fā)生命周期(SDLC)資產(chǎn)和工件的發(fā)現(xiàn)功能。它與常見(jiàn)的應(yīng)用程序生命周期管理(ALM)和協(xié)作工具集成,幫助團(tuán)隊(duì)理解代碼庫(kù)及相關(guān)資源。通過(guò)提供代碼的即時(shí)相關(guān)上下文,Unblocked改善了代碼理解,使導(dǎo)航和理解復(fù)雜系統(tǒng)變得更加容易。工程團(tuán)隊(duì)可以安全合規(guī)地訪(fǎng)問(wèn)與其工作相關(guān)的討論、資產(chǎn)和文檔。Unblocked還捕捉并分享了通常掌握在經(jīng)驗(yàn)豐富團(tuán)隊(duì)成員手中的本地知識(shí),使寶貴的見(jiàn)解能夠?yàn)樗腥嗽L(fǎng)問(wèn),不論經(jīng)驗(yàn)水平如何。?Thoughtworks,Inc.AllRightsReserved.25工具42.Bruno43.K9s58605958605946.Wiz6162637464654764654766494847.AWSControlTower6649485051675248.CCMenu50516752686949.ClickHouse6869535470 4535470 4243557151.Difftastic7252.LinearB7244564546577344564546577354.Snapcraft構(gòu)建工具56.TypeScriptOpenAPI●沒(méi)有變化●沒(méi)有變化58.AstronomerCosmos59.ColPali60.Cursor61.DataMeshManager62.GitButler63.JetBrainsAIAssistant64.Mise65.Mockoon66.Raycast68.Rspack70.軟件工程代理Softwareengineeringagents72.Warp73.Zed74.CocoaPods工具工具42.Bruno采納可作為CLItool。它還提供了官方的VSCode擴(kuò)展,并計(jì)劃支持其他IDE。Bruno已成為多支Thoughtworks團(tuán)隊(duì)的默認(rèn)選擇,但我們也建議團(tuán)隊(duì)在VPN和代理環(huán)境下工43.K9s采納不太熟悉的開(kāi)發(fā)者使用。K9s最初主要專(zhuān)注于DevOps團(tuán)隊(duì),所以這次改進(jìn)可以看作是它一次重大的改進(jìn)。44.SOPS采納45.視覺(jué)回歸測(cè)試工具采納通過(guò)配置選擇器和視口來(lái)定位頁(yè)面上的特定元素進(jìn)行視覺(jué)測(cè)試,避免了這個(gè)問(wèn)題AI和機(jī)器學(xué)習(xí)最新進(jìn)展的優(yōu)勢(shì)?,F(xiàn)在,幾個(gè)商業(yè)工具,如Applitools和Percy,聲稱(chēng)在其視覺(jué)回歸測(cè)試中使?Thoughtworks,Inc.AllRightsReserved.27工具工具用了AI。我們的一支團(tuán)隊(duì)廣泛使用了ApplitoolsEyes,并對(duì)結(jié)果感到滿(mǎn)意。盡管視覺(jué)回歸測(cè)試不能替代編寫(xiě)良好的端到端功能測(cè)試,但它們是測(cè)試工具箱中的一個(gè)寶貴補(bǔ)充。我們正積極推動(dòng)它們的采46.Wiz采納Wiz已成為我們多個(gè)項(xiàng)目中的云安全平臺(tái)首選。團(tuán)隊(duì)和領(lǐng)導(dǎo)團(tuán)隊(duì)提供的強(qiáng)大報(bào)告功能。該分析幫助我們了解漏洞如何影響特定服務(wù),從而47.AWSControlTower建新基礎(chǔ)設(shè)施時(shí)被應(yīng)用和驗(yàn)證,消除了后續(xù)進(jìn)行手動(dòng)合規(guī)檢查的需求。AWSControlTowerAccountFactoryforTerraform(AFT)自我們上次使用以來(lái)不斷發(fā)展,現(xiàn)在已在更多的設(shè)施即代碼流水線(xiàn)來(lái)創(chuàng)建ControlTower賬戶(hù)。我們喜歡AFT的定制化能力,它可以通過(guò)發(fā)送webhooks或采取特定操作,安全地與外部工具GitHubActions集成。我們的團(tuán)隊(duì)報(bào)告說(shuō)使用AWSControlTower管理賬戶(hù)效果很好,但我也希望AWS能接受社48.CCMenu屏幕儀表盤(pán)可以讓人一目了然地獲取這些信息。隨著遠(yuǎn)程工作成為常態(tài),團(tuán)隊(duì)需要一種適用于開(kāi)發(fā)者個(gè)體工作站的解決方案。在Mac上,CCMenu就是一款這樣的工具,這是一個(gè)由Thoughtworks員工編寫(xiě)的小應(yīng)用程序。最初它是CruiseControl的一部分,適用于所有可以提供cctray格式信息的服務(wù)器,包括Jenkins和TeamCity。最近的重寫(xiě)增加了對(duì)GitHubActions的支持,并為更深入集成更多CI服務(wù)器和?Thoughtworks,Inc.AllRightsReserved.28工具工具49.ClickHouse目啟動(dòng),之后發(fā)展成為一個(gè)高性能且線(xiàn)性可擴(kuò)展的分析數(shù)據(jù)庫(kù)。其高效的查詢(xún)處理引擎結(jié)合在不進(jìn)行預(yù)聚合的情況下運(yùn)行交互式查詢(xún)。ClickHouse也是OpenTelemetry數(shù)據(jù)的優(yōu)秀存儲(chǔ)選擇。它與Jaeger的集成允許您存儲(chǔ)大量的追蹤數(shù)據(jù)并高效分析。50.Devbox盡管開(kāi)發(fā)工具不斷進(jìn)步,保持一致的本地開(kāi)發(fā)環(huán)境仍然是許多團(tuán)隊(duì)面臨的需要運(yùn)行命令或自定義腳本,而這些操作可能會(huì)在不同機(jī)器上不可預(yù)測(cè)地失敗,導(dǎo)致環(huán)境不個(gè)問(wèn)題,我們的團(tuán)隊(duì)越來(lái)越依賴(lài)Devbox。Devbox是一個(gè)命令行工具,提供了簡(jiǎn)潔的界面,用于創(chuàng)建可復(fù)現(xiàn)的、按項(xiàng)目定義的本地開(kāi)發(fā)環(huán)境,它利用了Nix包管理器,但不使用虛擬機(jī)或容器。Devbox極大地簡(jiǎn)化了團(tuán)的環(huán)境。Devbox支持shell鉤子、自定義腳本以及生成devcontainer.json,以便與VSCode集成。51.DifftasticDifftastic是一種用于在語(yǔ)法感知的基礎(chǔ)上高亮顯示代碼文件差異的工具,和傳統(tǒng)的文本diff工具(例如經(jīng)典的Unixdiff命令)有很大不同。例如,在像Java或TypeScript這樣的以分號(hào)分隔的語(yǔ)言中,Difftastic會(huì)忽略為了分割長(zhǎng)語(yǔ)句而插入的換行符。該工具僅突出顯示對(duì)程序語(yǔ)法有影響的更改。它首先將文件解析為抽象語(yǔ)法樹(shù),然后使用Dijkstra算法計(jì)算它們之間的距離。我們發(fā)現(xiàn),Difftastic在審查大型代碼庫(kù)時(shí)特別有用。只要編程語(yǔ)言有解析器,它就可以用于任何編程語(yǔ)言,并且開(kāi)箱即用地支持50多種編程語(yǔ)言以及CSS、HTML等52.LinearBLinearB是一個(gè)軟件工程智能平臺(tái),為我們的工程領(lǐng)導(dǎo)者提供數(shù)據(jù)驅(qū)動(dòng)的洞察,以支持持續(xù)改進(jìn)。它對(duì)關(guān)鍵領(lǐng)域進(jìn)行對(duì)齊,如基準(zhǔn)測(cè)試、工作流自動(dòng)化以及增強(qiáng)開(kāi)發(fā)者體驗(yàn)和生產(chǎn)力的針對(duì)性投資。我們對(duì)LinearB的體驗(yàn)表明,它能夠在工程團(tuán)隊(duì)中培育改進(jìn)和效率的文化。我們的團(tuán)隊(duì)使改進(jìn)的領(lǐng)域,并實(shí)施基于證據(jù)的行動(dòng)。這些功能與LinearB的核心價(jià)值主張高度一致:基準(zhǔn)測(cè)試、自動(dòng)化收集指標(biāo),并實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)的改進(jìn)。LinearB集成了源代碼、應(yīng)用生命周期、CI/CD和溝通工具,使用預(yù)配置和自?Thoughtworks,Inc.AllRightsReserved.29工具工具我們特別欣賞LinearB對(duì)這些特定指標(biāo)的強(qiáng)烈關(guān)注,以及其衡量軟件交率至關(guān)重要。歷史上,團(tuán)隊(duì)在收集交付核心四指標(biāo)特定指標(biāo)時(shí)會(huì)面臨挑戰(zhàn),往動(dòng)過(guò)程。LinearB持續(xù)提供一個(gè)引人注目的解決方案,能夠自動(dòng)跟蹤這些指標(biāo),并提供實(shí)時(shí)數(shù)據(jù),以支持圍繞53.pgvectorpgvector是一個(gè)開(kāi)源的PostgreSQL擴(kuò)展,用于進(jìn)行向量相似性搜索,允許將向量與結(jié)構(gòu)化數(shù)據(jù)一起存儲(chǔ)在單一且成熟的數(shù)據(jù)庫(kù)中。雖然它缺少一些專(zhuān)用向量數(shù)據(jù)庫(kù)的高級(jí)功能,但它受益于PostgreSQL的ACID合規(guī)索嵌入向量以進(jìn)行相似性匹配,pgvector有效地解決了這一需求。pgvector在生產(chǎn)環(huán)境中的使用日益增多,尤其是在團(tuán)隊(duì)已經(jīng)使用云提供商管理的PostgreSQL時(shí),它表現(xiàn)出能夠滿(mǎn)足常見(jiàn)向量搜索54.Snapcraft構(gòu)建工具Snapcraft是一個(gè)開(kāi)源的命令行工具,用于在Ubuntu、其他Linux發(fā)行版和macOS上構(gòu)建和打包名為snaps的自包含應(yīng)用程序。Snaps可以在包括Linux機(jī)器、虛擬環(huán)境和車(chē)輛車(chē)載計(jì)算機(jī)系統(tǒng)在內(nèi)的硬件平臺(tái)上輕松部署和維護(hù)。雖然Snapcraft提供了一個(gè)公共的應(yīng)用商店用于發(fā)布snaps,但我們的團(tuán)隊(duì)使用這個(gè)構(gòu)建工具將55.SpinnakerSpinnaker是由Netflix創(chuàng)建的一個(gè)開(kāi)源持續(xù)交付平臺(tái)。它將集群管理和云端烘焙鏡像的部署作為核心功能但這一問(wèn)題已通過(guò)添加spinCLI得到解決。盡管我們不建議在簡(jiǎn)單的持續(xù)交付場(chǎng)景中使用Spinnaker,但在復(fù)雜的情況和同樣復(fù)雜的部署管道中,它已經(jīng)成為許?Thoughtworks,Inc.AllRightsReserved.30工具工具56.TypeScriptOpenAPITypeScriptOpenAPI(或稱(chēng)tsoa)是Swagger生成OpenAPI規(guī)范的一個(gè)替代方案,用于從代碼中直接生成注解或裝飾器,而不像使用OpenAPI工具時(shí)需要復(fù)雜的文且支持為Express、Hapi和Koa生成路由。如果你在使用TypeScript編寫(xiě)API,值得看看這個(gè)項(xiàng)目。57.Unleash盡管我們?nèi)匀煌扑]使用最簡(jiǎn)特性開(kāi)關(guān),但隨著團(tuán)隊(duì)的擴(kuò)展和開(kāi)發(fā)速度的加快,管理手工制作的開(kāi)關(guān)變得更加以自托管。Unleash提供了多個(gè)語(yǔ)言的SDK,擁有良好的開(kāi)發(fā)者體驗(yàn)和友好的管理界面。盡管目前還沒(méi)有對(duì)OpenFeature規(guī)范的官方支持,但你可以找到由社區(qū)維護(hù)的Go和Javaproviders。Unleash既可以用于簡(jiǎn)單特性開(kāi)關(guān),也支持分組和漸進(jìn)式發(fā)布,使其成為適合大規(guī)58.AstronomerCosmosAstronomerCosmos是一個(gè)為Airflow設(shè)計(jì)的插件,旨在為dbtcore工作流提供更原生的支持。安裝該插件后,當(dāng)使用DbtDag包裝dbt工作流時(shí),它將dbt節(jié)點(diǎn)轉(zhuǎn)換為Airflow任務(wù)/任務(wù)組,使工程師能夠直接在AirflowUI中可視化dbt依賴(lài)圖及其執(zhí)行進(jìn)度。它還支持使用Airflow連接代替dbt配置文件,從而可能減少配置擴(kuò)散。我們正在試驗(yàn)該工具,探索它在Airflow中與dbt更無(wú)縫集成的潛力。59.ColPali文本和視覺(jué)內(nèi)容。這種整體方法不僅提高了文檔檢索的效果,還增強(qiáng)了對(duì)為何檢索到特定?Thoughtworks,Inc.AllRightsReserved.31工具工具60.CursorAI輔助編程工具的競(jìng)賽仍在繼續(xù),而其中最引人注目的一個(gè)就是Cursor。Cursor是一個(gè)以AI為核心的代碼到它,但顯然,Cursor近期的持續(xù)改進(jìn)已為其帶來(lái)了質(zhì)的飛躍。在我們的使用中,Cursor展現(xiàn)了基于現(xiàn)有代碼庫(kù)的強(qiáng)大上下文推理能力。盡管其他AI代碼工具如GitHubCopilot已經(jīng)可以圍繞代碼片段進(jìn)行代碼生成或協(xié)作,Cursor的多行和多文件編輯操作讓它脫穎而出。Cursor是基于VSCode代碼庫(kù)分叉開(kāi)發(fā)的,提供了一種符合開(kāi)發(fā)者直覺(jué)的快速且直觀(guān)的交互方式。通過(guò)快捷鍵ctrl/cmd+K和ctrl/cmd+L即可完成強(qiáng)大的操作。Cursor在AI編程工具的競(jìng)賽中引領(lǐng)了新一輪的競(jìng)爭(zhēng),尤其是在開(kāi)發(fā)者交互和代碼庫(kù)理解方面更為突出。61.DataMeshManagerOpenContract倡議規(guī)范數(shù)據(jù)契約,并可以通過(guò)相關(guān)的DataContractCLI集成到構(gòu)建管道中。該應(yīng)用還提供了數(shù)據(jù)目錄,用于發(fā)現(xiàn)和探索數(shù)據(jù)產(chǎn)品及其元數(shù)據(jù),并允許進(jìn)行聯(lián)邦治理,包括定義數(shù)據(jù)質(zhì)量指標(biāo)和管理數(shù)據(jù)質(zhì)量規(guī)則。作為該領(lǐng)域的首批原生工具之一,它不僅僅是試圖將現(xiàn)有平臺(tái)改造為數(shù)據(jù)網(wǎng)格范62.GitButler盡管Git的功能強(qiáng)大且實(shí)用,但其命令行界面在管理多個(gè)分支和提交暫存方面以復(fù)雜性著稱(chēng)。GitButler是一個(gè)Git客戶(hù)端,它提供了圖形界面,旨在簡(jiǎn)化這一過(guò)程。GitButler通過(guò)獨(dú)立于Git跟蹤未提交的文件更改,并將這些更改暫存到虛擬分支中來(lái)實(shí)現(xiàn)這一目標(biāo)。有人可能會(huì)認(rèn)為這是對(duì)不應(yīng)存在的問(wèn)題的與GitHub集成,允許你選擇性地將更改分組為pullrequest,并直接從該工具發(fā)出。GitButler是旨在管理PR63.JetBrainsAIAssistantJetBrainsAIAssistant是一款為所有JetBrainsIDE提供支持的編碼助手,旨在順暢集成以支持代碼補(bǔ)全、測(cè)試生成和風(fēng)格指南遵循。它基于OpenAI和GoogleGemini等模型,因其能夠記住持一致性輸出而脫穎而出。我們的開(kāi)發(fā)人員發(fā)現(xiàn)其測(cè)試生成功能特別有用,并指出它在處理較長(zhǎng)定性問(wèn)題。然而,與一些競(jìng)爭(zhēng)對(duì)手不同,JetBrains沒(méi)有托管自己的模型,這對(duì)于擔(dān)心第三方數(shù)據(jù)處理的客戶(hù)?Thoughtworks,Inc.AllRightsReserved.32工具工具64.Mise提供一個(gè)工具來(lái)替代nvm、pyenv、pyenv、rbenv、rustup等工具,并且可以作為asdf的直接替代品。Mise是用Rust編寫(xiě)的,以提高shell交互的速度;與使用基于shell的shim的asdf不同,mise預(yù)先修改PATH環(huán)境變量,從而直接調(diào)用工具運(yùn)行時(shí)。這也是mise比asdf更快的部分原因。對(duì)于那些已經(jīng)熟悉asdf的開(kāi)發(fā)人員,mise提供了相同的功能,但有一些關(guān)鍵區(qū)別。由于是用Rust編寫(xiě)的,mise更快,并且擁有一些asdf所沒(méi)有的功能,例如能夠同時(shí)安裝同一工具的多個(gè)版本,以及更寬容的命令,包括模糊匹配。它集成的任務(wù)運(yùn)行器,方便執(zhí)行代碼檢查、測(cè)試、構(gòu)建、服務(wù)器和個(gè)工具來(lái)管理開(kāi)發(fā)環(huán)境,并且對(duì)其他工具有時(shí)笨拙的語(yǔ)法感到不滿(mǎn),那么mise絕對(duì)值得一試。65.Mockoon模擬數(shù)據(jù)集。Mockoon兼容OpenAPI,允許生成不同的場(chǎng)景,能夠在本地進(jìn)行測(cè)試并與開(kāi)發(fā)流水線(xiàn)集成。你路由或端點(diǎn),并將其他請(qǐng)求轉(zhuǎn)發(fā)到實(shí)際的服務(wù)器。部分模擬在某些場(chǎng)景致不必要的復(fù)雜性。除此之外,Mockoon仍然是快速搭建模擬API、改進(jìn)和自動(dòng)化開(kāi)發(fā)流程的寶貴工具。66.RaycastRaycast是一款適用于macOS的啟動(dòng)器,允許你任務(wù)。我們的團(tuán)隊(duì)認(rèn)為其針對(duì)開(kāi)發(fā)者的開(kāi)箱即用功能非常有價(jià)值和服務(wù),如VSCode、Slack、Jira和Google等,進(jìn)行交互。Raycast專(zhuān)為提高生產(chǎn)力設(shè)計(jì),減少上下文切換,是希望簡(jiǎn)化日常任務(wù)的用戶(hù)的有用工具。專(zhuān)業(yè)版用戶(hù)還可以使67.ReadySetReadySet是一個(gè)適用于MySQL和PostgreSQL的緩存層。與依賴(lài)手動(dòng)失效的傳統(tǒng)緩存解決方案不同,ReadySet利用數(shù)據(jù)庫(kù)復(fù)制流來(lái)增量更新其緩存。通過(guò)部分視圖物化,Ready的尾延遲。ReadySet與MySQL和PostgreSQL在協(xié)議上兼容,因此可以將其部署在數(shù)據(jù)庫(kù)前,以橫向擴(kuò)展?Thoughtworks,Inc.AllRightsReserved.33工具工具68.Rspack者是Rspack,經(jīng)過(guò)1.5年的開(kāi)發(fā),剛剛發(fā)布Webpack生態(tài)系統(tǒng)中的插件和加載器。這在遷移復(fù)雜的Webpack設(shè)置時(shí),相較于Vite可能具有們團(tuán)隊(duì)遷移到Vite和Rspack等新工具的主要原因是開(kāi)發(fā)者體驗(yàn),特別是速度。沒(méi)有什么在許多情況下甚至比Vite更快。69.語(yǔ)義路由在構(gòu)建基于LLM的應(yīng)用時(shí),將請(qǐng)求路由到特定代理或觸發(fā)某一流程之前,確定用戶(hù)意圖是至關(guān)重要的。SemanticRouter充當(dāng)LLM和代理之間的快速?zèng)Q策層,基于語(yǔ)義意義進(jìn)行高效且可靠的請(qǐng)求路性使其在需要避免LLM帶來(lái)的額外開(kāi)銷(xiāo),快速實(shí)時(shí)決策的環(huán)境中成為強(qiáng)有力的競(jìng)爭(zhēng)者。70.軟件工程代理(softwareengineeringagents)目前在生成式AI(GenAI)領(lǐng)域最熱門(mén)的話(huà)題之一是軟件工程代理(s這些編程輔助工具不僅僅是在代碼片段上幫助工程師,它們的目標(biāo)是擴(kuò)大解決問(wèn)題的范圍,理想情況下能碼更改,甚至創(chuàng)建供人類(lèi)審查的pullrequest。這是提升AI編程輔助工具影響力的下一步邏輯,但想要實(shí)現(xiàn)覆蓋廣泛編碼任務(wù)的通用代理的目標(biāo)仍然非常雄心勃勃,目前的工具尚未令人認(rèn)為對(duì)于范圍較小、較簡(jiǎn)單的任務(wù),這種工具將很快起到作用,幫助在發(fā)布和推廣測(cè)試版代理的工具包括GitHubCopilotWorkspace、qodoflow、Tabnine’s的JIRA代理,以及AmazonQDeveloper。SWEBench基準(zhǔn)測(cè)試列出了更多此類(lèi)工具,但我們建71.uv提到過(guò)Ruff,這是一個(gè)用Rust編寫(xiě)的Pythonlinter。在本期報(bào)告中,我們?cè)u(píng)估了uv,這是一個(gè)用Rust編寫(xiě)?Thoughtworks,Inc.AllRightsReserved.34工具工具性能,對(duì)于一個(gè)包管理系統(tǒng)來(lái)說(shuō),更重要的是生態(tài)系統(tǒng)、成熟的社區(qū)和長(zhǎng)期的的反饋表明,這一小幅速度提升可能會(huì)極大改善反饋周期和整體開(kāi)發(fā)者體驗(yàn)――我們通常手動(dòng)使CI/CD緩存變得非常復(fù)雜,以實(shí)現(xiàn)這微小的性能提升。uv簡(jiǎn)化了我們的Python環(huán)境管理??紤]到在Python開(kāi)發(fā)的包和環(huán)境管理方面仍有很大的改進(jìn)空間,我們認(rèn)為uv是一個(gè)值得評(píng)估的選擇。72.WarpWarp是一款適用于macOS和Linux的終端工具,它將命令輸出分割為塊以提高可讀性。Warp提供了動(dòng)的能力,如智能命令建議和自然語(yǔ)言處理。它還包括Warp還可以輕松集成Starship,一個(gè)靈活的跨終端提示工具,允許你自定義終端體驗(yàn),并檢索有關(guān)正在運(yùn)行的進(jìn)程、所使用工具的特定版本、Git詳細(xì)信息或當(dāng)前Git用戶(hù)等信息。73.Zed在Atom文本編輯器項(xiàng)目關(guān)閉后,其創(chuàng)建者構(gòu)建了一個(gè)名為Zed的新編輯器。Zed使用Rust編寫(xiě),并經(jīng)過(guò)優(yōu)內(nèi)置終端以及多緩沖編輯等。通過(guò)與多個(gè)LLM提供商的集成,Zed還提供AI輔助編碼功能。作為結(jié)對(duì)編程的熱衷者,我們對(duì)Zed內(nèi)置的遠(yuǎn)程協(xié)作特性很感興趣。開(kāi)發(fā)者可以通過(guò)他們的GitHubID找到彼此,然后實(shí)時(shí)協(xié)作于同一工作區(qū)。雖然現(xiàn)在還無(wú)法判斷開(kāi)發(fā)團(tuán)隊(duì)是否能夠并愿意擺脫VisualStudioCode生態(tài)系統(tǒng)的吸引,但Zed是一個(gè)值得探索的替代方案。74.CocoaPodsCocoaPods一直是Swift和Objective-CCocoa項(xiàng)目中廣受歡迎的依賴(lài)管理工具。然而,CocoaPods團(tuán)隊(duì)宣布,該項(xiàng)目在作為iOS和macOS開(kāi)發(fā)者關(guān)鍵工具超過(guò)十年后,進(jìn)入了維護(hù)模式。盡管工具和其資源仍續(xù)可用,但將不再進(jìn)行主動(dòng)開(kāi)發(fā)。其鼓勵(lì)開(kāi)發(fā)者們轉(zhuǎn)向SwiftPackageManager,它與Xcode原生集成,并?Thoughtworks,Inc.AllRightsReserved.359075.dbt90768976.Testcontainers76897588104758886103878583861038785838284100828410079998079.DatabricksAsset799980779880.Instructor779878979678979693959482.LiteLLM939594919283.LlamaIndex919284.LLMGuardrails85.Medusa88.seL4●沒(méi)有變化90.vLLM91.ApacheXTable?92.dbldatagen93.DeepEval95.FlutterforWeb96.kotaemon98.LLMLingua99.MicrosoftAutogen102.Score103.shadcn―75.dbt采納我們?nèi)匀徽J(rèn)為dbt是在ELT數(shù)據(jù)管道中實(shí)施數(shù)據(jù)轉(zhuǎn)換的強(qiáng)大且合理的選擇。我們喜歡它能夠引入工程上的嚴(yán)謹(jǐn)性,并支持模塊化、可測(cè)試性和SQL轉(zhuǎn)換的據(jù)庫(kù),包括Snowflake、BigQuery、Redshift、Databricks和Postgres,并且擁有健康的社區(qū)包生態(tài)系統(tǒng)。最近在dbtcore1.8+和全新的dbtCloud無(wú)版本體驗(yàn)中引入的原生單元測(cè)試支持,進(jìn)一步鞏固了其在我們工具箱中的地位。我們的團(tuán)隊(duì)很欣賞這個(gè)新的單元測(cè)試功能,它使他們能夠輕松定義靜態(tài)測(cè)試期,并測(cè)試管道的增量和完全刷新模式。在許多情況下,這使得團(tuán)隊(duì)能76.Testcontainers采納在我們的經(jīng)驗(yàn)中,Testcontainers是創(chuàng)建可靠測(cè)試環(huán)境的一個(gè)有效默認(rèn)選項(xiàng)。它是一個(gè)移植到多種語(yǔ)言的庫(kù),可以將常見(jiàn)的測(cè)試依賴(lài)項(xiàng)進(jìn)行Docker化――包括各種類(lèi)型的數(shù)據(jù)庫(kù)、隊(duì)列技術(shù)、云服務(wù)以及像網(wǎng)頁(yè)瀏覽器這樣的UI測(cè)試依賴(lài)項(xiàng),并能夠在需要時(shí)運(yùn)行自定義Dockerfile。最近發(fā)布了一個(gè)桌面版本,允許對(duì)測(cè)試會(huì)話(huà)進(jìn)行可視化管理,并能夠處理更復(fù)雜的場(chǎng)景,這對(duì)我們的CARLA是一個(gè)開(kāi)源的自動(dòng)駕駛模擬器,它可用于在生產(chǎn)部署之前測(cè)試自動(dòng)駕駛系統(tǒng)。它在創(chuàng)建和重用車(chē)輛、地形、人類(lèi)、動(dòng)物等3D模型上具有很強(qiáng)的靈活性,這使得它可以用來(lái)模擬或遇到迎面而來(lái)的特定速度的車(chē)輛。那些待測(cè)試的自動(dòng)駕駛系統(tǒng)必須能夠識(shí)別這些動(dòng)態(tài)參與?Thoughtworks,Inc.AllRightsReserved.3779.DatabricksAssetBundlesDatabricksAssetBundles(DABs于2024年4月實(shí)現(xiàn)基本可用,正逐漸成為打包和部署Databricks資產(chǎn)的首選工具,幫助我們的數(shù)據(jù)團(tuán)隊(duì)?wèi)?yīng)用軟件工程實(shí)踐。DABs支持將工作流和任務(wù)的配置以及要在中執(zhí)行的代碼打包成一個(gè)bundle,并通過(guò)CI/CD管道部署到多個(gè)環(huán)境工程工作流中的關(guān)鍵部分。盡管DABs包含了針對(duì)notebooks的模板,并支持將notebooks部署到生產(chǎn)環(huán)境中,我們并不推薦生產(chǎn)化notebooks,而是鼓勵(lì)有意地編寫(xiě)符合生產(chǎn)標(biāo)準(zhǔn)的代碼80.Instructor執(zhí)行。Instructor是一個(gè)可以幫助我們請(qǐng)求從LLMs獲取結(jié)構(gòu)化輸出的庫(kù)。您可以定義預(yù)期的輸出結(jié)構(gòu),并在LLM未返回您要求的結(jié)構(gòu)時(shí)配置重試。由于與LLM進(jìn)行交互時(shí),最佳的終端用戶(hù)體驗(yàn)往往是將結(jié)果流式傳輸給他們,而不是等待完整響應(yīng),Instructor還可以處理從流中解析部分結(jié)構(gòu)的任務(wù)。81.KedroKedro作為MLOps工具有了顯著的改善,并始終保持對(duì)模塊化和工程非常喜歡的。突出其模塊化的一步是推出了獨(dú)立的kedro-datasets包,該包將代碼與數(shù)據(jù)解耦。Kedro在其命令行接口、起始項(xiàng)目模板和遙測(cè)功能方面進(jìn)行了增強(qiáng)。此外,最種提供方和模型,并為文本生成、嵌入和圖像生成提供統(tǒng)一的接口。L速率限制和負(fù)載均衡,從而確保不同LLM的一致操作。我們的團(tuán)隊(duì)使用L模型快速演變的今天尤為必要。然而,值得注意的是,不同模型在相同提示下的響應(yīng)會(huì)有所不同,這表明僅一致的調(diào)用方式可能不足以?xún)?yōu)化生成性能。此外,每個(gè)模型對(duì)附加功能的實(shí)現(xiàn)方式也各不相同,單一接口可能無(wú)?Thoughtworks,Inc.AllRightsReserved.3883.LlamaIndex檔攝取,索引文檔嵌入,并根據(jù)用戶(hù)輸入查詢(xún)這些嵌入。使用LlamaHub,您可以擴(kuò)展或自定義LlamaIndex84.LLMGuardrailsLLMGuardrails是一套用于防止大語(yǔ)言模型(LLMs)生成有害、使人誤解或不相關(guān)內(nèi)容的指南、政策或過(guò)濾來(lái)作為安全網(wǎng),確保內(nèi)容的處理和生成在可控范圍內(nèi)。在這一領(lǐng)域中,諸如NeMoGuardrails、GuardrailsAI和AporiaGuardrails等框架已經(jīng)逐漸嶄露頭角,并被我們的團(tuán)隊(duì)認(rèn)為非常有用。我們建85.Medusa根據(jù)我們的經(jīng)驗(yàn),大多數(shù)用于構(gòu)建購(gòu)物網(wǎng)站的電子商務(wù)解決方案通常會(huì)陷入80/20陷阱,即我們可以出80%的需求,但對(duì)于剩下的20%卻無(wú)能為力。Medusa提供了一個(gè)良好的平衡。它是一個(gè)高度可定制的開(kāi)源商業(yè)平臺(tái),允許開(kāi)發(fā)人員創(chuàng)建獨(dú)特且量身定制的購(gòu)物體驗(yàn),可以自我托管或運(yùn)行在Medusa的平臺(tái)上。Medusa基于Next.js和PostgreSQL構(gòu)建,通過(guò)提供從基本購(gòu)物車(chē)和訂單管理到高級(jí)功能(如禮品卡模塊和86.PklPkl是一種開(kāi)源的配置語(yǔ)言及工具,最初由蘋(píng)果公司內(nèi)部使用而創(chuàng)建。它的主要特點(diǎn)是其類(lèi)型和驗(yàn)證系統(tǒng),能改應(yīng)用到生產(chǎn)環(huán)境之前進(jìn)行驗(yàn)證。它可以生成JSON、PLIST、YAML和.properties文件,并且具有包括代碼?Thoughtworks,Inc.AllRightsReserved.3988.seL4少數(shù)公司壟斷了這一領(lǐng)域,因此像seL4這樣的開(kāi)源解決方案顯得尤為珍貴。seL4是一個(gè)89.SetFit當(dāng)前大多數(shù)基于AI的工具都是生成式的――它們生成文本和圖像,使用生成式預(yù)訓(xùn)練模型(GPTs)來(lái)完成這些任務(wù)。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論