1、前言
作為一個軟體開發人員,除了程式能力素養方面外,還應該熟練地使用各種常用的輔助工具,所謂“工欲善其事,必先利其器”;通過這些工具能提升自己的專業素養,且在工作中選擇合適的工具可以起到事半功倍的效果。
1.1、目的
本文所寫的是介紹各種常用軟體,可以選擇通過合適的工具來提高我們的工作效率。
2、常用軟體
2.1、IDE
微控制器軟體開發常常使用 IDE(嵌入式整合開發環境),因為 IDE 軟體整合了編輯、編譯、下載、除錯等功能,在開發時十分便利,由於微控制器種類繁多,因此所用的 IDE 軟體也繁多,以下介紹常用的 IDE 和微控制器,如:
- KEIL4:51微控制器等
- MDK(KEIL5):STM32等ARM系列的微控制器
- IAR(for stm8/arm):STM8、STM32等ARM系列的微控制器、K60等飛思卡爾
- SPC5 Studio:ST公司新推出的SPC560/SPC570等系列微控制器
- CodeWarrior:M(S)PC5604等NXP(飛思卡爾)系列微控制器
- 其他
對所使用的IDE軟體進一步熟悉,熟練地使用相關IDE在軟體開發和軟硬體除錯時能夠解決很多事情,這裡不多說。
2.2、版本控制工具
版本控制軟體提供完備的版本管理功能,用於儲存、追蹤目錄(資料夾)和檔案的修改歷史,是軟體開發者的必備工具,是軟體公司的基礎設施。版本控制軟體的最高目標,是支援軟體公司的配置管理活動,追蹤多個版本的開發和維護活動,及時釋出軟體。
通俗來說,在實際的軟體開發過程中,通常會遇到實現某一個功能後或者想優化軟體程式碼時,都會將整個工程複製副本備份起來,避免軟體修改後出現問題,但是因為不知道改動了哪些地方而無法還原之前的軟體程式碼。
因此在軟體開發過程中,常常會有很多工程副本存在,但是副本一多,自己也不知道每個副本對應的狀態是什麼,也許有的人考慮到了,所以重新命名副本的時候都會有一些簡單描述用來記錄當前工程副本的狀態。
為什麼要使用版本控制工具呢?
軟體當前狀態的備份,即版本管理(可以版本回退)
幫助我們記錄和跟蹤專案中各檔案內容的修改變化(可以在同個工程目錄下操作)
提高程式碼質量;因為程式碼中有些改動沒有任何註釋時,通過版本記錄能查到,也可刪除無用程式碼
協作開發;多人同時開發時,如果通過副本的形式拷貝給其他人進行協同開發時,會遇到很多問題,因為不知道誰的版本是最新的
能夠減少工程佔用大小(這裡的大小指的是軟體及其副本佔用的硬碟大小,通過版本控制工具,可以減少佔用的硬碟大小)
版本控制工具有哪些?
- Git
- Git 是目前世界上最先進的分散式版本控制系統,使用 Git 和 Gitlab 搭建版本控制環境是現在網際網路公司最流行的版本控制方式(其中知名的是 Github,最大的開原始碼庫;Gitee,開源中國碼雲)
- Git 是一個免費的開源分散式版本控制系統,旨在快速高效地處理從小型到大型專案的所有事務
- Git 易於學習,佔用記憶體小,具有閃電般快速的效能
- 操作起來相對複雜(命令列的形式),但是通過使用 Git Gui工具,就能快速上手,但是自帶的Gui 工具不好用,可以使用第三方開發的,如 SourceTree(我經常使用的,因為還有及其方便的 gitflow 分支管理功能,建議初次使用 Git 的朋友可以不需要分支管理功能,因為剛使用的話理解起來比較困難,容易放棄),相關GUI工具的對比可參考幾款Git GUI客戶端工具
如下圖,這是我用 Git GUI 軟體 SourceTree 管理的程式碼,其中用了 gitflow 分支管理,如果不用的話,一條 master 分支就可以了,即圖譜中只存在一條藍線,代表每個版本(可以理解成一個副本)的相關記錄,在圖中可以看到穩定的兩個版本(標籤 V0.1.0 和 V1.0.0)檔案明顯不同
教程參考:Git 教程
- SVN
- 其他
- 如VSS、CVS等,因為沒接觸,所以不知道,有興趣的可以自行百度
2.3、檔案對比工具
我們常常會遇到一些檔案需要進行比較,特別是一些程式碼、文字、網頁或者是資料夾之間,我們非常需要一款工具可以清晰地分析出它們之間的全部差異,便於對其進行修改或參考,雖然能通過 Git 等版本管理工具也能看出差異,但是使用一款專業的檔案對比工具更方便,可使用的軟體有 程式碼比較軟體。
我推薦使用 Beyond Compare 軟體,用起來更方便,而且功能強大,但是這個軟體是要收費的(官方標準版+Win/Mac/Linux ¥259 永久),不過它有 30 天的評估期免費使用(評估期時間到期的話可以重置,網上有教程方法)。
2.4、程式碼閱讀神器
Source Insight 是一個程式編輯器和程式碼瀏覽器,程式碼編輯器的經典之作。SourceInsight 提供了最快速的對原始碼的導航和任何程式編輯器的源資訊,作為一個擁有成熟的 IDE 軟體來說,Source Insight 用來開發和除錯顯然沒有 IDE 方便,但是在閱讀原始碼方面,可謂是有過之而無不及。
當你用過source Insight看程式碼後或分析程式碼後,保證你再也不想用其它程式碼編輯器看程式碼了,它比一般程式碼閱讀器都要好用,強大,它擁有內建的對C/C++, C#和Java等程式的分析,支援幾乎所有的語言, 如C、C++、ASM、PAS、ASP、HTML等常見的。當然,除了 Source Insight 外,還有 VS code 軟體(免費)等,但是目前我沒有用過 VS code ,不作介紹,也是挺好使用的,看個人選擇。
2.5、文字編輯器
電腦自帶的文字編輯器,作為開發者來說,不太適合,因此需要專業的文字編輯器,如 UltraEdit(收費)、Notepad++ 等支援多種語法高亮等功能,選擇可參考 幾款好用的文字編輯器
UltraEdit 是一套功能強大的文字編輯器,可以編輯文字、十六進位制、ASCII碼,完全可以取代記事本(如果電腦配置足夠強大),內建英文單字檢查、C++及VB指令突顯,可同時編輯多個檔案,而且即使開啟很大的檔案速度也不會慢。
Notepad++ 是一款非常有特色的編輯器,軟體小巧高效,支援27種程式語言,通吃C,C++ ,Java ,C#, XML, HTML, PHP,JS 等。是開源軟體,可以免費使用,同時也支援各類流行的計算機程式語言。
2.6、搜尋工具
Everything 搜尋工具基於名稱實時定位檔案和目錄安裝檔案小巧、介面簡潔易用、快速檔案索引、快速檔案搜尋、極低資源佔用、輕鬆分享檔案索引和實時跟蹤更新等。
其介面簡潔,操作簡單,不用設定任何內容,啟動後即可立刻使用,還支援搜尋語法,正規表示式和命令列引數;
2.7、串列埠除錯助手
比較好用的串列埠除錯工具有SSCOM,MyDockligh,AccessPort 和 XCOM ;XCOM 是一個不錯的串列埠除錯軟體。
2.8、源格式化工具
在之前的嵌入式軟體開發之程式程式設計規範(四)中,在自己開發時能夠遵循該規則編寫程式碼,但是不能保證其他人也遵循這個,若需要閱讀他人的原始碼,原始碼風格很糟的情況下,簡直要人命,雖然可以自己調整程式碼風格,但是時間一長,也顯得十分疲憊;
Astyle 是一個開源的原始碼格式化工具軟體,通過輸入相關指令整合在 IDE 或者文字編輯器軟體中,作為一個指令碼自動格式話程式碼風格,十分方便。如下圖,隨便開啟一個糟糕的程式碼檔案,通過整合的 Astyle工具自動格式化程式碼風格(IAR、KEIL 等軟體也都能配置 Astyle 自定義工具,可自行百度,根據自己喜歡的風格格式化程式碼,我常用的是命令列選項是“ --style=allman -t -xV -C -f -p -H -k3 -y -xb -j -U %f”)。
2.9、註釋檔案生成工具
Doxygen 是一個程式的檔案產生工具,可將程式中的特定格式的註釋轉換成為說明檔案,在嵌入式軟體開發之程式程式設計規範(四)中提到過程式碼的註釋風格,符合該格式即可生成 html 檔案或者 chm 檔案。