Linux C++輕量級開發指南
- 2019 年 10 月 20 日
- 筆記
作為一名產品開發,一套順手的集成開發環境必不可少。大多數時候,開發經理將精力投入在產品需求分析上而忽視了研發品質甚至連基本的集成開發環境都沒有統一。當然,如果你們的項目僅僅需要部署在單一的環境中或沒有跨語言開發需求,通常這樣做還不會造成嚴重問題。可是一旦你需要面對一套相對複雜的系統,異構系統間的通訊等問題。在項目開始階段,統一各個部分的集成開發環境非常重要。我將通過一系列的文章向你介紹我在企業級開發工作中使用的解決方案。當然,這些都是可能都包含了強烈的個人特色,不見得完全適用於所有的企業,甚至有些觀點也值得商榷。只希望能夠起到一個拋磚引玉的作用,有興趣的小夥伴一起探討。
目前,我所擔任的工作主要包含了輕量化的桌面系統,瀏覽器端以及基於Linux系統的底層通訊開發。需要使用的語言包括Java、C++和JavaScript。沒有分散式和大數據的需求。需要開發底層通訊的原因主要是,我們有大量的數據是直接通過硬體設備來獲取,因此這部分的工作主要使用C++來完成,業務層考慮到部署和開發的效率偏重使用Java來實現,前段沒有太多的選擇JavaScript是不二之選。
首先闡述一下Java和C++這兩門語言的開發適應性問題。由於企業和個人定位的緣故,我對這兩門主流語言都有一定的開發經驗,遇見過各種奇葩需求也實現過各種神奇功能。相對來說,較小的底層功能模組處於運算效率的考量,我會偏向於使用C++來做。而針對業務系統,服務組件或需要超過10人以上的團隊來合作開發的項目Java依然是我的唯一選擇。無論是企業還是個人開源,你所面對的開發任務更傾向於特定需求而非科研,使用C++作為開發語言,無論你的開發經驗多麼豐富都勢必會陷入語言特性所造成的泥沼中無法自拔。相比較而言,犧牲一些機器性能所換來的是更快的迭代、更少的BUG和更豐富的生態。因此作為一名開發工程師,無論如何不要墨守成規,新技術或新語言可能只需要1行程式碼就能輕鬆解決你在5年前需要100行程式碼才能完成的任務,如果這時你還以前輩自居,那麼離被市場淘汰也就不遠了。
接下來言歸正傳,Linux下的C++開發工具很多,有人習慣用vim也有人會使用QtCreator或其他亂七八糟的IDE。而我更推薦使用微軟的開發神器Visual Studio Code,與其它的產品相比它足夠輕量級也更加靈活。唯一不太方便的是,用它開發基於Qt的產品不合適。不過我在前面已經闡述,介面端使用JavaScript才是更加合理的選擇。
安裝完成以後,你需要一個C++插件,這裡推薦微軟的官方版本:
完成以後就可以和你的小夥伴們開心的工作了。那麼,如何進行編譯和調試呢?其實vsc本身提供了配置文件來完成這些任務。不過我並不推薦你去學習它。我更建議你通過Makefile來完成這項傳統工作,因為這樣做會使得你的工程具備更廣泛的適應性。這也就是為什麼,很多人推薦在Linux下使用vim來作為開發工具的原因,不過直接使用vim,開發效率實在太低。
最後介紹一下如何調試。相信如果你在網上搜索Linux vsc debug幾個關鍵字,會跳出很多答案,不過這些都不是我喜歡的。我們使用vsc的初衷是使開發變得高效和簡單,任何多餘的配置都應該放棄。既然我們已經採用了make和Makefile作為我們的編譯工具,只需要將gdb作為編譯條件即可獲得調試版本。然後我們為vsc增加一個配置文件launch.json,具體生成的方法網上有。然後將“program”對應的值設置為Makefile文件中指定的生成名。
F5即可進行斷點調試。
最後提交程式碼的時候,只需要源碼文件和對應的Makefile即可。