Qodana  IntelliJ IDEA,看代码质量平台如何简化IDE本地化!
IntelliJ IDEA是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。当程序员规划涉及代码重构的大型项目时应该查看所需更改的全貌并相应地调整这正是IntelliJ IDEA团队在需要将 IDE 的整个 UI 本地化为中文、日语和韩语时所做的。IntelliJ 团队使用 JetBrains 的代码质量平台 Qodana 作为本地化流程的单一可信来源可以比预期更快地完成了项目明智的规划、问责和监督促成了这一积极成果。挑战隔离 13,000 个硬编码字符串并有效监控进度为了简化将 UI 本地化为 3 种语言的过程IntelliJ 团队需要从源代码中剥离所有可本地化的条目将其放入单独的属性文件中以供翻译。在超过 13,000 个字符串中一些可本地化的字符串很容易被忽略保留在代码中。 本地化 UI 时硬编码字符串可能是最难处理的部分它们只有在软件本地化后才会出现因此很难被找到。 举例来说用户安装日语语言包后UI 的某些部分仍将是英语。因此团队需要面对许多繁琐和重复的工作于是本地化项目负责人开始寻找一种解决方案用来通过持续检查硬编码字符串文字的代码库来自动执行大量工作。将问题分配给负责修正问题的开发者。监督可本地化字符串的提取。解决方案硬编码字符串文字的自动代码检查本地化项目负责人选择Qodana来简化代码检查流程得到一个包含以下步骤的项目#1. 将 Qodana 连接到 TeamCityIntelliJ 团队将 Qodana 连接到TeamCity 管道并启用国际化代码检查以高亮显示未按要求提取到属性文件中的硬编码字符串文字。#2. 配置检查配置文件在检查配置文件中团队配置了检查范围确保平台跳过遗留代码、没有字母字符的文字以及仅包含空格的字符串等部分。团队还确保 ​​​​​​​TeamCity 会为 Qodana 检查的每行生成一份测试报告如果未提取字符串则将其定为失败。#3. 确定扫描频率配置完成后Qodana 被设置为每 4 小时检查一次代码。 扫描在服务器上独立运行而不是在某人的本地机器上运行这一点尤为重要这最终为团队节省了宝贵的时间。第一次运行 Qodana 在 TeamCity 中得到 10,000 个失败测试。#4. 分配任务针对每一次测试失败项目负责人都会指派一名开发者调查并将硬编码字符串提取到属性文件中。#5. 监控结果每次 Qodana 检查后TeamCity 都会将之前的结果与当前报告加以比较。 如果负责某个问题的开发者提取了字符串TeamCity 会将测试标记为已修正这让项目负责人在监控进度时无需手动将测试标记为已修正。此外团队还能够在 Qodana Cloud 仪表板中监控进度。仪表板实时更新有关剩余代码问题的信息并比较不同 Qodana 运行之间的结果。Qodana 还能够将所选问题添加到基线中这也称为技术债务部分。 由此整个团队都可以在平台上看到相同的问题列表并监控进度 以下示例展示了运作方式。关键成果在短短几个月内失败测试的数量从 10,000 下降到零平均每天约有 175 个测试得到修正。 团队成功从源代码中移除了所有硬编码字符串文字整个 UI 也已无缝本地化没有意外的英语元素。借助 QodanaIntelliJ 团队减少了本地化过程中的手动步骤进而减少了人为错误的数量并使本地化构建更加可靠。 此外由于每 4 小时运行一次检查他们能够更快发现问题并防止小问题后续变成大问题。最后团队负责人使用 Qodana 作为单一可信来源可以轻松确保开发者修正分配给他们的问题。基于这些结果IntelliJ 团队在交付新功能或提升 IntelliJ IDEA 的性能时都将继续使用 Qodana 作为代码质量和资源规划平台。

相关新闻

这才是地图控件该有的样子/不依赖js和qml/纯古法原创自研/纯代码绘制/最新版含泪发布

这才是地图控件该有的样子/不依赖js和qml/纯古法原创自研/纯代码绘制/最新版含泪发布

