Ohhnews

分类导航

Jetbrains Blog

JetBrains 发布 Tracy:专为 Kotlin 设计的 AI 可观测性库

Tracy:Kotlin AI 应用的可观测性利器 JetBrains 近期推出了开源 Kotlin 库 Tracy,旨在为 AI 驱动的应用程序提供生产级的可观测性支持。该工具能够帮助开发者快速调试故障、衡量执行耗时,并追踪大模型(LLM)调用、工具调用及自定义业务逻辑的运行状态。 核心特性 无缝集成:支持常见的 Kotlin 网络栈(如 OkHttp、Ktor)及主流模型客户端(如 OpenAI、Anthropic、Gemini)。 基于 OpenTelemetry:架构兼容 OpenTelemetry 标准,支持将追踪数据导出至 Jaeger、Grafana 等后端,或直接集成 Langfuse、W&B Weave 等 AI 工程平台。 灵活的追踪方式: Scoped spans:通过 withSpan 管理代码块的嵌套与执行时间。 客户端自动插桩:通过 instrument 方法快速为 LLM 客户端添加监控。 注解支持:使用 @Trace 注解即可自动追踪接口方法或函数,无需重复编写代码。 Tracy 通过提供细粒度的追踪能力,弥补了现有 AI 框架在内部逻辑追踪上的不足,为 Kotlin 生态中的 AI 应用开发与运维提供了可靠的性能评估与故障排查手段。
#kotlin#人工智能#可观测性#软件开发#工具库
$ more
Jetbrains Blog

集中式架构的优势:TeamCity 如何解决 Jenkins 的扩展性难题

核心内容摘要 随着企业规模的扩大,Jenkins 在扩展时往往面临控制器负载瓶颈、复杂的插件管理以及多控制器治理等运维难题。本文通过对比分析,探讨了 TeamCity 如何通过其服务器-代理(Server-Agent)架构有效降低运维负担: 1. 架构差异 虽然两者均采用中央控制器模型,但 TeamCity 将更多核心功能(如测试报告、依赖管理、构建链)内置于平台中,显著减少了对第三方插件的依赖。 2. 扩展性优势 弹性伸缩:TeamCity 支持物理机与云端代理的混合部署,可通过内置云集成实现按需自动扩容。 智能调度:基于代理的能力与构建任务需求进行自动匹配,减少了人工调度开销。 可视化依赖:通过构建链(Build Chains)实现复杂工作流的可视化建模,提升了大型项目的可维护性。 3. 运维价值 TeamCity 的集中式配置与更少的外部依赖,降低了升级过程中的风险与兼容性测试成本,使平台团队能够更专注于交付效率而非工具链的维护。
#ci/cd#软件工程#自动化构建#运维管理#系统架构
$ more
Jetbrains Blog

从课堂代码到NASA挑战赛:Carlos Orozco的科技进阶之路

职业成长历程 本文讲述了计算机科学博士、教授兼软件架构专家Carlos Orozco的成长故事。从医疗行业的Java开发起步,Carlos通过参与NASA国际空间应用挑战赛(Space Apps Challenge)及担任哥伦比亚科学部的量子软件架构顾问,积累了丰富的实战经验。他强调,软件开发的核心不仅是编码,更在于系统性地分析问题、严谨的逻辑思维以及跨学科的沟通协作能力。 核心观点 基础至上:框架会更迭,但算法、数据结构和解决问题的思维方式是长期的职业价值。 拥抱反馈:面试中的拒绝并非失败,而是识别技能差距和建立韧性的宝贵反馈。 AI的使用:AI应作为辅助工具而非替代品,学生应通过独立解决问题来锻炼深度思考能力。 专业工具:在学习阶段就应将集成开发环境(IDE)视为专业生产力工具,通过重构、调试和版本控制等功能,将学生代码转化为工程实践。 给学生的建议 Carlos建议学生保持好奇心与耐心,通过正式教育、自我驱动学习与工具辅助相结合的方式,在快速变化的技术浪潮中构建扎实的技术底座。
#计算机科学#软件工程#职业发展#编程教育#技术架构
$ more
Jetbrains Blog

