语言 & 框架
采纳
-
83. OpenTelemetry
OpenTelemetry 正迅速成为可观察性领域的行业标准。随着 OpenTelemetry 协议 (OTLP) 规范的发布,行业内有了一个标准化的方式来处理追踪 (traces)、指标 (metrics) 和日志 (logs)。这减少了在监控分布式解决方案和满足互操作性需求时的多重集成或主要代码重构的需要。随着 OpenTelemetry 扩展对日志和性能分析的支持,OTLP 为所有遥测数据提供了一个一致的传输格式,简化了应用的仪表化过程,使全栈可观察性对于微服务架构更加易于实现且具有可扩展性。OTLP 已被诸如 Datadog 、New Relic 和 Grafana 等供应商采纳,帮助企业构建灵活的、与供应商无关的可观察性技术栈,避免被锁定在专有解决方案中。OTLP 支持 gzip 和 zstd 压缩,大幅减少遥测数据的大小并降低带宽使用——这对于处理高遥测数据量的环境尤为关键。为了支持长期发展,OTLP 确保 OpenTelemetry 保持强大且面向未来的标准,巩固了其作为遥测传输事实标准的地位。
试验
-
85. Effect
Effect 是一个强大的 TypeScript 库,用于构建复杂的同步和异步程序。在 Web 应用开发中,常常需要为异步处理、并发、状态管理和错误处理等任务编写大量样板代码。而 Effect-TS 通过采用函数式编程的方法简化了这些流程。借助 TypeScript 的类型系统,Effect 能够在编译时捕获难以检测的问题。我们的团队曾使用过 fp-ts 进行函数式编程,但发现 Effect-TS 提供的抽象更贴近日常任务的需求,同时使代码更易于组合和测试。尽管传统方法如
Promise/try-catch
或async/await
也能处理类似场景,但在使用 Effect 之后,我们的团队发现没有理由回到传统方法。 -
86. Hasura GraphQL engine
Hasura GraphQL engine 是一个通用的数据访问层,可简化在不同数据源上构建、运行和管理高质量 API 的过程。它能够为各种数据库(包括 PostgreSQL、MongoDB 和 ClickHouse)及数据源即时生成 GraphQL API,使开发者能够快速且安全地获取所需数据。我们发现,Hasura 在实现 服务端资源聚合 的 GraphQL 应用场景中非常易用,并已将其应用于多个 数据产品项目中。然而,对于其强大的联合查询和统一模式管理功能,我们仍然保持 谨慎态度。值得一提的是,Hasura 最近推出了 PromptQL 功能,允许开发者利用大语言模型(LLM)实现更自然直观的数据交互。
-
87. LangGraph
LangGraph 是一款面向基于 LLM 的多 agent 应用构建的编排(Orchestration)框架。与抽象程度较高的 LangChain 相比,它提供了更底层的节点(Nodes)和边(Edges)等基本原语,允许开发者精细地控制 agent 工作流、记忆管理与状态持久化。这种基于图的设计使工作流更加可控且易于定制,使得在生产级应用中的调试、扩展和维护变得更加容易。尽管其学习曲线较陡,但 LangGraph 凭借其轻量化与模块化设计,在开发 agent 应用时展现出了强大的灵活性和扩展性。
-
88. MarkItDown
MarkItDown 能将多种格式(PDF、HTML、PowerPoint、Word)转换为 Markdown,从而增强文本的可读性和上下文保留。由于 LLM 可以从格式化提示(如标题和章节)中获取上下文,Markdown 能够很好地保留结构以提升理解能力。在基于 RAG 的应用中,我们的团队使用 MarkItDown 将文档预处理为 Markdown 格式,确保逻辑标记(如标题、子章节)保持完整。在生成嵌入之前,结构感知的分块方法帮助保留了完整的章节上下文,从而提升了查询响应的清晰度,尤其是对于复杂文档而言。Markdown 被广泛用于文档编写,而 MarkItDown 的 CLI 工具也因此成为一个极具价值的开发者生产力工具。
-
89. Module Federation
Module Federation 允许在微前端之间指定共享模块并实现依赖的去重。随着 2.0 版本的发布,模块联邦已经发展到可以独立于 webpack 工作。此更新引入了一些关键功能,包括联邦运行时(Federation Runtime)、全新的插件 API,以及对流行框架(如 React 和 Angular)及热门构建工具(如 Rspack 和 Vite)的支持。通过采用模块联邦,大型 Web 应用可以拆分为更小、更易管理的微前端,使不同的团队能够独立开发、部署和扩展,同时高效地共享依赖项和组件。
-
90. Prisma ORM
Prisma ORM 是一个开源的数据库工具包,帮助 Node.js 和 Typescript 应用简化应用数据库操作。它提供了一种现代化的、类型安全的数据库访问方式,能够自动化数据库模式迁移,并提供直观的查询 API。与传统 ORM 不同,Prisma ORM 使用纯 JavaScript 对象定义数据库类型,而无需依赖装饰器或类。我们对 Prisma ORM 的使用体验非常积极,它不仅更符合 TypeScript 的开发生态,还能很好地融入函数式编程范式中。
暂缓
-
105. Node超载
几年前,我们观察到了一种现象,即 Node 超载 :Node.js 经常被用在一些不合理的场景中,甚至在没有考虑其他替代方案的情况下就被选择了。尽管我们理解某些团队倾向于使用单一语言栈——即便要付出一些权衡的代价——但我们仍然倡导 多语言编程(Polyglot Programming) 。当时,我们指出 Node.js 因在 IO 密集型工作负载中的高效性而享有应得的声誉,但也提到其他框架已经赶上,提供了更好的 API 和更优越的整体性能。同时,我们警告说,Node.js 从未适合计算密集型工作负载,这一局限性至今仍然是一个重大的挑战。如今,随着数据密集型工作负载的兴起,我们看到团队在应对这些问题时也面临着越来越大的困难。
无法找到需要的信息?
每期技术雷达中的条目都在试图反映我们在过去六个月中的技术洞见,或许你所搜索的内容已经在前几期中出现过。由于我们有太多想要谈论的内容,有时候不得不剔除一些长期没有发生变化的条目。技术雷达来自于我们的主观经验,而非全面的市场分析,所以你可能会找不到自己最在意的技术条目。