一、前言说明 搞地图开发很多年,最初用的htmljs的方式,也就是网页版本的地图,比如百度地图高德地图,官方都提供了js的使用说明,在Qt这边套个浏览器控件加载网页,然后执行js交互即可,优点是快速…

2026/8/11 16:33:12 阅读更多 →
AI时代下的OPT单人研发模式研究与实践

AI时代下的OPT单人研发模式研究与实践

核心名词释义:OPT(One-Person Team)单人研发模式,是AI赋能下的新型研发范式,指研发人员依托AI工具、云原生基建与自动化工程底座,独立完成需求分析、架构设计、编码开发、测试验证、部署上线、运维迭代的全…

2026/8/11 16:32:12 阅读更多 →
【51单片机LCD1602测量频率显示】2023-6-2

【51单片机LCD1602测量频率显示】2023-6-2

缘由https://ask.csdn.net/questions/7956154/54223199 利用8位数码管显示来自信号发生器的方波频率,频率的测量范围是100到2000HZ,要求信号发生器的频率改变时,实验显示的频率也随之改变,求完整代码 #include "reg52.h&quo…

2026/8/11 16:32:12 阅读更多 →

最新新闻

MtSQL数据库安装与配置全指南

MtSQL数据库安装与配置全指南

1. MtSQL数据库安装全流程解析作为一款轻量级关系型数据库,MtSQL凭借其简洁高效的特性在中小型项目中广受欢迎。最近我在部署一个数据分析平台时再次用到了它,这里把完整的安装过程和踩坑经验整理成指南。无论你是第一次接触数据库的新手,还是…

2026/8/11 18:08:30 阅读更多 →
MySQL DATE类型详解:存储、操作与优化实践

MySQL DATE类型详解:存储、操作与优化实践

1. MySQL中的DATE类型概述在数据库设计中,日期时间类型的选择往往决定了数据存储的精确度和查询效率。MySQL提供了多种日期时间类型,其中DATE类型是最基础也最常用的日期存储格式。DATE类型在MySQL中占用3字节存储空间,格式为YYYY-MM-DD&…

2026/8/11 18:08:30 阅读更多 →
MySQL 8.0安装配置与性能优化指南

MySQL 8.0安装配置与性能优化指南

1. MySQL 8.0安装前的环境准备在开始安装MySQL 8.0之前,我们需要做好充分的准备工作。首先需要确认你的操作系统版本是否兼容MySQL 8.0。MySQL 8.0支持Windows 7及以上版本、macOS 10.13及以上版本,以及大多数主流Linux发行版(如Ubuntu 16.04…

2026/8/11 18:08:30 阅读更多 →
C++游戏引擎开发:核心架构与性能优化实践

C++游戏引擎开发:核心架构与性能优化实践

1. 为什么选择C开发游戏引擎?2003年我在大学机房第一次用VC6.0写俄罗斯方块时,就意识到C在游戏开发中的独特地位。当时那台老旧的奔腾电脑跑Java版方块卡成幻灯片,而C版本却能流畅运行。二十年后的今天,虽然出现了Unity、Unreal等…

2026/8/11 18:08:30 阅读更多 →
财务数仓 Claude AI Coding 应用实战

财务数仓 Claude AI Coding 应用实战

一、引言:财务数仓为什么需要AI?财务数仓的特殊性在电商数仓体系中,财务域是复杂度最高、容错率最低的领域。不仅因为财务对于数据准确性的要求高,也因为财务是横向域,与几乎所有的域都有数据交叉,因此对业…

2026/8/11 18:08:30 阅读更多 →
一篇文章弄懂Java8大基本数据类型(非常详细,简单易懂)

一篇文章弄懂Java8大基本数据类型(非常详细,简单易懂)

(第五为知识点里用到的一些知识点的讲解,可以先看五) 一.整数类型1.byte类型基本概念:专门用于处理单字节数据,空间占用为1个字节(8位二进制)取值范围:-128至127(一个字节由8位二进制组成&#…

2026/8/11 18:07:29 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →