语言 & 框架
采纳
-
83. OpenTelemetry
正迅速成为可观察性领域的行业标准。随着 规范的发布,行业内有了一个标准化的方式来处理追踪 (traces)、指标 (metrics) 和日志 (logs)。这减少了在监控分布式解决方案和满足互操作性需求时的多重集成或主要代码重构的需要。随着 OpenTelemetry 扩展对日志和性能分析的支持,OTLP 为所有遥测数据提供了一个一致的传输格式,简化了应用的仪表化过程,使全栈可观察性对于微服务架构更加易于实现且具有可扩展性。OTLP 已被诸如 、 和 等供应商采纳,帮助公司构建灵活的、与供应商无关的可观察性技术栈,避免被锁定在专有解决方案中。OTLP 支持 gzip 和 zstd 压缩,大幅减少遥测数据的大小并降低带宽使用——这对于处理高遥测数据量的环境尤为关键。为了支持长期发展,OTLP 确保 OpenTelemetry 保持强大且面向未来的标准,巩固了其作为遥测传输事实标准的地位。
试验
-
85. Effect
是一个强大的 TypeScript 库,用于构建复杂的同步和异步程序。在 Web 应用开发中,常常需要为异步处理、并发、状态管理和错误处理等任务编写大量样板代码。而 Effect-TS 通过采用函数式编程的方法简化了这些流程。借助 TypeScript 的类型系统,Effect 能够在编译时捕获难以检测的问题。我们的团队曾使用过 进行函数式编程,但发现 Effect-TS 提供的抽象更贴近日常任务的需求,同时使代码更易于组合和测试。尽管传统方法如
Promise/try-catch
或async/await
也能处理类似场景,但在使用 Effect 之后,我们的团队发现没有理由回到传统方法。 -
86. Hasura GraphQL engine
-
87. LangGraph
是一款面向基于 LLM 的多 agent 应用构建的编排(翱谤肠丑别蝉迟谤补迟颈辞苍)框架。与抽象程度较高的 LangChain 相比,它提供了更底层的节点(Nodes)和边(Edges)等基本原语,允许开发者精细地控制 agent 工作流、记忆管理与状态持久化。这种基于图的设计使工作流更加可控且易于定制,使得在生产级应用中的调试、扩展和维护变得更加容易。尽管其学习曲线较陡,但 LangGraph 凭借其轻量化与模块化设计,在开发 agent 应用时展现出了强大的灵活性和扩展性。
-
88. MarkItDown
能将多种格式(PDF、HTML、PowerPoint、Word)转换为 Markdown,从而增强文本的可读性和上下文保留。由于 LLM 可以从(如标题和章节)中获取上下文,Markdown 能够很好地保留结构以提升理解能力。在基于 RAG 的应用中,我们的团队使用 MarkItDown 将文档预处理为 Markdown 格式,确保逻辑标记(如标题、子章节)保持完整。在生成嵌入之前,结构感知的分块方法帮助保留了完整的章节上下文,从而提升了查询响应的清晰度,尤其是对于复杂文档而言。Markdown 被广泛用于文档编写,而 MarkItDown 的 CLI 工具也因此成为一个极具价值的开发者生产力工具。
-
90. Prisma ORM
是一个开源的数据库工具包,帮助 Node.js 和 Typescript 应用简化应用数据库操作。它提供了一种现代化的、类型安全的数据库访问方式,能够自动化数据库模式迁移,并提供直观的查询 API。与传统 ORM 不同,Prisma ORM 使用纯 JavaScript 对象定义数据库类型,而无需依赖装饰器或类。我们对 Prisma ORM 的使用体验非常积极,它不仅更符合 TypeScript 的开发生态,还能很好地融入函数式编程范式中。
评估
-
91. .NET Aspire
旨在简化开发者本地机器上分布式应用的编排工作。Aspire 允许您在本地开发环境中编排多个服务,包括多个 .NET 项目、依赖的数据库和 Docker 容器——所有这些都可以通过一条命令完成。此外,Aspire 为本地开发提供了观察工具,包括日志记录、跟踪和指标仪表板,这些工具与用于预生产或生产环境的工具解耦。这大大改善了开发者在构建、调整和调试任何系统的可观察性方面的开发体验。
-
92. Android XR SDK
Google 和三星与高通合作推出了 Android XR, 这是一款专门为扩展现实(Extended Reality, XR)设计的操作系统。它在未来计划支持智能眼镜以及其他智能设备。大多数的安卓应用无需修改或者只需少量修改即可运行在该系统上,但它的核心理念是从零构建全新的空间应用,或者将现有的应用“空间化”。目前,全新的 被指定为此类项目的首选开发工具。Google 还提供了帮助开发者选择 SDK 内集成的工具与技术。目前,该 SDK 已经推出开发预览版本。
-
93. Browser Use
是一个开源的 Python 库,使基于 LLM 的 AI 代理能够使用网页浏览器并访问 Web 应用。它可以控制浏览器并执行包括页面导航、输入操作和文本提取在内的各种步骤。该库支持多标签页管理,能够在多个 Web 应用之间协调执行操作。在需要 LLM 代理访问网页内容、执行操作并获取结果的场景中,该库非常有用。它支持多种 LLM,并利用 Playwright 来控制浏览器,结合视觉理解与 HTML 结构提取,以优化 Web 交互体验。该库在多代理场景中正逐渐受到关注,使代理能够协作完成涉及 Web 交互的复杂工作流。
-
94. CrewAI
是一个专为构建和管理 AI 代理而设计的平台,它能让多个 AI 代理协同工作,共同完成复杂任务。我们可以将其理解为一群 AI 工作者组成的团队,每个成员都有自己的专长,并能齐心协力以达成共同目标。我们曾经在雷达中的LLM 驱动自主代理中提及过它。除了现有的 Python 开源库以外,CrewAI 现在还推出了公司级的解决方案,使组织可以创建基于代理的应用程序并应用于真实业务场景,在云基础设施上运行,并连接到现有的数据源(如 SharePoint 或者 JIRA)。我们已经多次使用 CrewAI 去应对生产环境中出现的问题,例如自动验证促销码,调查交易失败的原因以及处理客户支持相关的请求。在代理技术快速发展的背景下,我们对 CrewAI 的能力充满信心,因此将其归入“评估”类别。
-
95. ElysiaJs
是一个端到端类型安全的 TypeScript Web 框架,最初主要为 Bun 设计,但也兼容其他的 JavaScript 运行环境。与等替代方案不同(这类方案会强制要求特定的 API 接口结构),ElysiaJS 不强制任何特定的 API 接口结构。这使得开发者可以创建符合行业标准的 API,如 RESTful、JSON: API 或 OpenAPI,同时仍能提供端到端的类型安全。ElysiaJS 在 Bun 运行环境上运行表现极好,在某些基准测试中甚至可与 Java 或 Go Web 框架相媲美。如果你在构建backend-for-frontend (BFF),ElysiaJS 是一个尤其值得考虑的选择。
-
98. GoFr
是一个专为构建 Golang 微服务而设计的框架,通过抽象常见的微服务功能(如日志记录、追踪、指标、配置管理和 Swagger API 文档生成)来简化开发工作。它支持多种数据库,处理数据库迁移,并且能够与 Kafka 和 NATs 等消息代理进行 pub/sub 操作。此外,GoFr 还包括支持定时任务的 cron 作业功能。该框架旨在降低构建和维护微服务的复杂性,让开发者能够将更多精力集中于业务逻辑的编写,而非基础设施的管理。尽管市面上已有许多流行的 Go 库用于构建 Web API,但 GoFr 正在逐步获得关注,非常值得基于 Golang 的微服务开发团队探索和使用。
-
99. Java后量子密码学(Java post-quantum cryptography)
非对称加密——这一保障了多数现代通信安全的核心概念——依赖于数学上难以求解的问题。然而,今天使用的算法中的问题在量子计算机面前将变得容易解决,这推动了替代方案的研究。是其中最被看好的候选技术。尽管与密码学相关的量子计算机仍需多年以后才能面世,对于那些需要长期保证安全的应用来说,后量子密码学已成为一个值得关注的领域。此外还存在一种风险,攻击者可能会记录当前的加密数据并等待量子计算机推出后破解。
Java 后量子密码学 在 中迈出了第一步,该版本预计在 3 月底正式发布。此次更新引入了 和 ,分别实现了一种密钥封装机制以及一套数字签名算法。二者均基于标准并设计为可以抵挡未来可能的量子计算攻击。虽然来自 Open Quantum Safe 项目的已经提供了基于 C 语言的实现并提供了 JNI 封装,但原生 Java 版本实现的出现依旧鼓舞人心。
-
100. Presidio
是一个数据保护 SDK,用于在结构化和非结构化文本中 和 敏感数据。它可以通过命名实体识别(NER)、正则表达式和基于规则的逻辑检测个人身份信息(PII),如信用卡号、姓名和位置等。Presidio 支持 PII 实体识别和去标识化,使公司能够根据其特定的隐私要求进行调整。尽管 Presidio 能够自动识别敏感信息,但它并非万无一失,可能会遗漏或误识别数据。在依赖其结果时,务必保持谨慎。
-
102. 资源受限应用中使用 Swift
自从 发布以来,这门语言已经超越了 Apple 生态系统的限制,通过对主要操作系统的改进支持,使在 资源受限应用中使用 Swift 变得更加可行。传统上,这一领域主要由 C、C++ 以及近年来的 Rust 占据,因为它们具备低级别的控制、高性能以及符合诸如 MISRA、ISO 26262 和 ASIL 等标准的认证编译器和库。尽管 Rust 已逐步获得类似的认证,但 Swift 尚未开始这一认证过程,这限制了其在安全关键型应用中的使用。
Swift 的日益普及,得益于其在性能与安全特性之间的良好平衡,包括强类型安全和自动引用计数(ARC)内存管理功能。虽然 Rust 的所有权模型提供了更强的内存安全保证,但 Swift 提供了一种不同的权衡方式,这种方式对某些开发者来说更加易于接受。Swift 和 Rust 都基于 LLVM/Clang 编译器后端,这使得一方的技术进步也能惠及另一方。凭借其将代码编译为优化机器码的能力、开源的开发模式以及不断扩展的跨平台支持,Swift 正逐步成为应用范围更广的有力竞争者——远远超越了其最初的 iOS 根基。
-
103. Tamagui
是一个用于高效共享 React Web 和 React Native 样式的库。它提供了一个 ,包含可复用的已样式化和未样式化组件,可以在多个平台上无缝渲染。其可选的 通过将样式化组件转换为网页上的原子化 CSS 和原生视图上的提升样式对象,显著提升了性能。
暂缓
-
105. Node超载
几年前,我们观察到了一种现象,即 Node 超载 :Node.js 经常被用在一些不合理的场景中,甚至在没有考虑其他替代方案的情况下就被选择了。尽管我们理解某些团队倾向于使用单一语言栈——即便要付出一些权衡的代价——但我们仍然倡导 多语言编程(Polyglot Programming) 。当时,我们指出 Node.js 因在 IO 密集型工作负载中的高效性而享有应得的声誉,但也提到其他框架已经赶上,提供了更好的 API 和更优越的整体性能。同时,我们警告说,Node.js 从未适合计算密集型工作负载,这一局限性至今仍然是一个重大的挑战。如今,随着数据密集型工作负载的兴起,我们看到团队在应对这些问题时也面临着越来越大的困难。
无法找到需要的信息?
?
每期技术雷达中的条目都在试图反映我们在过去六个月中的技术洞见,或许你所搜索的内容已经在前几期中出现过。由于我们有太多想要谈论的内容,有时候不得不剔除一些长期没有发生变化的条目。技术雷达来自于我们的主观经验,而非全面的市场分析,所以你可能会找不到自己最在意的技术条目。