尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
HarmonyOS 应用开发《掌上英语》第63篇:IDE 诊断工具——GetDiagnostics 在开发中的使用
IDE 诊断工具——GetDiagnostics 在开发中的使用一、代码质量的第一道防线在 HarmonyOS 应用开发中代码质量不仅关乎功能的正确性更关乎应用的性能和安全性。DevEco Studio 提供了强大的实时诊断工具——Linter代码检查器它能够在编码阶段就发现潜在的问题而不是等到编译或运行时才发现。GetDiagnostics 是 DevEco Studio 内置的诊断接口它能够实时获取当前项目的代码诊断结果包括错误、警告和信息。对于开发者而言理解诊断工具的原理和配置方法能够显著提升编码效率和代码质量。二、DevEco Studio 的实时诊断机制DevEco Studio 的 Linter 工作在按需诊断模式下文件保存时触发当开发者保存一个 .ets 文件时Linter 会自动对该文件进行诊断项目构建时触发在 Hvigor 构建过程中会执行完整的 Lint 检查手动触发开发者可以随时通过右键菜单或快捷键手动触发诊断诊断结果会显示在编辑器内联在代码中用波浪线标记问题鼠标悬停显示问题描述Problems 面板集中显示所有诊断结果支持按文件、严重级别过滤滚动条标记在编辑器右侧滚动条上显示问题位置标记三、code-linter.json5 配置详解在我们的项目中Linter 的配置在code-linter.json5文件中{ files: [ **/*.ets ], ignore: [ **/src/ohosTest/**/*, **/src/test/**/*, **/src/mock/**/*, **/node_modules/**/*, **/oh_modules/**/*, **/build/**/*, **/.preview/**/* ], ruleSet: [ plugin:performance/recommended, plugin:typescript-eslint/recommended ], rules: { security/no-unsafe-aes: error, security/no-unsafe-hash: error, security/no-unsafe-mac: warn, security/no-unsafe-dh: error, security/no-unsafe-dsa: error, security/no-unsafe-ecdsa: error, security/no-unsafe-rsa-encrypt: error, security/no-unsafe-rsa-sign: error, security/no-unsafe-rsa-key: error, security/no-unsafe-dsa-key: error, security/no-unsafe-dh-key: error, security/no-unsafe-3des: error } }配置字段解析files指定 Linter 检查的文件范围ignore排除不需要检查的目录。在我们的项目中测试代码ohosTest、test、构建产物build、依赖node_modules、oh_modules都被排除ruleSet使用的规则集。performance/recommended是性能相关的规则typescript-eslint/recommended是 TypeScript 规范规则rules自定义规则覆盖。项目的安全相关规则非常严格——大多数不安全密码学操作都被禁止四、安全规则的意义配置中的安全规则涵盖了密码学操作的各个方面规则级别说明no-unsafe-aeserror禁止不安全的 AES 配置no-unsafe-hasherror禁止不安全哈希算法no-unsafe-macwarn警告不安全 MAC 算法no-unsafe-dherror禁止不安全 Diffie-Hellman 参数no-unsafe-rsa-encrypterror禁止不安全 RSA 加密no-unsafe-ecdsaerror禁止不安全 ECDSA 签名no-unsafe-3deserror禁止使用 3DES 算法这些规则确保项目不会使用过时或不安全的加密算法。对于英语学习 App 来说虽然密码学操作不多可能仅在登录验证或支付模块中使用但一旦涉及就需要确保使用安全的算法。五、性能规则集的应用performance/recommended规则集是专门为 HarmonyOS 应用性能优化的过度渲染检测识别可能导致频繁重渲染的代码模式嵌套深度检测识别过深的组件嵌套ForEach 使用检测在数据量大时提示使用 LazyForEachBuilder 拆分建议建议将复杂组件拆分为 Builder这些规则实时运行在 DevEco Studio 中当开发者编写代码时如果触发了性能规则编辑器会立即给出警告。例如当在 List 中使用 ForEach 而非 LazyForEach 时Linter 会提示建议替换。六、Linter 与编译器的协作Linter 和 ArkTS 编译器是两条独立但互补的检查线Linter在编码阶段实时检查关注代码规范、安全、性能编译器在构建阶段检查关注语法正确性、类型安全两条线的关系是Linter 发现问题时只给出警告或建议不影响构建编译器发现问题时直接报错阻止构建。但在build-profile.json5中配置strictMode时strictMode: { caseSensitiveCheck: true, useNormalizedOHMUrl: true }某些 Linter 警告可以升级为构建错误强制开发者修复。七、在开发工作流中使用诊断工具推荐的开发工作流编码阶段关注编辑器的实时诊断提示立即修复红色波浪线问题提交前手动触发 Lint 检查Code → Inspect Code确保没有遗留的警告构建时Hvigor 会自动执行 Lint 检查构建失败时查看 Build 面板的详细输出常见操作AltEnter快速修复当前问题CtrlAltShiftL格式化代码右键文件 → Analyze → Inspect Code对整个文件进行完整检查八、总结DevEco Studio 的 GetDiagnostics 诊断工具为开发者提供了实时的代码质量反馈。从code-linter.json5的配置可以看到我们的项目既关注性能performance/recommended也关注安全一系列安全规则。安全规则全部设为 error 级别意味着任何不安全的密码学操作都会导致构建失败。性能规则集则在后台默默工作每当开发者写出可能影响性能的代码时给出提示。在 11 模块架构的复杂项目中Linter 是维持代码质量一致性的有效工具。
RELATED

