當前位置: 華文問答 > 數位

該不該放棄嵌入式,微控制器這條路?

2020-02-09數位

拿過省電賽一等獎。從業7年,做過linux純軟體崗位,現在是一個小研發主管,來說說我的看法。

7年的工作經歷中最常見的經歷就是被計畫催進度,市場要是一旦有需求,計畫需要很快的就落地,這應該是最平常的遭遇了吧。那麽,天下武功唯快不破,7年下來我就一直在尋找怎麽樣讓開發的速度更快,因此我也不喜歡死磕底層,我就喜歡拿來一份成熟的開原始碼,改一改拿來合入到自己的計畫當中,這也是純軟行業非常常用的一種做法。我相信十幾個人一起維護,寫出來的一份開原始碼品質和穩定性會比我自己一個人寫的更好。

那麽做了幾年純軟崗位之後,再回到微控制器崗,我的開發思路和開發模式就完全不一樣了。做微控制器計畫的效率相比之前也快了很多。

開發思路上知道怎麽樣去抽象一個功能,怎麽樣去編寫容易使用的介面,怎麽樣去封裝這些功能模組。會用上一些設計模式,去分層,和物件導向的一些編程思想。這樣帶來的好處就是軟體與硬體可以基本解耦,那麽就可以實作程式碼的復用,沈澱出公司產品的一套基本功能的公共程式碼SDK,這個SDK作為git的子倉,放在在計畫的目錄中,這個倉庫所有開發人員都可以拉取,並且大家都會對它會不斷的更新叠代。那麽,需求的快速落地就有了一種最基本的方法。

開發模式上面,采用了與純軟一致的開發模式,使用一台高效能的linux編譯伺服器,所有的程式碼都在編譯伺服器上開發和編譯,拋棄整合式開發環境(keil ,iar等), 更好的與git, scons, Kconfig, gdb, 靜態檢查等工具結合,擁有了更加絲滑的編碼體驗,更加流暢的開發環境,哪怕是遠端辦公,開發人員也可以非常方便的進行遠端開發,原生的電腦不需要安裝復雜的編譯環境,也不用擔心keil商業license的問題,各種編譯的變量和細節都可以完全自己掌控,整體開發效率有40%以上的提升。

我們開發人員煩的不是做一個產品,寫一個功能。我們煩的是不斷的去做重復的功能,去偵錯屎山程式碼,在整合式開發環境的遮蔽下,對於出現底層問題的無力,我們煩的是一天天的長時間沈浸在文件和手冊之中,想寫程式碼,卻沒法寫,看著網上有那麽多開原始碼,卻沒有辦法為己所用的無力感。如果你做一個產品,程式碼60%都是Ai幫你寫的,實作需求就跟搭積木一樣容易,每個月還能掙個20-30k的,我想沒有人會撐不下去吧?

新開了一個號,抖音搜軟體思維,後續我會分享視訊