翻譯 | KDAB CEO推薦:Qt開發、調試、診斷的十大工具

本文翻譯自:Modern Qt Development: The Top 10 Tools You Should Be Using

原文作者:Matthias Kalle Dalheimer,KDAB集團總裁兼首席執行官

校審:Richard Lin

 

爲什麼在工作中使用合適的工具非常重要?大家馬上會想到兩個原因:效率和成效。您不會看到建築工人用鞋底敲釘子,那爲什麼軟件開發者經常要手動查找bug或優化代碼呢?無疑這樣做的效率非常低,令人筋疲力竭,最終的結果也並不理想。

 

學習新工具總是需要花費時間 —— 那麼怎樣才能高效地分配您時間呢?接下來我將分享KADB最喜歡的而且值得學習的Qt開發工具。我們經常使用這些工具來幫助定位和修復bug,並解決困難的優化任務。如果您一直身處Qt開發的前沿,您可能知道許多類似的工具,但無論您的專業水平如何,我們相信您都能在這裏發現一些新東西。

 

GammaRay —— 自檢工具,能把Qt的框架添加到調試器中。

 

如果您因爲無休止的Qt框架內部調試而沮喪,那麼一定要嘗試一下這個工具。GammaRay深入理解大多數Qt核心組件,如QtQuick scene graphs、模型/視圖結構、QTextDocuments、信號/槽的行爲、焦點處理、GPU紋理、QWidget、狀態機等,它允許您在運行時以自然的方式觀察和編輯這些值。您可以以啓動或附加到已運行應用程序的方式調試應用(可以調試本地或遠程的應用程序)。

 

  • https://www.kdab.com/development-resources/qt-tools/gammaray/

  • https://www.kdab.com/gammaray-2-9-0-release/

 

Clazy —— 能理解Qt語義的編譯器插件

 

這是每個Qt開發者都需要掌握的訣竅。給clang添加 Clazy插件,您將得到Qt最佳優化的編譯時警告,包括未期的內存分配、API使用不當以及效率低下的構造。 Clazy 是一個提升您Qt代碼質量的好方法。最重要的是,它在不需要編寫任何代碼的情況下爲它發現的錯誤提供自動重構修復!

 

  • https://www.kdab.com/clazy-video/

  • https://www.kdab.com/clazy-results-visualizer-qt/

  • https://www.kdab.com/clazy-1-2-released/

 

現代的C++ —— 使用C+11/14/17優化的代碼

 

雖然C+11和C+14已經存在了一段時間,但是有許多舊的編碼習慣很難消除。許多開發者還沒有利用最新的C++語法,而這些新語法更高效、更容易理解和維護。現在您不需要成爲C++標準的專家,就能去進行細微的、卻能大幅提高您代碼質量的修改。下面的文章中我們將會介紹相關的關鍵特性,或者您也可以參加一、兩個培訓課程以瞭解實際技術內幕。

 

  • https://www.kdab.com/cpp-modernization-brochure/

 

Clang Tidy —— 助您實現C++代碼現代化的編譯工具

 

這是爲懶人設計的C++代碼現代化的工具。Clang Tidy是另一種基於Clang的工具,它能識別舊的、可以升級的C++語法。它標記出應該用新C+11或C+14來進行改進的地方,並且在許多情況下可以自動完成替換。這能提升您的生產力!

 

 

  • https://www.kdab.com/clang-tidy-part-1-modernize-source-code-using-c11c14/

  • https://www.kdab.com/clang-tidy-part-2-integrate-qmake-and-other-build-systems-using-bear/

     

 

HotSpot  —— 應用程序CPU性能的可視化工具

 

在優化方面,什麼也比不上分析器。但是讀取原始的性能日誌是一種熬煎,只適合於那些認爲zip包是一種正確管理源代碼方式的人們。HotSpot讀取Linux性能日誌,並讓您看到多個不同的視圖(調用者、時間線、自上而下、自下而上),以幫助您輕鬆地瞭解您正在消耗時間的位置。

 

  • https://www.kdab.com/hotspot-video/

  • https://www.kdab.com/hotspot-v1-1-0-adds-timeline-recording-features/

 

 

apitrace  —— 調試圖形API並提高其性能的一組工具

 

如果您正在編寫GUI應用程序,那麼分析器不會在C++代碼中停下來。您需要一種方法來查看您對OpenGL、Direct3D或DirectDraw的調用,以圖形方式查看這些調用的內容,並分析它們的性能。這就是 apitrace 的功能。它還可以重播一個記錄文件,允許您在看到需要改進的地方之後對性能進行比較和基準測試。

 

  • https://apitrace.github.io/

 

 

Kernel/System Profiler  —— 操作系統性能的可視化工具

 

有時,在應用程序中找不到性能問題,問題出在多進程交互中,隱藏在驅動程序棧中,或者是您調用操作系統的方式導致的。對於這種非常底層的調試,您必須有一個系統分析工具。它可能讓您感覺像殺雞用牛刀,但系統剖析器是一個非常寶貴的工具,用它可以找到其他工具發現不了的問題。

 

  • Linux:

           > https://www.kdab.com/slaying-latency-with-linux-kernel-tracepoints/
           > LTTng
           > TraceCompass

  • QNX Neutrino:

           >QNX System Profiler

     

Heaptrack  —— 查看應用程序內存使用情況的工具

 

有時候優化不是速度問題,而是內存問題。如果您想分析一下應用程序的內存使用情況,您會想看看這個。通過顯示應用程序的峯值內存使用量、內存泄漏的函數、最大的內存分配者和極大多數臨時分配的內存,您將能夠真正精準定位應用程序內存的使用情況,並研究如何最小化其內存消耗。

 

  • https://www.kdab.com/heaptrack-v1-1-0-release/

 

持續集成 (CI) —— 敏捷開發的構建系統

 

無論您是否使用敏捷開發,持續集成系統和單元測試精密配合作爲一種手段,都可以實實在在地提高您的軟件質量。不要費心地從頭開始創建您的CI構建系統,因爲有很多好用的工具可以助您發佈軟件的質量更上一層樓。

 

  • http://buildbot.net/

  • http://cruisecontrol.sourceforge.net/

  • https://jenkins.io/


QT Creator  – QT IDE

 

也許您認爲將Qt Creator包含在這個列表中是湊數,因爲它已經安裝在每個Qt開發者的桌面上。是的,但是您知道可以通過內置的QML性能分析器在QtQuick代碼中找到性能瓶頸嗎?您知道點擊Alt+Enter以獲取光標位置上所有重構選項的列表?以及其他用於查找符號引用、執行git diff或記錄宏以及許多其他超級有用的導航和編輯助手的快捷鍵嗎?只有您熟知它們,纔有可能一天用上十次。不要再做鼠標的奴隸了,把我們便攜的快捷鍵參考卡片打印出來,貼到您辦公座位的牆上。

 

  • http://doc.qt.io/qtcreator/creator-qml-performance-monitor.html

  • http://doc.qt.io/qtcreator/creator-editor-refactoring.html

  • https://www.kdab.com/development-resources/qtcreator/

 

這些就是我們提高Qt開發效率工具箱中的十大工具。別忘了還有一些是不能自動完成的,但有課程和定製培訓,比如有效代碼評審或最佳編碼實踐。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章