Ohhnews

分类导航

Jetbrains Blog

PhpStorm公布新一批PHP开源项目赞助名单

PhpStorm回顾了其推出开源赞助计划一年来的进展,并公布了新一批受赞助的开源项目。该计划每年挑选五个开源项目进行为期一年的资助,目的不仅是提供资金支持,也在于提升外界对开源在PHP开发中关键作用的认识,并鼓励更多人参与贡献。经多方征集与筛选,本年度入选项目包括:PHPUnit 作者兼维护者 Sebastian Bergmann、本地PHP环境与服务器管理工具 Lerd 的开发者 George Dumitrescu、被 FrankenPHP 和 Native PHP 等项目使用的 static-php-cli 开发者 Jerry Ma、被视为现代PHP基石的 Composer,以及关注包容性的 Larabelles。官方同时感谢所有提交建议的人,并表示将继续赞助 PHP 基金会,呼吁更多个人与组织加入支持行列,共同推动PHP生态变得更好。
#phpstorm#php#开源#项目赞助#jetbrains
$ more
Jetbrains Blog

设计 Kotlin Multiplatform 与 TeamCity 集成

JetBrains 分享了为 Kotlin Multiplatform 设计并构建 TeamCity 集成的方法。该集成通过渐进式引导,帮助面向 iOS 的 KMP 开发者从首次 Git 推送,走到测试构建、TestFlight 发布和全自动流水线,全程无需离开 IDE。文章指出 iOS 发布面临 macOS 基础设施昂贵、Apple 签名配置复杂、IDE 到 CI/CD 缺少引导等痛点。目标是让开发者无需 CI/CD 经验和 Mac,借助 TeamCity Cloud 的托管 macOS 代理与免费构建额度完成任务。流程分三阶段:构建测试、发布、自动化。设计团队先梳理 10 步旅程,并在 6 月进行约 10 次可用性测试。关键决策包括:首次推送后适时提示配置 CI;生成 teamcity.yaml、Fastfile、Appfile、Gemfile 并保持本地未提交,先远程验证;用一个表单收集 App Store Connect API 密钥、团队 ID、Bundle ID 和分发证书。连接 GitHub 后,每次推送自动构建、测试、签名并上传 TestFlight。KMP 文档已提供相关教程。
#kotlin multiplatform#teamcity#ci/cd#ios 发布#开发工具
$ more
Spring Blog

Spring Batch 6.1.0-M2 正式发布

Spring Batch 6.1.0-M2 已在 Maven Central 发布,这是继 6.1.0-M1 之后的第二个里程碑版本,带来多项新特性、功能增强以及少量破坏性变更。主要更新包括:依赖升级至 Spring Framework 7.1.0-M2、Spring Integration 7.2.0-M2、Spring Data 2026.1.0-M2 等;MongoDB 作业仓库新增可配置的集合前缀,默认值为 BATCH_,便于多应用共用同一数据库或环境隔离;默认转换服务改为基于 DefaultFormattingConversionService 构建,并通过 ConversionServiceFactory 暴露,原有日期时间转换器被弃用;异步处理 API 与本地分块相关类从 spring-batch-integration 迁移至 spring-batch-core,旧类作为弃用子类保留以兼容;RepositoryItemWriter 新增写入分块后刷新仓库的能力;基于资源的读取器支持直接传入资源位置通配模式;部分构建器改用分阶段 DSL,使互斥方法的非法组合在编译期即被拒绝,这对以构建器类型变量存储返回值的代码构成源码与二进制不兼容变更。此外,Apache Derby 支持、遗留日期时间转换器及若干 JobRepository、JobExplorer 计数方法等 API 被标记为弃用,计划在 7.0 版本移除。完整变更清单可查阅发布说明与参考文档。
#spring batch#版本发布#依赖升级#mongodb#异步处理
$ more
Spring Blog

Spring Web Services 5.1.0-M1 版本发布

Spring Web Services 5.1.0-M1 已正式发布,可从 Maven Central 获取。该版本共包含 13 项功能增强、依赖升级和错误修复。主要新特性包括:集成 Micrometer Observation API 的可观测性支持,可对 Web 服务交互进行指标采集与链路追踪;支持通过 @SoapHeader 注解将 SOAP 头部解组为自定义类型,不再局限于 SoapHeaderElement;为故障响应增加 WS-Security 支持,满足要求所有响应均携带安全头的客户端需求;与 Spring Framework 7.1 和 Spring Security 7.1 保持版本对齐。更多细节及升级说明可参阅发布说明。开发团队同时感谢所有提交问题报告与拉取请求的贡献者,并邀请有兴趣的开发者参与贡献。
#spring web services#版本发布#可观测性#ws-security#框架升级
$ more
foojay

图表即代码:Foojay 新增 Mermaid 图表支持

Foojay 文章现已支持 Mermaid:作者只需在文章中写入围栏代码块形式的 Mermaid 语法,即可自动渲染为真正的图表,无需任何前置配置或开关,页面中没有该代码块时也不会加载图表库。该功能由 Maximillian Arruda 提议。支持的常见类型包括序列图、类图、状态图、实体关系图和甘特图。相比导出 PNG,文本形式的图表可随文章以 Pull Request 提交,便于审查、修改错别字和持续更新;图表以 SVG 渲染,自动跟随读者选择的明暗主题并保持清晰,语法与 GitHub、GitLab 一致,可直接复用项目 README 中的图表。使用建议包括提交前在 Mermaid 在线编辑器检查语法、不要硬编码颜色、保持图表精简,以及不要让图表替代正文说明与替代文本。图片仍适用于截图、照片和手绘内容。
#mermaid#foojay#图表即代码#技术写作#代码审查
$ more
DZone Java

