2024/1/19~2/20 精選開發相關新聞:開發技術與工具篇
第二期DevOps主要聚焦在開發技術和開發工具的更新,在2024年初有不少開發工具、開發框架和開發語言的更新,老牌jQuery終於出現8年後的大改版,推出了4.0的beta版,2年沒有大改版的React也預告今年會推出下一個重大新版19。Go語言則終於修正了讓許多新手困擾的For迴圈老問題。微軟.NET在第9版也將持續聚焦雲原生、AI支援和效能三大重點來優化,VS Code開始支援語音指令,Visual Studio則要更緊密整合GitHub Copilot,一邊寫程式碼,隔行也能直接輸入Copilot提問。網頁開發者愛用的SQLite也全面改寫了JSON函數,開始支援JSONB格式
#JavaScript #前端開發框架 #React
React計畫今年底前釋出19新版,Instagram用的React編譯器會先開源釋出
經過2年,React社群準備在今年釋出19新版,最近也在React官網上公布了目前正在開發中的新功能,包括了先前處於研究階段的新版React Compiler,開發團隊準備要將這個功能納入到React的正式功能。目前這個編譯器已經用於Instagram的正式環境上,React計畫運用到Meta其他更多服務和產品上,目前正準備釋出第一個React Compiler的開源版本。這個React編譯器可以套用需要的JavaScript規則和React規則更安全地編譯程式碼,這些規則可以用來限制開發者所能做的事,來兼顧程式碼的安全性和效能。有多項新功能進入候選發布通路中,包括了文件後設資料、資產載入、Actions功能。
另外,React也宣布今年將正式推出下一個重要的版本React 19,例如Web Components。React核心開發成員Andrew Clark也透露多項新版的變動和功能,例如useMemo、useCallback和memo會整合到React編譯器中,useContext會改為use(Contect)、<Context.Provider>會改為<Context>等。
#網頁開發 #jQuery #IE瀏覽器棄用
相隔8年,jQuery終於再次大改版推出4.0,更預告5.0將取消IE 11支援
距離上次大改版已經過了8年,知名JavaScript函式庫終於在2024年迎來jQuery 4.0.0 Beta版本,上一次大改版是在2016年發布的3.0正式版。jQuery 4.0.0有許多重大更改,包括取消IE 10以前的支援,並且刪除已棄用的API,以及放棄支援一些過於複雜行為。同時,還新增支援可信類別(Trusted Type),強化安全性防禦跨站腳本(XSS)攻擊。
jQuery 4.0刪除了許多內部函式,或是已經在瀏覽器中具有原生等效功能的函式,諸如jQuery.trim()、jQuery.isArray()與jQuery.isFunction()等13個。還移除了內部使用的陣列方法 如push、sort和splice方法,直接改使用陣列函式,可以讓jQuery更符合現代JavaScript標準和最佳實踐,也讓函式庫更加精簡。
4.0版處理焦點事件的順序也有變化,不再覆蓋瀏覽器原生行為,除了IE之外,所有瀏覽器都會遵循當前W3C規範,順序為blur、focusout、focus和focusin。jQuery.ajax新增對二進位資料FormData的支援。開發者可以在使用jQuery.ajax進行網路請求時,直接傳送表單資料和其他二進位檔案,不需要進行額外的處理和轉換。
jQuery 4.0加入了對可信類別的支援,而這是一個重要的安全性強化功能,另外也改進對內容安全政策(CSP)的支援。開發者也可以使用官方發布的jQuery Migrate外掛工具,辨識程式碼相容性問題。jQuery 4.0提供了精簡版本,藉由移除非同步程式開發機制Deferreds和回呼列表管理功能Callbacks,使體積現在小於20 KB。
不只發布了4.0 beta版,官方還宣布了5.0的開發計畫,從4.0開始分階段,取消對IE的支援,4.0不再支援IE 10以及更早版本,5.0則將進一步取消對IE 11的支援。
#雲原生開發 #AI支援 #.NET框架
.NET 9預覽版來了,雲原生、AI支援和效能是三大改進重點
3個月前,微軟才發布.NET 8,隨即在2月中公布了.NET 9預覽版。.NET 9仍聚聚焦三大發展重點,效能提升、雲原生與AI開發的支援。微軟也同步改進Visual Studio、VS Code和C#開發工具包,要讓.NET開發更為簡單,並且與Azure服務更好地整合,使開發者可以簡單部署.NET應用程式到雲端。
微軟持續從.NET技術堆疊各個層面,來強化.NET 9對雲原生應用基礎架構的改進,例如讓開發者更容易部署應用程式到常見的生產基礎設施和服務,例如Kubernetes環境或是使用託管資料庫和快取服務等。另外,.NET 9也持續改進微軟最新的程式碼編譯技術Native AOT來提高效能。另外,新版也將採用了支援Native AOT編譯的webapiaot模板最佳化Web API應用程式。
對人工智慧開發的支援上,新版將著重於讓開發者更容易使用新的人工智慧技術與OpenAI服務,會提供更多函式庫和文件,協助開發者使用OpenAI服務及其他開源模型,包括本地端與雲端模型的支援。
#新手困擾 #Go語言
Go終於修正老問題, 1.22解決for迴圈變數共享問題
在Go語言1.22新版中,解決了for迴圈中變數共享的問題,在之前的Go版本中,在for迴圈中啟動的goroutine如果直接使用迭代變數,可能會因為變數共享而出現非預期的結果。這是存在多年的老問題,也是Go新手編寫程式的時候常會遇到的陷阱,終於在Go 1.22版被解決了,迭代變數在每次迭代時都能被正確的捕獲,並在goroutine內部使用,減少開發者寫出臭蟲程式碼的可能性。新版增加了整數的範圍迭代支援,這是一個新的語言功能,讓固定次數的迭代操作更加直覺且方便。這兩個變更進一步改善了Go的安全性與易用性。
#RUST語言 #C++互通性
Google捐款100萬美元給Rust基金會,要改善C++與Rust互通性
因為大量Android元件和Google產品使用了Rust語言,最近Google捐了100萬美元給Rust基金會,指名要專門用來改善Rust程式碼與C++程式碼之間的互通性,尤其要用來改善老舊C++程式碼與Rust程式碼的互通。另外,Google也承諾要進一步改善Rust的稽核工具,會將Google許多開源專案用的程式碼稽核工具,發展到Rust語言的程式碼稽核上。
#網頁開發 #SQLite資料庫 #JSONB
網頁開發者愛用的SQLite關鍵更新,3.45新版全面改寫JSON函數支援JSONB格式
知名資料庫SQLite發布最新的3.45版本,JSON SQL函式有重大更新,重寫了所有得JSON函式,並且改用新的內部解析樹格式JSONB,JSONB格式可以序列化並儲存在資料庫中,避免在使用JSON值時,還需要進行不必要的重複解析,因此透過支援JSONB,SQLite在處理JSON資料能夠更高效靈活。
SONB能夠將JSON的解析樹,以BLOB二進位的形式儲存在磁碟上,且可以減少應用程式讀取和更新JSON值的解析和渲染開銷,比起JSON,JSONB使用更小的磁碟空間,在處理速度上更快。支援JSONB,也讓SQLite能更好地與其他二進位JSON格式系統整合。
#語音控制 #軟體開發 #VS Code
用講的也能寫程式,VS Code開始支援Hey Code語音指令
在VS Code的1.86版本有一個重大的功能更新,開發者可以使用Hey Code語音指令,開始與Copilot Chat進行語音對話。該功能隸屬於VS Code的無障礙功能,開始後可以讓VS Code監聽Hey Code語音指令以啟動語音對話。語音辨識只在電腦本地端運算,不會發送至任何伺服器,以確保開發者的隱私安全。可支援多種使用情境,chatInView選項允許開發者從聊天檢視頁面啟動語音聊天,方便地直接進行對話。而quickChat選項讓開發者可以透過快速聊天控制項,迅速與Copilot開始語音聊天,inlineChat則可以在編譯器的程式碼行內開始語音聊天。開發者要使用這項新功能,需要安裝GitHub Copilot Chat與VS Code Speech擴充套件。
#AI輔助軟體開發 #Github Copilot
Visual Studio 17.10更緊密整合GitHub Copilot,能直接在一行行程式碼中與Copilot互動
微軟釋出Visual Studio 2022的17.10版第一個預覽版,更緊密整合最新GitHub Copilot,像是開發者可以使用斜線指令加速工作流程,替常見開發任務具體目標設定斜線指令,像是/explain可代表Explain the code等,讓開發者不需要編寫冗長的問題,就能獲得更精準的答案。此外,開發者可在Visual Studio進行行內聊天,直接於檔案中與Copilot互動並獲得建議,並即時查看差異。
微軟參考社群意見嘗試重新建構自訂體驗,在Visual Studio 17.10引入統一設定功能。從這個新版本開始,提供開發者更多自由和介面,來調整和配置開發環境設定。例如,讓用戶可以在全域層級進行設定,或是在更具體的層級進行自訂,像是特定解決方案和或是資料夾層級,使用戶能夠更細緻地控制不同專案的設定,並可依據每個專案的需求進行調整。另外在17.9版的第三個預覽版則持續強化程式碼搜尋功能,不只擴大了搜尋範圍,也強化文字支援,預設程式碼搜尋功能時啟用精確文字比對,搜尋範圍涵蓋之前所不會有的註解和區域變數,使得程式碼搜尋更加全面且高效。
#Python套件 #Jupyter套件
VS Code兩大AI開發套件小更新,Jupyter擴充套件內建變數檢視器
微軟釋出了VS Code Python與Jupyter擴充套件2月更新,除了預設安裝Python除錯器擴充套件之外,Jupyter擴充套件也內建變數檢視器,在執行和除錯面板中,新增了一個實驗性變數檢視器,該內建變數檢視器可用於查看筆記本核心中的變數,協助開發者在程式碼執行時,監控程式中的變數,對於程式碼除錯特別好用,因為開發者可以即時監控變數的值。 Python語言伺服器擴充功能,是以微軟的Pyright靜態型別檢查器為基礎建置,提供了一系列強化Python程式開發體驗的功能,這次更新也引入新的診斷規則,可以進一步最佳化程式碼品質。
#次世代網頁IDE #行動平臺模擬器
Web開發工具Project IDX新增Android與iOS模擬器,更方便打造跨平臺應用
Google近日更新了次世代Web開發工具Project IDX,將Android與iOS模擬器帶入瀏覽器中,可以讓開發者從工作區進行開發、測試和除錯,多步驟和多平臺流程都被整合到同一個地方,而運用iOS模擬,開發者可以在工作時確認應用程式的布局和行為。目前這些功能還在實驗性階段。
另外也增加了更多的模板,針對Astro、Go、Python/Flask、Qwik、Lit、Preact、Solid.js和Node.js添加新模板,開發者可以使用這些模板,直接開始進行專案開發,減少配置的時間,將更多時間花在創建程式邏輯上。IDX新提供的功能和資源,也讓應用程式建置、測試和部署更方便,可以自動偵測應用程式和服務所需的網路連接埠,並調整防火牆設定准許流量進出,開發者不需要進行額外配置,且用戶不需要在本地端進行安裝,就可以直接在工作區中,立即執行命令列工具、腳本和公用程式。
#測試框架 #容器化測試
微軟釋出全新輕量級MSTest測試框架執行工具,能簡化測試環境還能進行容器化測試
微軟推出用於MSTest測試的輕量級執行工具MSTest Runner,這是一個,可將MSTest測試建置為獨立可移植執行檔的工具,僅一個控制臺應用程式就可託管和執行測試,不再需要諸如vstest.console、dotnet test或Visual Studio等工具,能在效能與儲存資源有限的裝置上,也可以使用生成的控制臺應用程式實際進行測試。除了簡化測試環境之外,MSTest Runner也可以進行容器化測試,在沒有dotnet SDK的Docker容器中,執行針對dotnet應用程式的測試。
#Sudo #Windows #新管理者指令
Windows也有Sudo指令!能在沒有權限的控制臺執行特定管理指令
微軟於Windows 11 Insider Preview Build 26052中,加入適用於Windows的Sudo,允許用戶直接從未提升權限的控制臺執行提升權限指令,不需要事先開啟提升權限控制臺,或是執行繁瑣的操作。如此不只提高了效率,也提升操作安全性,因為使用者可以更精確地控制要使用提升權限執行的指令。目前微軟已經在GitHub開源Sudo for Windows專案。這項新功能提供3種用法,第一是在新視窗中執行的預設選項,在一個新的提升權限視窗中執行指令;第二種是關閉輸入選項,系統會在當前視窗以提升權限執行指令,但是不接受任何輸入,適用於不需要進一步輸入的指令;第三種則是行內(Inline)選項,讓提升權限的指令在當前視窗中運作,並且接受輸入和顯示輸出,類似其他作業系統的Sudo行為。
#網頁開發環境 #JavaScript執行環境
啟動超快的JavaScript執行環境Bun推出Shell工具,可支援三大主流OS
效能超快的JavaScript推出了新功能Bun Shell,解決在JavaScript中執行Shell困難的問題。Bun Shell使用上簡單直覺,具有豐富的功能,可以在Windows、macOS和Linux跨平臺上使用。去年9月正式推出的Bun是一個講求快速JavaScript執行環境與多合一工具包,啟動速度是Node.js的4倍,可用於執行、建置、測試和除錯JavaScript與TypeScript程式。Bun Shell是一種嵌入式語言和直譯器,可以讓用戶直接在JavaScript或TypeScript程式中執行Shell指令,不需要額外的轉換和打包。而且在Bun Shell中,所有模板變數都會自動跳脫(Escape),以增加Shell指令執行的安全性。另外,諸如重新導向、管線命令(Pipe)、環境變數等常見Shell功能,Bun Shell也一應俱全 。
#日期和時間API #JavaScript執行環境
JavaScript執行環境Deno推出1.40,新增好用的日期和時間操作API
以Rust語言寫成的JavaScript執行環境Deno推出1.40版本,加入好用的日期和時間操作Temporal API,同時,開發者也將可以使用最新的裝飾器(Decorator)語法,使程式碼的目的和行為更加明確。Temporal API的出現主要是要解決JavaScript中,與Date物件有關的複雜性,傳統Date物件在處理日期和時間方面存在許多問題,像是時區處理不易,日期計算不一致等。
#平臺工程 #紅帽生態圈
看好企業開發體驗優化需求,紅帽推出企業級開發者平臺入口服務
企業所用的微服務從數十個,增加到上百,甚至上千個時,開發團隊光要熟悉,尋找需要的微服務,就越來越複雜,這正是為何平臺工程開始崛起,越來越多企業想要打造一個內部的開發者入口網站,來減輕開發團隊的認知負擔,看準這股需求,紅帽推出了一項企業級開發者平臺服務Developer Hub。以CNCF開源專案Backstage為基礎,提供一套受支援或是具明確主張的框架(Opinionated Framework),開發者在這個統一且開放的開發平臺上,能夠專注於程式碼編寫,運用軟體範本簡化開發過程,提高生產力並降低治理障礙。
Backstage是一個用於創建開發者入口網站的框架,用戶需要自訂該入口網站,並且整合開發團隊可以取用的工具和擴充套件,但是它本身卻不提供企業級功能,像是舊版本支援、延長生命周期、測試或是錯誤修復。所以,紅帽將Developer Hub與他們自身的生態系深度整合,包括Red Hat OpenShift等,對於使用Red Hat產品的用戶來說,這樣的整合可帶來更流暢的工作流程。另外也提供了集中控制的機制,可作為企業軟體開發集中控制工具,藉由使用擴展套件架構無縫整合各種工具。
針對企業需求,紅帽這項服務還提供了軟體範本和元件目錄,軟體範本可用於創建專案的藍圖,其包含了啟動專案所需的所有設定和結構,以及檢查程式碼錯誤、安全性驗證和可信工作管線等工具,元件目錄則是集中儲存庫,用於管理軟體開發專案中的所有元件、服務和相依項目,強化開發者對專案元件的可存取性和清晰度。
更多新聞
- 高效協作程式碼編輯器Zed開源並推出協作服務,開發者分享連結就能開始共同編寫程式碼
@資料來源:iThome整理,2024年2月
責任編輯:王宏仁
熱門新聞
2024-12-03
2024-11-20
2024-11-15
2024-11-15