2018-11-19 14:05:25分類:硬件開發6995
軟件硬件開發工程師其實有非常多的相同的特質,尤其作為有著工程師這個標簽的人,共同點還是相當多的。這里就從這些共同點里面挑挑刺兒,看看這兩種類型的工程師里面有著什么樣的思維不同點,盡量不帶褒貶色彩。
軟件工程師:我今天要完成xx行代碼的重構
硬件工程師:這幾個器件能不改就不改,實在不行用獨家供貨
軟件的靈活性很高,可以根據需要進行修改,即使是微不足道的修改,只要能讓代碼看起來比較“爽”,都可以隨時進行調整。況且現在代碼的版本控制工具比較成熟,實在不行可以用時光機返回所有的修改。
硬件不一樣,有時候動一根線,或者layout的時候動了一點位置都可能導致信號產生比較大的噪聲或者異常。每一個器件的修改也是慎之又慎,需要一系列替代測試和可靠性測試,即使是在風險可控的條件下,也要考慮投入產出比。相關文章:《硬件開發平臺開發一款智能鎖app需要多少錢?》
軟件工程師:有一個新的需求,我們要考慮一下實現方案
硬件工程師:有一個新的需求,我們看能不能在原來的方案上改一改
軟件行業日新月異,有各種各樣的語言、框架和實現方式,程序員的經驗可以讓他們更快的學習,但因為時常要面對新的東西,隨著年齡的增長會顯得力不從心,于是就有了程序員是青春飯的說法。同時,由于軟件的靈活性,需求往往是變化多端的,即使是在同樣的框架下,面對各種各樣的需求也有可能遇到很多坑。
相對軟件行業,硬件的變化算是比較小的,雖然性能可能在不斷提高,但更新的速度和更新的范圍往往是較小的。經常是用著100年前的原理,加上20年前的技術,改一改實現新的需求。因此有了硬件人員的經驗論,當他對需要的一些器件了如指掌的時候,制定方案或者定位問題都是完全可控的,而這些器件在他有生之年可能都不會有突飛猛進的變革了,依靠之前積累的經驗就可以讓他游刃有余。
軟件工程師:It works!! 好吧,就這樣搞定吧。
硬件工程師:換了一個電容就可以了,不科學阿,我得找下是什么原因
遇到問題的時候,硬件工程師比較傾向于“根因分析”,所有現象必須要有個解釋,這樣的話可以減小問題重犯的概率。如果問題不徹底解決,往往代價是很高的。軟件工程師往往覺得問題解決了就是OK的,后面還有一堆的需求和變化需要處理,有時間再去分析一下。這里不一定是責任心的問題,一個原因是因為再次遇到問題的代價不一樣,另外有時候是因為需要管理的復雜度。
硬件面對的復雜度從某種程度上說是有限的,也就這么幾個器件,遇到問題順藤摸瓜就行了,大不了還有定位的必殺技——“替代法”,每個器件換一遍,大概就能找到問題所在了。軟件面對的復雜度相對較大,如果涉及到操作系統甚至還需要hack操作系統,如果幾個模塊是由多個工程師開發的,模塊之間的耦合度又較高,定位問題顯得心有余而力不足。
軟件工程師:我的代碼是一顆樹,我要每天去耕耘
硬件工程師:我的方案是一個平臺,以后的需求就在這個平臺上面改一下就好了
“平臺化”對雙方來說看起來都是非常不錯的,面對新的需求只要在上面修改一下就好了,領導尤其喜歡這種理想狀態,可以作為管理績效的體現。根據上面說明的復雜度和需求變化的程度而言,軟件的平臺化往往只是個開始,就像是栽下了一顆樹苗,后面的路還很長。這其中發揮比較重要作用的往往是軟件工程師本身,而不是硬盤里面的那些可能不成熟的代碼。
軟件工程師:項目節點要到了,實在不行我先發布一個beta版本
硬件工程師:項目節點要到了,實在不行只能延期了,爭取后面不再修改
iPhone 每一個機型的升級需要一兩年的時間,而IOS卻似乎每個月都在更新。對于互聯網行業的軟件尤其如此,似乎每時每刻都在升級,像google的很多產品一直處在beta的版本,有的甚至生命周期都結束了,都還掛著beta的標簽。升級成本和開發周期的不一樣,使得雙方面對項目時間點的態度會有所不同。
不管SWE和HWE有多少差異,他們都在通過自己努力在一點一點改變著這個世界。也希望自己能在若干年之后,還能自豪的稱自己為程序員,一個略懂硬件的碼農。
啟動一個硬件開發項目,原始的推動力會來自于很多方面,比如市場的需要,基于整個系統架構的需要,應用軟件部門的功能實現需要,提高系統某方面能力的需要等等,所以作為一個硬件系統的設計者,要主動的去了解各個方面的需求,并且綜合起來,提出最合適的硬件解決方案。
2019-03-12
智能硬件是繼智能手機之后的一個科技概念,通過軟硬件結合的方式,對傳統設備進行改造,進而讓其擁有智能化的功能。而智能硬件移動應用則是軟件,通過應用連接智能硬件,操作簡單,開發簡便,各式應用層出不窮。智能硬件開發包括智能家居、智能手機、智能電視開發等領域。所以智能硬件開發嚴格上屬于物聯網行業的研發。
2019-03-04
單片機是一種集成電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、多種I/O口和中斷系統等功能集成到一塊硅片上構成的一個小而完善的微型計算機系統。單片機硬件開發包含:1、系統擴展,即單片機內部的功能單元不能滿足應用系統的要求時,須在片外進行擴展,選擇適當的芯片,設計相應的電路;系統的配置,即按照系統功能要求配置外圍設備,要設計合適的接口電路。
2019-03-04