Ohhnews

分类导航

Jetbrains Blog

对话Synnax联合创始人兼CEO Emiliano Bonilla

JetBrains创业项目“Small Talk”采访Synnax联合创始人兼CEO Emiliano Bonilla。Synnax是面向硬件测试与运行的任务控制与数据平台,用于火箭发动机测试等高风险场景,替代电子表格和20TB级无序文件堆积。因Excel和Python难以满足实时控制需求,团队约六个月自研实时编程语言Arc。公司正从航天拓展至量子计算低温控制、油气和制造业。团队使用GoLand、CLion、PyCharm及Claude Code。Bonilla强调任务关键软件需在速度与质量间平衡,未来重点包括自动化数据审查与异常检测。
#synnax#航天测试#实时数据平台#arc编程语言#jetbrains
$ more
Jetbrains Blog

Kotlin即将推出伴生块与伴生扩展机制

Kotlin正在扩展伴生机制,计划从2.5.0版本起引入实验性的伴生块(companion block)与伴生扩展(companion extension)。伴生块在语法上接近伴生对象,但编译方式发生根本变化:在JVM上编译为静态成员,在Kotlin多平台中可定义expect伴生成员并用含静态成员的Java类实现。伴生扩展则允许为任意类或接口声明新的类成员,无论是自有代码还是Java或第三方代码。使用时需添加-Xcompanion-blocks或-Xcompanion-blocks-and-extensions编译器标志,后者会产生预发布二进制,导致使用伴生扩展的库暂时无法作为依赖被消费。伴生对象仍是Kotlin的完整组成部分,无需迁移;若改用伴生块,多数情况下只需移除object关键字并重新编译,但相关项目及依赖代码需一同重新编译。
#kotlin#伴生对象#语言特性#跨平台#编译器
$ more
foojay

我与Java代码格式化工具的爱恨情仇:从google-java-format到open-java-format

作者回顾了自己与Java代码格式化工具的长期纠葛:从Sun/Oracle代码规范,到难以接受的Google风格,再到使用Terraform与Go后体会到的自由。加入一个以google-java-format作为CI质量门的项目后,他从最初厌烦转为离不开,随后又发现了布局更紧凑、对响应式代码支持更好的palantir-java-format。但这两个项目维护乏力,新Java版本不断发布,issue与PR却长期停滞。AI编码代理进一步放大了问题:每个模型和会话都有自己的代码风格,常产生大量空白噪音diff,与CI反复拉锯。为此作者fork了Palantir仓库,推出open-java-format,提供IntelliJ插件、Gradle集成与各平台原生二进制,将CI迁移至GitHub Actions,加入产物签名与Java 27支持,并修复了若干恼人缺陷。2.98.0.x系列基于palantir-java-format 2.98.0。后续计划以开源方案替换自定义依赖、修复Error Prone问题,并用该格式化器全面自举。
#java#代码格式化#开源项目#人工智能#开发工具
$ more
foojay

Codename One 优化性能并新增原生拖放与跨设备连续性

Codename One 近期更新聚焦性能与开发体验:优化垃圾回收、地图、启动时间及 JavaScript 开销,并新增原生拖放和跨设备连续性功能。同时,Javadoc 已加入网站搜索。
#codename one#跨平台开发#性能优化#原生拖放#跨设备连续性
$ more
foojay

2026年9月JavaFX链接汇总

2026年9月JavaFX月度链接汇总。本月最大事件是JavaFX 27正式发布,带来macOS上Metal渲染管线成为默认、CSS条件样式表与媒体查询、窗口标题栏控件、RichTextArea增强等特性,修复超过70个bug,社区贡献60多个修复。JavaFX 27使用--release 25编译,需较新JDK。无障碍方面为macOS表格和列表增加支持,修复WebView复制导致JVM崩溃等问题。生态系统方面,AtlantaFX 3.0.0、GemsFX 4.5.0、JabRef 6.0-beta.1等发布,luvjfx、PatternFX等新项目亮相。Josh Long发布Spring Boot与JavaFX结合的视频,Florian Enner展示Raspberry Pi 5上的原生镜像。社区还讨论了JavaFX如何吸引更多开发者及在浏览器中运行等话题。
#javafx#java#桌面应用#开源#版本发布
$ more
foojay

持久化执行是一种属性,而非产品