如何构建自动生成Java版Selenium WebDriver测试的AI智能体:测试自动化工程师实用指南

本文介绍如何构建一个AI智能体,将纯英文描述的测试用例自动转换为Java语言的Selenium WebDriver测试脚本。该智能体读取.txt测试场景文件,通过配置文件切换OpenAI或Ollama大模型,将自然语言测试场景转换为结构化提示词,并按照Page Object Model与TestNG规范生成页面对象类、测试类、testng.xml和README文件,最后按时间戳分目录保存。文章完整演示了从创建Python虚拟环境、安装依赖、编写配置与工具函数到主脚本编排的步骤,并对生成代码进行评审,指出其存在缺少import语句、残留System.setProperty、定位器不够稳定等问题。最后总结了提示词质量、断言与校验、代码复查重构、异常处理与日志,以及AI幻觉等最佳实践与局限。
#ai智能体#selenium#测试自动化#java#提示工程
$ more
Jetbrains Blog

专访 Oppex AI 创始人兼 CEO Prasun Kumar:AI 代理如何修复生产事故

JetBrains 的 Small Talk 栏目采访了 Oppex AI 创始人兼 CEO Prasun Kumar。Oppex AI 开发 AI 代理,帮助开发者处理生产环境事故:在工程师被叫醒前,代理会收集日志、云指标、数据库状态、受影响客户和近期代码变更,判断问题是否出现过,并给出修复建议,目标是将平均修复时间(MTTR)降至 10 分钟以内。团队用混沌猴子在测试环境破坏系统来训练代理,使其在生产中更可靠。Prasun 有 25 年 JetBrains IDE 使用经验,团队 90% 工作使用 IntelliJ IDEA,并结合 WebStorm、PyCharm、DataGrip 和 JetBrains AI Assistant。未来目标是实现 AI 推荐、人工批准,最终让系统自愈。他还建议印度创业团队抓住 AI 优先的机会。
#oppex ai#ai代理#生产事故#jetbrains#故障修复
$ more
Jetbrains Blog

JetBrains Academy《学习 Rust 的 100 个练习》迎来重大更新

JetBrains Academy 对 Mainmatter 同名课程的改编版《学习 Rust 的 100 个练习》发布一年来最大更新。课程由 Luca Palmieri 编写,通过练习而非纯讲解教授 Rust,围绕工单管理系统逐步引入所有权与借用、trait、枚举与模式匹配、错误处理、集合与迭代器、生命周期、线程与通道、Future 等概念,最终挑战是用真实 crate 构建异步 REST API。本次更新包括重建的入门章节、10 个问答的 FAQ、可见的全部测试、开发与发布 Cargo profile 行为差异实验。课程还建议用 AI 解释报错而非代写代码,并在练习时关闭代码补全。课程免费,可在 RustRover 中打开。
#rust#编程练习#jetbrains academy#rustrover#异步编程
$ more
Baeldung

FitNesse入门——一款验收测试框架

FitNesse是一款面向Java应用的验收测试框架,提供基于Web的Wiki界面,让测试人员无需编写传统测试代码即可创建、编辑并运行验收测试。它支持Fit和Slim两种测试系统,现代测试中常用Slim,通过Slim协议调用Java固件代码。文章介绍了如何以Maven依赖方式引入FitNesse,并构建一个简单银行应用示例:创建BankAccount类实现存款、取款和查询余额,再编写BankAccountFixture固件类作为FitNesse与业务逻辑之间的桥梁。随后通过启动类开启FitNesse服务器,在浏览器Wiki页面中使用表格语法编写验收测试,并配置页面属性以启用测试执行。测试结果显示全部5个断言通过,无错误、无忽略、无异常,余额与预期值一致。
#fitnesse#验收测试#java#slim#测试框架
$ more
Baeldung

Triton Java API 入门指南:在 Java 中调用 NVIDIA 推理服务器

本文介绍如何使用 NVIDIA 的 Triton Inference Server 在 Java 中实现图像目标检测。Triton 是一款开源模型服务软件,支持 ONNX、TensorFlow、PyTorch、TensorRT 等几乎所有框架训练的模型,并提供动态批处理、并发模型执行和内存管理等能力。文章首先梳理了两种 Java 集成路径:基于 JNI 的进程内 Java API(将服务器嵌入 JVM,适合低延迟边缘场景)以及通过 gRPC/HTTP 访问的 Java 客户端 API(适合企业微服务架构)。随后演示了如何使用 Docker 在本地启动 Triton 实例,将预训练的 YOLOv8 模型导出为 ONNX 格式并配置模型仓库。接着介绍了 Java 客户端的搭建过程,包括 Maven 中 gRPC 与 Protobuf 依赖和插件配置、建立连接、健康检查、图像预处理、构造推理请求以及结果解析。针对 YOLOv8 输出的海量候选框,文章还讲解了如何使用非极大值抑制(NMS)基于 IoU 去除重复检测框。最后通过一个识别猫的示例验证整个流程,并说明完整代码可在 GitHub 上获取。
#triton#java#推理服务#目标检测#grpc
$ more