相关推荐

从 CDS 元数据到 SAP Fiori 表格界面,UI 注解如何把业务模型变成可用页面

从 CDS 元数据到 SAP Fiori 表格界面,UI 注解如何把业务模型变成可用页面

最近在做 SAP Fiori elements 页面时,一个很常见的画面会反复出现。后端的 CDS 投影视图已经能够通过 OData 服务返回销售订单,字段也一个不少,可应用预览打开以后,页面却没有按照业务习惯组织起来。订单号没有处在醒目的位置,公司名称和金额的顺序不对,筛选栏缺少关键条…

📅 2026/8/22 16:51:35
HarmonyOS 应用开发《掌上英语》第62篇:Hvigor 编译错误排查指南——从日志到修复

HarmonyOS 应用开发《掌上英语》第62篇:Hvigor 编译错误排查指南——从日志到修复

Hvigor 编译错误排查指南——从日志到修复一、Hvigor 编译系统概述 Hvigor 是 HarmonyOS 应用的官方构建系统,它与 DevEco Studio 深度集成,处理项目从源码到 HAP/HAR 包的完整构建过程。在 11 模块架构的项目中,Hvigor 需要处理模块间的依赖…

📅 2026/8/22 16:51:35
Beyond Compare 5终极激活指南:5分钟快速解锁专业版完整教程

Beyond Compare 5终极激活指南:5分钟快速解锁专业版完整教程

Beyond Compare 5终极激活指南:5分钟快速解锁专业版完整教程 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare 5的30天试用期到期而烦恼吗?这款业界领…

📅 2026/9/8 23:47:03
MORE NEWS

更多资讯

📰

面试被问原理答不上来?3种exe电子书下载方案图解对比

面试被问原理答不上来?3种exe电子书下载方案图解对比 面试被问原理答不上来,尴尬吗?太尴尬了。很多后端或全栈同学在面试时,面对“如何实现一个高并发的电子书下载系统”或者“如何解析大型 exe…

📰

面试被问SSH原理卡壳?这份sshpass速查手册救急

面试被问SSH原理卡壳?这份sshpass速查手册救急 面试现场,面试官轻飘飘问一句“你平时怎么实现非交互式登录服务器?”你脑子瞬间空白,只记得用 ssh 命令,但一说到自动化脚本里怎么传密码,直接卡壳。这种尴尬太常见了,很多开发者以为…

📰

2026最新如何在图片上添加文字:从卡顿到毫秒级渲染实战

2026最新如何在图片上添加文字:从卡顿到毫秒级渲染实战 看了一堆教程还是不会写项目,卡在“图片加水印”这一步的人,我见得太多了。很多教程只给你一段 PIL 的 draw.text() ,跑是能跑,但一旦并发上量,服务器 CPU…

📰

3个全国中文核心期刊坑点, 搞定高频面试题

3个全国中文核心期刊坑点, 搞定高频面试题 看了一堆教程还是不会写项目?别慌,这不只是代码的问题。很多后端大佬在应对 高频面试题…

📰

会计要求源码深度剖析:手写实现避坑指南

会计要求源码深度剖析:手写实现避坑指南 上周三晚上十点半,我盯着 IDE 里的红色波浪线发呆。一个看似简单的“会计要求”模块,跑起来直接抛出一串 Stack Trace ,满屏的 NullPointerException 和…

📰

xseed保姆级教程:3步搞定水利项目,告别代码报错

xseed保姆级教程:3步搞定水利项目,告别代码报错 还在为看了一堆教程还是不会写项目而头疼吗?别急,这篇保姆级教程就是为你准备的。我们直接切入正题,用xseed这个工具,带你从零到一跑通一个完整的机器学习水利预测项目。…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