本文翻译自:Qt: The Top 10 You Be
原作者:
KDAB 集团总裁兼首席执行官。自 1996 年以来一直使用 Qt 进行开发,是 KDE 项目的创始成员。他撰写了许多书籍,包括《Qt 》和《with Qt》。
KDAB 是一家世界知名的软件咨询公司,专注于 Qt、C++ 以及跨桌面、嵌入式和移动平台的应用程序。
校对:林
为什么使用正确的工具来完成工作很重要?我立即想到两个原因:效率和效果。你看不到建筑工人用鞋底钉钉子,那么为什么软件开发人员经常必须手动查找错误或优化代码呢?毫无疑问,这样效率很低,很累,而且最终结果也不理想。
学习新工具总是需要时间 - 那么如何才能有效地利用时间呢?接下来,我们KADB将分享我们最喜欢的、值得学习的Qt开发工具。我们经常使用这些工具来帮助定位和修复错误并解决困难的优化任务。如果您一直处于 Qt 开发的最前沿,您可能知道许多类似的工具,但无论您的专业知识水平如何,我们都确信您会在这里找到新的东西。
——自测试工具,可以将Qt框架添加到调试器中。
如果您对 Qt 框架内无休止的调试感到沮丧,那么一定要尝试一下这个工具。深入了解大多数 Qt 核心组件,例如模型/视图结构、信号/槽行为、焦点处理、GPU 纹理、状态机等,这使您可以在运行时以自然的方式观察和编辑这些值。您可以通过启动应用程序或将其附加到正在运行的应用程序来调试应用程序(您可以本地或远程调试应用程序)。
—— 理解Qt语义的编译器插件
这是每个 Qt 开发人员都需要掌握的技巧。添加插件,您将获得 Qt 最佳优化的编译时警告,涉及意外内存分配、不正确的 API 使用和低效构造。这是提高 Qt 代码质量的好方法。最重要的是,它可以自动重构所发现的错误,而无需编写任何代码!
现代 C++ - 使用 C+11/14/17 优化代码
尽管C+11和C+14已经存在了一段时间,但仍有许多旧的编码习惯难以根除。许多开发人员尚未利用最新的 C++ 语法,该语法更高效且更易于理解和维护。现在,您无需成为 C++ 标准专家即可进行细微更改,从而显着提高代码质量。我们将在以下文章中介绍主要功能,或者您也可以参加一两个培训课程来了解该技术的内幕。
Tidy - 一个帮助您现代化 C++ 代码的编译工具
这是一个专为懒人设计的C++代码现代化工具。 Tidy 是另一个基于 C++ 的工具,它可以识别旧的、可升级的 C++ 语法。它标记了应使用新的 C+11 或 C+14 进行改进的区域,并且在许多情况下可以自动完成替换。这将提高您的生产力!
- 应用CPU性能可视化工具
在优化方面,没有什么比分析器更好的了。但阅读原始性能日志是一种考验,只适合那些相信 zip 包是管理源代码的正确方法的人。读取性能日志并让您查看多个不同的视图(调用者、时间线、自上而下、自下而上),以帮助您轻松了解您的时间都花在哪里。
- 一组用于调试图形 API 并提高其性能的工具
如果您正在编写 GUI 应用程序,分析器将不会停止在 C++ 代码中。您需要一种方法来查看对 、 或 的调用,以图形方式查看这些调用的内容,并分析它们的性能。这就是函数。它还可以重播日志文件,让您在看到需要改进的地方后对性能进行比较和基准测试。
/——操作系统性能可视化工具
有时,性能问题在应用程序中找不到,问题出在多进程交互中,隐藏在驱动程序堆栈中,或者由您调用操作系统的方式引起。对于这种非常低级的调试,您必须有一个系统分析工具。可能感觉有点大材小用,但 是一个非常宝贵的工具,它可以发现其他工具无法发现的问题。
QNX:
- 查看应用程序内存使用情况的工具
有时候优化不是速度问题,而是内存问题。如果您想分析应用程序的内存使用情况,您需要看看这个。通过显示应用程序的峰值内存使用情况、内存泄漏函数、最大的内存分配器以及绝大多数临时分配,您将能够真正查明应用程序的内存使用情况并研究如何最大限度地减少其内存消耗。 。
持续集成(CI)——敏捷开发的构建系统
无论您是否使用敏捷开发,持续集成系统与单元测试相结合都可以真正提高软件的质量。不必费心从头开始创建 CI 构建系统,因为有许多出色的工具可以帮助您将软件交付到下一个级别。
QT-QT集成开发环境
也许您认为 Qt 包含在这个列表中是一个包罗万象的事情,因为它已经安装在每个 Qt 开发人员的桌面上。是的,但是您知道您可以使用内置的 QML 分析器找到代码中的性能瓶颈吗?您知道如何按 Alt+ 来获取光标位置处所有重构选项的列表吗?还有其他用于查找符号引用、执行 git diff 或记录宏的快捷键,以及许多其他超级有用的导航和编辑助手?只有非常了解它们,您才有可能每天使用它们十次。别再成为鼠标的奴隶,打印我们的便携式快捷方式参考卡并将其贴在您工作的墙上。
这些是我们工具箱中提高 Qt 开发效率的十大工具。不要忘记,还有一些事情无法自动化,但有课程和定制培训,例如有效的代码审查或最佳编码实践。