AI代码审查的伦理挑战:责任与透明度

AI代码审查的伦理与实践 随着人工智能在软件开发中的普及,AI代码审查工具已成为提升效率和发现安全漏洞的重要手段。然而,这类工具在带来便利的同时,也引发了关于责任归属、算法偏见及“黑箱”决策的伦理讨论。 核心议题 责任归属: 当AI建议的代码导致生产环境故障时,责任应由开发者、组织还是工具供应商承担? 自动化偏见: 开发者可能过度信任AI建议,从而忽视了必要的批判性审查。 透明度缺失: 许多AI模型缺乏对决策依据的解释,导致其成为不可控的“黑箱”。 实践建议 团队治理: 建立明确的责任制,确保每一项AI建议都经过人工核准,并记录决策轨迹。 供应商责任: 厂商应提供可解释的建议,公开模型局限性,并支持自定义偏好设置。 总之,AI不应取代人类的判断。构建伦理化的自动化工作流,关键在于将AI视为辅助工具,而非最终决策者,从而在提升代码质量的同时确保系统的可靠性与安全性。
#人工智能#代码审查#软件开发#技术伦理#自动化
$ more
Baeldung

解决 Spring Data JPA 中的查询验证失败错误

概述 在使用 Spring Data JPA 时,开发者常会遇到 Validation failed for query for method 异常。这是框架的一种预检机制,旨在应用启动时验证 @Query 注解的合法性,从而避免运行期错误。 常见原因及解决方案 保留关键字冲突:若表名或列名(如 GROUP)与 SQL 保留字冲突,需在实体定义中通过转义字符(如 group)进行处理。 实体属性不匹配:JPQL 查询应引用 Java 实体类的字段名,而非底层数据库的列名。 原生查询标记缺失:使用原生 SQL 时,必须显式设置 nativeQuery = true,否则框架会将其误识别为 JPQL。 最佳实践 利用 @DataJpaTest 注解进行单元测试,可以在应用上下文加载阶段自动触发查询验证,确保数据库交互结构的正确性。
#spring data jpa#数据库查询#后端开发#异常处理#软件测试
$ more
Spring Blog

Spring Tools 5.1.0 版本正式发布

Spring Tools 5.1.0 版本已正式发布,支持 Visual Studio Code、Cursor、Eclipse 和 Theia 等开发环境。此次更新重点提升了 Spring Boot 开发体验,包括为 JDBC @Query 注解提供 SQL 智能支持、支持 Java 15+ 文本块自动转换、增强 AOT 仓库支持以及完善 API 版本控制。此外,新版本通过引入 JDK 25 AOT 缓存技术显著缩短了语言服务器的启动时间,并同步升级至 Eclipse 2026-03 版本。
#spring tools#java#开发工具#集成开发环境#软件更新
$ more
foojay

Java与Kafka的事件驱动架构实践

核心内容 本文探讨了在Java中利用响应式编程(Reactive Java)处理流式数据的优势,并以航空ADS-B数据处理为例,对比了传统阻塞式架构与响应式架构的性能差异。 关键点 响应式编程的必要性:传统阻塞式I/O模型在处理高并发、流式数据时资源利用率低。通过Project Reactor,开发者可以利用Mono和Flux实现非阻塞异步操作。 技术对比:文章通过示例代码展示了如何利用WebClient和响应式驱动处理并发任务(如同时进行Web请求与计算),显著减少了总执行时间。 架构实战:在Kafka与MongoDB的集成场景中,响应式驱动通过flatMap等算子实现异步流处理,能够更高效地处理数据摄取、富化与写入。 性能洞察:测试显示,响应式应用在处理大规模流数据时,吞吐量远高于单线程阻塞式应用。作者指出,响应式编程在处理存在异步任务的I/O密集型场景时优势最为明显,同时也提供了更简洁的声明式代码风格。
#java#kafka#事件驱动架构#响应式编程#mongodb
$ more
DZone Java

