Ohhnews

分类导航

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
Baeldung

如何在Spring Boot中升级Spring Framework版本

本文介绍在Spring Boot应用中安全升级Spring Framework版本的完整方法。Spring Boot通过依赖管理机制为每个发行版统一管理Spring Framework各模块的兼容版本,因此开发者无需为单个框架模块单独指定版本号,只需声明依赖即可。推荐的升级方式是调整父POM中的Spring Boot版本,以引入所需的新版Spring Framework。文章还介绍了使用mvn dependency:tree查看当前解析的框架版本,借助mvn help:effective-pom排查由其他BOM导入、自定义依赖管理或传递依赖导致的版本冲突,并在升级后审查迁移文档、验证安全、数据库访问、Web端点等第三方集成的兼容性。最后给出优先升级Spring Boot、避免手动覆盖版本、保持框架各模块版本一致等最佳实践。
#spring boot#spring framework#依赖管理#maven#版本升级
$ more
foojay

新版Foojay博客平台支持使用AsciiDoc撰写文章

新版Foojay博客平台现已支持使用AsciiDoc撰写文章,与Markdown并存。作者只需将文件名从index.md改为index.adoc,frontmatter格式与图片存放方式均保持不变。AsciiDoc弥补了Markdown的诸多短板:可为代码块、表格、图片添加标题;支持源码内编号注释,在代码注释中插入标记并在下方逐条解释;提供NOTE、TIP、WARNING、CAUTION、IMPORTANT五种提示框;表格可设置列宽、对齐方式以及单元格的行列合并。文章还演示了Mermaid图表的支持。作者建议普通文章继续使用Markdown,当文章包含需逐行注释的代码、正式对比表格或较多警告提示时再改用AsciiDoc。该功能由Brice Dutheil提出需求。
#asciidoc#markdown#foojay#技术写作#文档格式
$ more
Jetbrains Blog

JetBrains Qodana 团队代码质量问答

JetBrains Qodana 团队围绕代码质量常见问题进行问答。技术债务描述为未来工作而做的有意妥协,代码质量差则源于知识不足。降低深层嵌套循环的认知复杂度,最佳做法是避免嵌套,提取函数,简化条件,显式命名中间结果,使用迭代器、生成器、map、filter、reduce,并在处理前尽量展平数据。代码覆盖率衡量单元测试执行了多少生产代码,变异测试通过注入小改动检验测试是否能发现问题,约40%至60%的变异分数可作为合理起点。单元测试提供最快反馈,能在回归附近捕获问题,使重构更安全。跟踪质量改进应看长期趋势:静态分析可显示新增问题、严重程度和技术债务变化,同时观察生产环境 Sev 1 问题和 MTTR。消除自动漏洞扫描误报,需让工具获得更多仓库信息;可通过 qodana.yaml 排除检查,或用 NOLINT 注释抑制个别代码行。最后,团队应有意识地做技术妥协,保持代码可理解,并建立快速反馈循环,借助 Qodana 将 JetBrains 检查集成到 CI/CD 中。
#jetbrains#qodana#代码质量#技术债务#单元测试
$ more
DZone Java

Valkey:将键值数据库带入企业级 Java

企业应用通常同时面临多种数据挑战:部分数据需要事务完整性与关系建模,而会话、计数器、限流、临时状态、热点对象和协调数据等更看重快速且可预测的访问,键值数据库的简洁性由此成为架构优势,在分布式与云原生系统中尤为明显,因为延迟、吞吐和可扩展性直接影响用户体验与基础设施成本。Valkey 源自 Redis OSS 血统,是 Linux 基金会下厂商中立的开源项目,提供高性能键值平台,适用于缓存、应用状态、消息传递和主数据存储。文章展示了如何借助 Jakarta NoSQL 与 Eclipse JNoSQL 在 Java 中使用 Valkey:实体映射方式保持不变,切换键值实现通常只需更换驱动和配置,从而避免与特定厂商 API 紧耦合,使多语言持久化策略更切实可行。
#valkey#键值数据库#jakarta nosql#企业级 java#多语言持久化
$ more