資料介紹
軟件工程師:我今天要完成xx行代碼的重構(gòu)
硬件工程師:這幾個(gè)器件能不改就不改,實(shí)在不行用獨(dú)家供貨
軟件的靈活性很高,可以根據(jù)需要進(jìn)行修改,即使是微不足道的修改,只要能讓代碼看起來比較“爽”,都可以隨時(shí)進(jìn)行調(diào)整。況且現(xiàn)在代碼的版本控制工具比較成熟,實(shí)在不行可以用時(shí)光機(jī)返回所有的修改。
硬件不一樣,有時(shí)候動一根線,或者layout的時(shí)候動了一點(diǎn)位置,都可能導(dǎ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í)常要面對新的東西,隨著年齡的增長會顯得力不從心,于是就有了程序員吃青春飯的說法。同時(shí),由于軟件的靈活性,需求往往是變化多端的,即使是在同樣的框架下,面對各種各樣的需求也有可能遇到很多坑。
相對軟件行業(yè),硬件的變化算是比較小的,雖然性能可能在不斷提高,但更新的速度和更新的范圍往往是較小的。經(jīng)常是用著100年前的原理,加上20年前的技術(shù),改一改實(shí)現(xiàn)新的需求。因此有了硬件人員的經(jīng)驗(yàn)論,當(dāng)他對需要的一些器件了如指掌的時(shí)候,制定方案或者定位問題都是完全可控的,而這些器件在他有生之年可能都不會有突飛猛進(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ù)雜度。
硬件面對的復(fù)雜度從某種程度上說是有限的,也就這么幾個(gè)器件,遇到問題順藤摸瓜就行了,大不了還有定位的必殺技——“替代法”,每個(gè)器件換一遍,大概就能找到問題所在了。軟件面對的復(fù)雜度相對較大,如果涉及到操作系統(tǒng)甚至還需要hack操作系統(tǒng),如果幾個(gè)模塊是由多個(gè)工程師開發(fā)的,模塊之間的耦合度又較高,定位問題顯得心有余而力不足。
軟件工程師:我的代碼是一顆樹,我要每天去耕耘
硬件工程師:我的方案是一個(gè)平臺,以后的需求就在這個(gè)平臺上面改一下就好了
“平臺化”對雙方來說看起來都是非常不錯的,面對新的需求只要在上面修改一下就好了,領(lǐng)導(dǎo)尤其喜歡這種理想狀態(tài),可以作為管理績效的體現(xiàn)。根據(jù)上面說明的復(fù)雜度和需求變化的程度而言,軟件的平臺化往往只是個(gè)開始,就像是栽下了一顆樹苗,后面的路還很長。這其中發(fā)揮比較重要作用的往往是軟件工程師本身,而不是硬盤里面的那些可能不成熟的代碼。
軟件工程師:項(xiàng)目節(jié)點(diǎn)要到了,實(shí)在不行我先發(fā)布一個(gè)beta版本
硬件工程師:項(xiàng)目節(jié)點(diǎn)要到了,實(shí)在不行只能延期了,爭取后面不再修改
iPhone 每一個(gè)機(jī)型的升級需要一兩年的時(shí)間,而iOS卻似乎每個(gè)月都在更新。對于互聯(lián)網(wǎng)行業(yè)的軟件尤其如此,似乎每時(shí)每刻都在升級,像google的很多產(chǎn)品一直處在beta的版本,有的甚至生命周期都結(jié)束了,都還掛著beta的標(biāo)簽。升級成本和開發(fā)周期的不一樣,使得雙方面對項(xiàng)目時(shí)間點(diǎn)的態(tài)度會有所不同。
軟件工程師:在我那邊還好好的,怎么到你這邊就不行了
硬件工程師:這個(gè)現(xiàn)象也是可以解釋的,可能是米勒電容/寄生電感/xxx的影響
程序運(yùn)行起來之后一般都是很老實(shí)的(不老實(shí)會被狗咬死),CPU 忠實(shí)的運(yùn)行著每一條指令,雖然在它的世界里面只有0和1,但絕不會出現(xiàn)1+1不等于2的情況。雖然很有可能是程序員自己沒有考慮到的場景,但他常常會找運(yùn)行環(huán)境或者操作方面的“借口”。
硬件系統(tǒng)不一樣,一樣的布局布線,也有可能因?yàn)槠骷g的微小差異導(dǎo)致運(yùn)行的問題,而器件本身不是完全理想的,經(jīng)常會出現(xiàn)1+1=2.1的情況。因此硬件工程師需要保持對這些微小差異的敏感度,去解釋這個(gè)混沌的世界。
軟件工程師:再安排一次檢視,想想看還有沒有什么場景可能導(dǎo)致問題
硬件工程師:再多做幾個(gè)模塊,確保方案的可靠性
測試不管對軟件和硬件來說都是有效的可靠性保障,但測試的理念還是有不一樣的地方。硬件測試對重復(fù)要求較高,很多器件可能跑著跑著自己就悲劇了,比如電解電容在高溫環(huán)境下一段時(shí)間后電解液減小的較多。因此對同一個(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è)自動夜燈
- 一個(gè)脈搏血氧計(jì)的設(shè)計(jì)示例資料下載
- 6個(gè)方面。嵌入式的硬件構(gòu)架資料下載
- 優(yōu)秀的硬件工程師設(shè)計(jì)一個(gè)產(chǎn)品會考慮哪些方面資料下載
- 設(shè)計(jì)硬件電路到拿到板調(diào)試,是怎樣一個(gè)過程資料下載
- 嵌入式硬件研發(fā)的8個(gè)階段資料下載
- 一個(gè)MCU項(xiàng)目問題的硬件軟件分析資料下載
- 做一個(gè)電線斷線斷點(diǎn)檢測器,原理是什么?資料下載
- 如何正確選擇一個(gè)ADC資料下載
- +:和-:符號,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加載動畫 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)證碼識別 7662次閱讀
- 如何用舊手機(jī)做一個(gè)個(gè)性十足的音箱? 3.1w次閱讀
- 如何用廢棄的電腦風(fēng)扇做一個(gè)磁攪? 6760次閱讀
- 對正極材料的檢測方法做一個(gè)初步的介紹 1w次閱讀
- 對有關(guān)IC設(shè)計(jì)流程的相關(guān)事宜做一個(gè)總結(jié) 1.5w次閱讀
下載排行
本周
- 1Keysight B1500A 半導(dǎo)體器件分析儀用戶手冊、說明書 (中文)
- 19.00 MB | 4次下載 | 免費(fèi)
- 2使用TL431設(shè)計(jì)電源
- 0.67 MB | 2次下載 | 免費(fèi)
- 3BT134雙向可控硅手冊
- 1.74 MB | 2次下載 | 1 積分
- 4一種新型高效率的服務(wù)器電源系統(tǒng)
- 0.85 MB | 1次下載 | 1 積分
- 5LabVIEW環(huán)形控件
- 0.01 MB | 1次下載 | 1 積分
- 6PR735,使用UCC28060的600W交錯式PFC轉(zhuǎn)換器
- 540.03KB | 1次下載 | 免費(fèi)
- 751單片機(jī)核心板原理圖
- 0.12 MB | 1次下載 | 5 積分
- 8BP2879DB支持調(diào)光調(diào)滅的非隔離低 PF LED 驅(qū)動器
- 1.44 MB | 1次下載 | 免費(fèi)
本月
- 1開關(guān)電源設(shè)計(jì)原理手冊
- 1.83 MB | 54次下載 | 免費(fèi)
- 2FS5080E 5V升壓充電兩串鋰電池充電管理IC中文手冊
- 8.45 MB | 23次下載 | 免費(fèi)
- 3DMT0660數(shù)字萬用表產(chǎn)品說明書
- 0.70 MB | 13次下載 | 免費(fèi)
- 4UC3842/3/4/5電源管理芯片中文手冊
- 1.75 MB | 12次下載 | 免費(fèi)
- 5ST7789V2單芯片控制器/驅(qū)動器英文手冊
- 3.07 MB | 11次下載 | 1 積分
- 6TPS54202H降壓轉(zhuǎn)換器評估模塊用戶指南
- 1.02MB | 8次下載 | 免費(fèi)
- 7STM32F101x8/STM32F101xB手冊
- 1.69 MB | 8次下載 | 1 積分
- 8基于MSP430FR6043的超聲波氣體流量計(jì)快速入門指南
- 2.26MB | 7次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評論
查看更多