資料介紹
軟件工程師:我今天要完成xx行代碼的重構(gòu)
硬件工程師:這幾個(gè)器件能不改就不改,實(shí)在不行用獨(dú)家供貨
軟件的靈活性很高,可以根據(jù)需要進(jìn)行修改,即使是微不足道的修改,只要能讓代碼看起來比較“爽”,都可以隨時(shí)進(jìn)行調(diào)整。況且現(xiàn)在代碼的版本控制工具比較成熟,實(shí)在不行可以用時(shí)光機(jī)返回所有的修改。
硬件不一樣,有時(shí)候動(dòng)一根線,或者layout的時(shí)候動(dòng)了一點(diǎn)位置,都可能導(dǎo)致信號(hào)產(chǎn)生比較大的噪聲或者異常。每一個(gè)器件的修改也是慎之又慎,需要一系列替代測試和可靠性測試,即使是在風(fēng)險(xiǎn)可控的條件下,也要考慮投入產(chǎn)出比。
軟件工程師:有一個(gè)新的需求,我們要考慮一下實(shí)現(xiàn)方案
硬件工程師:有一個(gè)新的需求,我們看能不能在原來的方案上改一改
軟件行業(yè)日新月異,有各種各樣的語言、框架和實(shí)現(xiàn)方式,程序員的經(jīng)驗(yàn)可以讓他們更快的學(xué)習(xí),但因?yàn)闀r(shí)常要面對(duì)新的東西,隨著年齡的增長會(huì)顯得力不從心,于是就有了程序員吃青春飯的說法。同時(shí),由于軟件的靈活性,需求往往是變化多端的,即使是在同樣的框架下,面對(duì)各種各樣的需求也有可能遇到很多坑。
相對(duì)軟件行業(yè),硬件的變化算是比較小的,雖然性能可能在不斷提高,但更新的速度和更新的范圍往往是較小的。經(jīng)常是用著100年前的原理,加上20年前的技術(shù),改一改實(shí)現(xiàn)新的需求。因此有了硬件人員的經(jīng)驗(yàn)論,當(dāng)他對(duì)需要的一些器件了如指掌的時(shí)候,制定方案或者定位問題都是完全可控的,而這些器件在他有生之年可能都不會(huì)有突飛猛進(jìn)的變革了,依靠之前積累的經(jīng)驗(yàn)就可以讓他游刃有余。
軟件工程師:It works!! 好吧,就這樣搞定吧。
硬件工程師:換了一個(gè)電容就可以了,不科學(xué)啊,我得找下是什么原因
遇到問題的時(shí)候,硬件工程師比較傾向于“根因分析”,所有現(xiàn)象必須要有個(gè)解釋,這樣的話可以減小問題重犯的概率。如果問題不徹底解決,往往代價(jià)是很高的。軟件工程師往往覺得問題解決了就是OK的,后面還有一堆的需求和變化需要處理,有時(shí)間再去分析一下。這里不一定是責(zé)任心的問題,一個(gè)原因是因?yàn)樵俅斡龅絾栴}的代價(jià)不一樣,另外有時(shí)候是因?yàn)樾枰芾淼膹?fù)雜度。
硬件面對(duì)的復(fù)雜度從某種程度上說是有限的,也就這么幾個(gè)器件,遇到問題順藤摸瓜就行了,大不了還有定位的必殺技——“替代法”,每個(gè)器件換一遍,大概就能找到問題所在了。軟件面對(duì)的復(fù)雜度相對(duì)較大,如果涉及到操作系統(tǒng)甚至還需要hack操作系統(tǒng),如果幾個(gè)模塊是由多個(gè)工程師開發(fā)的,模塊之間的耦合度又較高,定位問題顯得心有余而力不足。
軟件工程師:我的代碼是一顆樹,我要每天去耕耘
硬件工程師:我的方案是一個(gè)平臺(tái),以后的需求就在這個(gè)平臺(tái)上面改一下就好了
“平臺(tái)化”對(duì)雙方來說看起來都是非常不錯(cuò)的,面對(duì)新的需求只要在上面修改一下就好了,領(lǐng)導(dǎo)尤其喜歡這種理想狀態(tài),可以作為管理績效的體現(xiàn)。根據(jù)上面說明的復(fù)雜度和需求變化的程度而言,軟件的平臺(tái)化往往只是個(gè)開始,就像是栽下了一顆樹苗,后面的路還很長。這其中發(fā)揮比較重要作用的往往是軟件工程師本身,而不是硬盤里面的那些可能不成熟的代碼。
軟件工程師:項(xiàng)目節(jié)點(diǎn)要到了,實(shí)在不行我先發(fā)布一個(gè)beta版本
硬件工程師:項(xiàng)目節(jié)點(diǎn)要到了,實(shí)在不行只能延期了,爭取后面不再修改
iPhone 每一個(gè)機(jī)型的升級(jí)需要一兩年的時(shí)間,而iOS卻似乎每個(gè)月都在更新。對(duì)于互聯(lián)網(wǎng)行業(yè)的軟件尤其如此,似乎每時(shí)每刻都在升級(jí),像google的很多產(chǎn)品一直處在beta的版本,有的甚至生命周期都結(jié)束了,都還掛著beta的標(biāo)簽。升級(jí)成本和開發(fā)周期的不一樣,使得雙方面對(duì)項(xiàng)目時(shí)間點(diǎn)的態(tài)度會(huì)有所不同。
軟件工程師:在我那邊還好好的,怎么到你這邊就不行了
硬件工程師:這個(gè)現(xiàn)象也是可以解釋的,可能是米勒電容/寄生電感/xxx的影響
程序運(yùn)行起來之后一般都是很老實(shí)的(不老實(shí)會(huì)被狗咬死),CPU 忠實(shí)的運(yùn)行著每一條指令,雖然在它的世界里面只有0和1,但絕不會(huì)出現(xiàn)1+1不等于2的情況。雖然很有可能是程序員自己沒有考慮到的場景,但他常常會(huì)找運(yùn)行環(huán)境或者操作方面的“借口”。
硬件系統(tǒng)不一樣,一樣的布局布線,也有可能因?yàn)槠骷g的微小差異導(dǎo)致運(yùn)行的問題,而器件本身不是完全理想的,經(jīng)常會(huì)出現(xiàn)1+1=2.1的情況。因此硬件工程師需要保持對(duì)這些微小差異的敏感度,去解釋這個(gè)混沌的世界。
軟件工程師:再安排一次檢視,想想看還有沒有什么場景可能導(dǎo)致問題
硬件工程師:再多做幾個(gè)模塊,確保方案的可靠性
測試不管對(duì)軟件和硬件來說都是有效的可靠性保障,但測試的理念還是有不一樣的地方。硬件測試對(duì)重復(fù)要求較高,很多器件可能跑著跑著自己就悲劇了,比如電解電容在高溫環(huán)境下一段時(shí)間后電解液減小的較多。因此對(duì)同一個(gè)模塊的反復(fù)測試,或者同一種場景的反復(fù)測試是很常見的,極端情況就是所謂“高溫高濕”實(shí)驗(yàn),加速器件的老化。
而軟件系統(tǒng)由于其運(yùn)行的一致性,更多是考慮測試覆蓋度,盡量去覆蓋每一種場景,甚至每一行代碼。測試覆蓋不到的,就使用人海戰(zhàn)術(shù),通過人每一行代碼的檢視,去發(fā)現(xiàn)可能的問題。
結(jié) 語
不管軟件工程師和硬件工程師有多少差異,他們都在通過自己努力在一點(diǎn)一點(diǎn)改變著這個(gè)世界。也希望自己能在若干年之后,還能自豪的稱自己為程序員,一個(gè)略懂硬件的碼農(nóng)。
來源:嵌入式資訊精選
(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 做一個(gè)可以跟隨光線的機(jī)器人
- 用3行代碼做一個(gè)WebServer
- 用LDR做一個(gè)自動(dòng)夜燈
- 一個(gè)脈搏血氧計(jì)的設(shè)計(jì)示例資料下載
- 6個(gè)方面。嵌入式的硬件構(gòu)架資料下載
- 優(yōu)秀的硬件工程師設(shè)計(jì)一個(gè)產(chǎn)品會(huì)考慮哪些方面資料下載
- 設(shè)計(jì)硬件電路到拿到板調(diào)試,是怎樣一個(gè)過程資料下載
- 嵌入式硬件研發(fā)的8個(gè)階段資料下載
- 一個(gè)MCU項(xiàng)目問題的硬件軟件分析資料下載
- 做一個(gè)電線斷線斷點(diǎn)檢測器,原理是什么?資料下載
- 如何正確選擇一個(gè)ADC資料下載
- +:和-:符號(hào),Verilog標(biāo)準(zhǔn)文檔中的一個(gè)語法資料下載
- 16位CRC驗(yàn)證碼生成VI工具下載 54次下載
- 使用單片機(jī)做一個(gè)簡單的流水燈的程序和燒寫資料免費(fèi)下載
- 使用51單片機(jī)制作的做一個(gè)簡易時(shí)鐘程序免費(fèi)下載
- sim卡pin碼怎么設(shè)置 pin碼和puk碼有什么區(qū)別 3088次閱讀
- 如何用小安派-Eyes-S1做一個(gè)電子木魚? 808次閱讀
- 使用FPGA做一個(gè)ODrive 683次閱讀
- 鴻蒙上做一個(gè)loading加載動(dòng)畫 4185次閱讀
- 自做一個(gè)紅外控制裝置,控制家電很簡單 1706次閱讀
- 為鴻蒙小車做一個(gè)遙控器 936次閱讀
- 如何確定一個(gè)硬件加速應(yīng)用 504次閱讀
- 譯碼器:做一個(gè)簡單的六進(jìn)制技術(shù)電路 7746次閱讀
- 機(jī)器碼怎么改 1.6w次閱讀
- 詳細(xì)介紹RFID身份碼發(fā)射器硬件設(shè)計(jì)方案 685次閱讀
- 以一個(gè)真實(shí)網(wǎng)站的驗(yàn)證碼為例,實(shí)現(xiàn)了基于一下KNN的驗(yàn)證碼識(shí)別 7662次閱讀
- 如何用舊手機(jī)做一個(gè)個(gè)性十足的音箱? 3.1w次閱讀
- 如何用廢棄的電腦風(fēng)扇做一個(gè)磁攪? 6760次閱讀
- 對(duì)正極材料的檢測方法做一個(gè)初步的介紹 1w次閱讀
- 對(duì)有關(guān)IC設(shè)計(jì)流程的相關(guān)事宜做一個(gè)總結(jié) 1.5w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多