DevOps快报第2期:React今年推出19新版,jQuery揭露8年大改版,Go终于解决新手最困扰的回圈问题

Google次世代Web开发工具Project IDX,最近增加了Android与iOS模拟器功能,来涵盖更多开发测试情境。

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物件在处理日期和时间方面存在许多问题,像是时区处理不易,日期计算不一致等。

更多新闻

高效协作程式码编辑器Zed开源并推出协作服务,开发者分享连结就能开始共同编写程式码

@资料来源:iThome整理,2024年2月
责任编辑:王宏仁