解决大规模广告检索系统中Solr 5到Solr 8的迁移难题

迁移背景与挑战 本文探讨了将生产环境中的广告检索系统从Apache Solr/Lucene 5升级至8版本的复杂过程。该升级不仅涉及依赖项更新,更因其处于机器学习流水线前端,对相关性得分、召回率及尾部延迟(p99)有极高要求。早期的多次迁移尝试均因无法发现隐藏的语义漂移和执行路径变化而失败。 核心问题分析 测试环境显示迁移成功,但生产环境出现严重回归,原因包括: 语义漂移:相似度计算和归一化方式的改变导致排序逻辑偏移。 负分抑制:Lucene 8中负分处理机制的变更导致部分候选集被静默过滤,造成召回率下降。 性能瓶颈:复杂的转换器(Transformers)导致响应构建阶段成为尾部延迟的主要来源。 解决方案与实践 作者通过语义对齐与执行路径优化实现了成功迁移: 语义对齐:通过对比测试还原了Solr 5的评分行为,并引入偏移机制防止负分引起的候选集丢失。 性能优化:针对嵌入式部署,通过并行化响应构建和减少中间表示的序列化开销,显著降低了p99延迟。 验证体系:建立了侧重于Top-N排序稳定性、特征分布一致性及真实生产负载下的性能验证框架。 该案例强调了在涉及机器学习的检索系统中,保持检索语义的兼容性与关注执行路径对大规模基础设施升级至关重要。
#搜索引擎#系统迁移#性能优化#机器学习#数据检索
$ more
Jetbrains Blog

JetBrains IDE 推出实验性 AI 功能:代码回顾与智能洞察

实验性 AI 功能介绍 JetBrains 近期为其 IDE 系列推出了一款全新的实验性插件,旨在引入主动式 AI 辅助功能。该插件目前包含两项核心功能: 代码回顾 (Recap):为开发者提供近期开发活动的自动摘要,帮助用户快速找回工作上下文,尤其适用于跨项目切换或长时间中断后的恢复工作。 智能洞察 (Insights):针对非本人编写或久未接触的代码提供简要解释,重点突出复杂代码片段,目前支持 Python 和 JVM 语言。 设计理念与使用说明 与传统的响应式 AI 不同,这两项功能采取主动式交互模型。为了保证开发体验并收集反馈,JetBrains 将其作为独立插件发布,用户需手动选择安装。该功能要求用户订阅 JetBrains AI Pro 或 Ultimate 版本,并开启数据共享以支持产品迭代。未来,这些功能在经过充分验证和优化后,有望集成至标准的 AI Assistant 插件中。
#jetbrains#人工智能#软件开发#生产力工具#ide
$ more
foojay

IntelliJ IDEA正式推出BoxLang开发插件

插件发布概览 官方正式发布了适用于IntelliJ IDEA的BoxLang IDE插件,旨在为JVM开发者提供一流的开发体验。该插件支持BoxLang与CFML开发,将现代化的开发工具集成至JetBrains生态系统中。 核心功能特性 语法高亮:提供针对BoxLang和CFML的完整语法高亮支持,提升代码可读性。 项目创建:支持在IntelliJ中直接引导和构建新的BoxLang项目。 LSP支持:通过语言服务器(LSP)提供代码补全、智能提示、定义跳转及实时诊断等高级功能。 调试工具:支持断点调试、变量检查及调用栈导航,简化排错流程。 测试集成:深度集成TestBox,支持直接在IDE内运行测试并查看结果。 该插件旨在帮助开发者更顺畅地进行BoxLang应用开发或维护现有的CFML代码库。
#boxlang#intellij#ide插件#jvm#软件开发
$ more