作者认为,持久化执行是一种可在现有数据库上实现的属性,而非必须购买的工作流引擎产品。文章以三步订单流程为例,对比 JobRunr+Postgres 与自托管 Temporal:在 1000 个订单、24 个工作线程下,前者总耗时更短,CPU、内存和数据库事务显著更少,Temporal 提交约 113,218 个事务,JobRunr 约 1,181 个。Temporal 通过事件溯源重放提供完整历史、回放调试、信号、定时器和子工作流等能力,但运维复杂、成本高。作者建议,只有当编排深度分支、需协调多语言服务或需要一等信号/查询/子工作流时才选择工作流引擎;多数 Java 后台任务用数据库支持的调度器即可获得检查点、重试和幂等保障。
#持久化执行#工作流引擎#temporal#jobrunr#基准测试
$ more
DZone Java

Jakarta Batch实战:面向企业工作负载的可靠分块处理

批处理在企业中仍不可替代,因为价格重算、交易对账、数据迁移、报表生成、发票处理和客户重分类等操作不适合交互式请求,直接作为普通请求会导致超时、重试困难和数据不一致。Jakarta Batch 通过作业、步骤、分块、检查点和重启机制,为大规模数据任务提供可控、可恢复的执行模型。其分块步骤遵循读取、处理、写入循环:ItemReader 逐项读取,ItemProcessor 应用业务规则并可通过返回 null 过滤项目,ItemWriter 按块批量持久化。运行时负责事务、检查点、失败与重启管理,块大小可平衡吞吐、内存和恢复成本。文中以电商客户分层为例,根据消费阈值将客户划分为 Bronze、Silver、Gold、Platinum,并仅更新分层变化的客户,展示了 JobOperator 启动作业、JSL 映射读写器与处理器等用法。该模型使企业应用能专注于业务逻辑,同时可靠处理成千上万乃至百万级记录。
#jakarta batch#批处理#企业应用#分块处理#数据可靠性
$ more
Jetbrains Blog

2026年Kotlin现状报告

2026年,Kotlin迎来十五周年。报告回顾其十五年发展,指出Kotlin已建立成熟生态,被全球企业广泛采用,并拥有庞大活跃的开发者社区。调查显示,93%的Kotlin开发者使用至少一种AI编程工具,81%已使用或可能尝试AI编程代理,81%认为AI生成的Kotlin代码完全正确或仅需小幅修复。Kotlin在Android开发中依然稳固,但超过半数开发者参与后端项目,使用范围已扩展至后端、多平台和AI辅助开发等领域。报告结合JetBrains研究与行业数据,探讨Kotlin是否持续、能否跨平台扩展以及如何融入AI时代。
#kotlin#编程语言#ai辅助开发#多平台开发#开发者生态
$ more
Jetbrains Blog

现代软件开发中的软件质量保证工具与最佳实践

现代软件开发中,仅在发布前测试已不足以保障质量,质量保证需贯穿整个软件开发生命周期(SDLC)。2025年Stack Overflow开发者调查显示,84%的开发者正在使用或计划使用AI工具,AI生成代码的普及使更频繁、更严格的质量审查成为必需。左移分析等技术将质量检查提前到编码阶段。软件质量保证(SQA)是一套持续的过程,旨在尽早发现、消除并预防缺陷,与传统偏被动的质量控制(QC)不同。文章指出,糟糕的软件质量每年给美国造成至少2.41万亿美元损失。SQA工具涵盖静态代码分析(如Qodana)、单元测试(JUnit、Jest、PyTest、NUnit)、集成测试(Postman、SoapUI)、功能与UI测试(Playwright、Cypress、Selenium)、性能测试(JMeter、LoadRunner、k6)以及安全测试(SAST、SCA、DAST、密钥检测)。选择工具时应考虑CI/CD集成、语言支持、自动化、可扩展性、报告能力和安全性,并配合左移、自动化重复检查、集成测试到流水线、监控技术债、将安全视为核心等最佳实践。
#软件质量保证#静态代码分析#测试自动化#持续集成#ai辅助开发
$ more
DZone Java

Jakarta Faces 流作用域:无需会话状态管理多步骤用户体验

多步骤交互广泛用于引导、结账、账户设置、审批和配置向导等场景,需在多个页面间保持一致的工作状态,但状态不应超出业务过程。@RequestScoped 生命周期太短,@SessionScoped 又常过长。Jakarta Faces 通过 @FlowScoped 按流程生命周期管理状态:进入流程时创建,导航期间保留,退出流程时销毁。文章以客户分群应用为例,展示配置、预览、审核和执行的流程,说明如何用 flow XML 定义起始节点和退出节点,并用 @FlowScoped 托管 Bean 共享状态。相比 @ViewScoped,跨页面时状态不会因切换视图而丢失;相比 @SessionScoped,临时工作流数据不会长期占用会话。该方案适合结账、入职、注册、审批、配置和管理向导等由 Java 团队维护的企业级表单应用。
#jakarta faces#flowscoped#状态管理#多步骤流程#企业级java
$ more