女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式分享
[導(dǎo)讀]幾乎我見(jiàn)過(guò)的每一個(gè)程序員都想寫(xiě)一個(gè)堅(jiān)如磐石的軟件。你對(duì)自己的發(fā)展感到驕傲,如果你的工作是編寫(xiě)軟件,你希望軟件能夠運(yùn)行。我從來(lái)沒(méi)有見(jiàn)過(guò)任何人在項(xiàng)目開(kāi)始時(shí)說(shuō)過(guò),"讓我們寫(xiě)出人類(lèi)所知道的最糟糕的,緊密耦合的,昂貴的代碼。我們都想編寫(xiě)好的代碼,使我們的產(chǎn)品無(wú)縫地工作,并贏得我們的贊揚(yáng),或至少我們的老板。不幸的是,編寫(xiě)嵌入式軟件往往會(huì)變成一個(gè)充滿(mǎn)了bug、漏洞和其他令人毛骨悚然的東西的泥沼。所以,讓我們打破鏈條吧!這篇文章將討論構(gòu)建堅(jiān)固的嵌入式軟件的五個(gè)基本技巧和技巧,我發(fā)現(xiàn)這些技巧和技巧有利于我的客戶(hù)、同事、學(xué)生、我自己,希望還有你。

幾乎我見(jiàn)過(guò)的每一個(gè)程序員都想寫(xiě)一個(gè)堅(jiān)如磐石的軟件。你對(duì)自己的發(fā)展感到驕傲,如果你的工作是編寫(xiě)軟件,你希望軟件能夠運(yùn)行。我從來(lái)沒(méi)有見(jiàn)過(guò)任何人在項(xiàng)目開(kāi)始時(shí)說(shuō)過(guò),"讓我們寫(xiě)出人類(lèi)所知道的最糟糕的,緊密耦合的,昂貴的代碼"。我們都想編寫(xiě)好的代碼,使我們的產(chǎn)品無(wú)縫地工作,并贏得我們的贊揚(yáng),或至少我們的老板。不幸的是,編寫(xiě)嵌入式軟件往往會(huì)變成一個(gè)充滿(mǎn)了bug、漏洞和其他令人毛骨悚然的東西的泥沼。所以,讓我們打破鏈條吧!這篇文章將討論構(gòu)建堅(jiān)固的嵌入式軟件的五個(gè)基本技巧和技巧,我發(fā)現(xiàn)這些技巧和技巧有利于我的客戶(hù)、同事、學(xué)生、我自己,希望還有你。

技巧1--讓你的產(chǎn)品及早且經(jīng)常地落入客戶(hù)的手中。

你可能會(huì)想知道什么東西能讓你的客戶(hù)提前拿到產(chǎn)品,并且經(jīng)常與堅(jiān)固的嵌入式軟件有關(guān)。最后,你的客戶(hù)會(huì)決定你的產(chǎn)品是否堅(jiān)固。如果你在沒(méi)有你的客戶(hù)的情況下,把你所有令人敬畏的、優(yōu)雅的、改變世界的代碼寫(xiě)在一個(gè)倉(cāng)庫(kù)里,你將會(huì)被一個(gè)突然的覺(jué)醒。

現(xiàn)在許多團(tuán)隊(duì)開(kāi)始在沒(méi)有實(shí)際需求的情況下開(kāi)發(fā)他們的產(chǎn)品。消費(fèi)者通常不知道他們想要什么,直到他們觸摸、感覺(jué)和玩一種產(chǎn)品。因此,如果開(kāi)發(fā)人員不與客戶(hù)密切合作,他們就可以隨意或構(gòu)建他們認(rèn)為客戶(hù)需要的東西。即使一個(gè)團(tuán)隊(duì)足夠幸運(yùn)地?fù)碛行枨?這并不意味著客戶(hù)實(shí)際上知道他們想要什么。他們常常以為自己知道,但經(jīng)常改變主意。我不知道你怎么樣,但是盡管我有很高的學(xué)位和勤奮的工作,客戶(hù)還是經(jīng)常給我驚喜。獲得客戶(hù)反饋是至關(guān)重要的,我知道這聽(tīng)起來(lái)很靈活,但也許那些家伙畢竟在做什么。

在我早期的咨詢(xún)生涯中,我有一個(gè)發(fā)展了月球屋頂?shù)目蛻?hù)。他們需要幫助系統(tǒng)測(cè)試他們的產(chǎn)品,以確保他們的固件充分工作。一個(gè)驕傲的工程師把他們的原型帶出來(lái),給我看了所有的鐘和口哨,以及它的偉大性。作為顧客,我做的第一件事就是同時(shí)按兩個(gè)按鈕。系統(tǒng)失控了。在震驚的表情變成憤怒之后,他問(wèn):"誰(shuí)會(huì)同時(shí)按兩個(gè)按鈕?""。顯然,我和任何其他惡作劇的顧客,想知道如果我同時(shí)按下這兩個(gè)按鈕會(huì)發(fā)生什么!你只是不知道什么或如何使用一個(gè)產(chǎn)品,直到客戶(hù),不設(shè)計(jì)它的人,掌握它。

技巧2-利用和使用現(xiàn)代測(cè)試技術(shù)

構(gòu)建堅(jiān)固的軟件的關(guān)鍵是利用現(xiàn)代測(cè)試技術(shù)來(lái)提高代碼的健壯性。在當(dāng)今的行業(yè)中,人們正在大力推動(dòng)嵌入式團(tuán)隊(duì)采用開(kāi)發(fā)計(jì)劃和CI/CD等工具。這些方法和工具能夠在小型單元(單元測(cè)試)、多個(gè)模塊(集成測(cè)試)和系統(tǒng)一級(jí)(系統(tǒng)測(cè)試)中測(cè)試軟件,以及許多其他可能的測(cè)試。測(cè)試使團(tuán)隊(duì)能夠在特定的、受控制的條件下發(fā)現(xiàn)他們的軟件存在的問(wèn)題。結(jié)果是一個(gè)更加健壯的軟件系統(tǒng)!

埃德斯格·迪杰斯特拉曾經(jīng)說(shuō)過(guò):"測(cè)試只能證明存在錯(cuò)誤,而不能證明沒(méi)有錯(cuò)誤。"明智的智慧應(yīng)該提醒你,構(gòu)建健壯的軟件不僅需要測(cè)試。采用單元測(cè)試和CI/CD可以很有吸引力地顯示您有100%的代碼覆蓋,您的系統(tǒng)是堅(jiān)固的。不幸的是,這種想法是個(gè)陷阱!是的,您必須采用現(xiàn)代測(cè)試技術(shù)來(lái)提高您的代碼質(zhì)量,測(cè)試您的系統(tǒng),并提高其健壯性。然而,您還需要采取額外的行動(dòng),例如執(zhí)行代碼評(píng)審、利用對(duì)編程、體系結(jié)構(gòu)性能和分析、度量監(jiān)控等等。

技巧3-應(yīng)用靜態(tài)代碼分析工具來(lái)識(shí)別潛在的錯(cuò)誤

嵌入式軟件開(kāi)發(fā)人員日常使用的編程語(yǔ)言通常沒(méi)有完全指定。有些構(gòu)造或行為沒(méi)有在語(yǔ)言標(biāo)準(zhǔn)中定義,而是編譯器定義的行為。例如,如果讓一個(gè)整數(shù)循環(huán)在C中滾動(dòng),會(huì)發(fā)生什么情況?你能得到什么價(jià)值?這取決于編譯器,因?yàn)镃標(biāo)準(zhǔn)沒(méi)有告訴你,所以編譯器供應(yīng)商決定了最佳的行動(dòng)方案。

靜態(tài)代碼分析是一個(gè)您必須利用的工具,以具有健壯的固件。靜態(tài)分析將幫助您識(shí)別代碼中的潛在錯(cuò)誤。靜態(tài)分析可以指出不推薦的特定構(gòu)造,檢查代碼是否符合編碼標(biāo)準(zhǔn),檢測(cè)漏洞,并提供代碼度量,僅舉幾個(gè)例子。我無(wú)法計(jì)算靜態(tài)分析工具在我的代碼出現(xiàn)潛在問(wèn)題時(shí),或在我允許復(fù)雜性進(jìn)入野草時(shí),抓住它的頻率。我無(wú)法強(qiáng)調(diào)設(shè)置靜態(tài)分析工具并將其納入正常的日常編碼和開(kāi)發(fā)流程的重要性。

技巧4-使用代碼分析工具來(lái)識(shí)別和優(yōu)化性能瓶頸

當(dāng)您考慮堅(jiān)如磐石的嵌入式軟件時(shí),您可能會(huì)考慮滿(mǎn)足客戶(hù)需求和沒(méi)有bug的軟件。然而,一個(gè)經(jīng)常被忽視的基本組成部分是系統(tǒng)的最佳運(yùn)行。響應(yīng)性可能和系統(tǒng)不崩潰或一些丑陋的錯(cuò)誤抬頭一樣重要。我非常喜歡使用分析工具來(lái)監(jiān)控和優(yōu)化產(chǎn)品的性能。有時(shí)候我做了一個(gè)簡(jiǎn)單的代碼更改,大大提高了CPU的利用率。

分析工具可以幫助您檢查任務(wù)的周期性、執(zhí)行時(shí)間、狀態(tài)機(jī)行為、內(nèi)部通信性能等等。你需要使用工具來(lái)幫助你想象你的系統(tǒng)的性能,并抓住那些讓你頭疼的小問(wèn)題。你不能依靠人類(lèi)系統(tǒng)的監(jiān)控來(lái)說(shuō)它是正確的。我不想說(shuō),但是我們無(wú)法捕捉和監(jiān)控我們的工具所能做到的一切!(至少不是實(shí)時(shí)的)。

技巧5-結(jié)合防御性編程技術(shù)來(lái)處理意外的輸入和場(chǎng)景

你可能是一個(gè)好的程序員或者管理者,在他們的團(tuán)隊(duì)中有好的程序員。然而,在所有的嵌入式系統(tǒng)代碼中,我仍然發(fā)現(xiàn)團(tuán)隊(duì)錯(cuò)過(guò)的最少的成果之一是驗(yàn)證他們的輸入和輸出。我知道,它是編程101的東西。然而,它似乎被許多開(kāi)發(fā)人員忽略了。我不確定開(kāi)發(fā)人員是不是太專(zhuān)注于編寫(xiě)盡可能少的代碼行,還是覺(jué)得驗(yàn)證在某種程度上膨脹了他們的代碼。如果您想編寫(xiě)堅(jiān)如磐石的嵌入式軟件,您必須使用基本的防御性編程技術(shù)來(lái)處理您可能無(wú)法預(yù)料的意外輸入和場(chǎng)景。

一個(gè)簡(jiǎn)單的例子可能是檢查函數(shù)中接收的參數(shù)是否在預(yù)期范圍之內(nèi)。另一種可能是假設(shè)內(nèi)存損壞可能在循環(huán)中發(fā)生,并將其等于值(==在C++中)改變?yōu)橐粋€(gè)比或大的等號(hào)(&tt;=)。健壯的軟件并不是通過(guò)宏偉的建筑細(xì)節(jié)或巧妙、優(yōu)雅的代碼編寫(xiě)來(lái)實(shí)現(xiàn)的。相反,它是通過(guò)謹(jǐn)慎和近乎偏執(zhí)地管理代碼的逐行細(xì)節(jié)來(lái)實(shí)現(xiàn)的。

結(jié)論

我們都想編寫(xiě)可靠的高質(zhì)量軟件。不幸的是,今天的大部分軟件都離它很遠(yuǎn)。別誤會(huì),我想情況在改善,但我們還有很長(zhǎng)的路要走。我們已經(jīng)探索了五個(gè)關(guān)鍵的技巧,希望你們本周能仔細(xì)考慮。您是否在您的開(kāi)發(fā)過(guò)程中使用了其中的每一個(gè)?你在注意細(xì)節(jié)嗎?你的客戶(hù)能提前拿到你的產(chǎn)品嗎?你會(huì)發(fā)現(xiàn),問(wèn)自己幾個(gè)簡(jiǎn)單的問(wèn)題,關(guān)于這些小貼士,你會(huì)發(fā)現(xiàn)你需要做的調(diào)整,以開(kāi)始編寫(xiě)和提供更堅(jiān)實(shí)的嵌入式軟件。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

瑞典烏普薩拉,2025年6月24日 — 全球嵌入式系統(tǒng)軟件解決方案領(lǐng)導(dǎo)者IAR正式發(fā)布適用于瑞薩RX和RL78系列微控制器的新版本開(kāi)發(fā)工具鏈:Renesas RX v5.20和RL78 v5.20。此次更新進(jìn)一步鞏固了I...

關(guān)鍵字: MCU 嵌入式軟件 工具鏈

為增進(jìn)大家對(duì)嵌入式軟件的認(rèn)識(shí),本文將對(duì)嵌入式軟件的發(fā)展以及分析嵌入式軟件問(wèn)題的方法予以介紹。

關(guān)鍵字: 嵌入式 指數(shù) 嵌入式軟件

為增進(jìn)大家對(duì)嵌入式軟件的認(rèn)識(shí),本文將對(duì)嵌入式軟件的開(kāi)發(fā)流程予以詳細(xì)介紹。

關(guān)鍵字: 嵌入式 指數(shù) 嵌入式軟件

為增進(jìn)大家對(duì)嵌入式軟件的認(rèn)識(shí),本文將對(duì)嵌入式軟件的特征、嵌入式軟件的分類(lèi)以及嵌入式軟件Vector予以介紹。

關(guān)鍵字: Vector 指數(shù) 嵌入式軟件

在嵌入式系統(tǒng)開(kāi)發(fā)中,硬件資源的限制和測(cè)試環(huán)境的搭建常常成為開(kāi)發(fā)者面臨的挑戰(zhàn)。QEMU(Quick Emulator)作為一款開(kāi)源的機(jī)器模擬器和虛擬化器,能夠在主機(jī)系統(tǒng)上模擬目標(biāo)硬件環(huán)境,為嵌入式軟件的仿真測(cè)試提供了強(qiáng)大的...

關(guān)鍵字: QEMU 嵌入式軟件 仿真

隨著汽車(chē)電子化程度的不斷提高,汽車(chē)嵌入式軟件的功能復(fù)雜性也在日益增長(zhǎng)。為了確保這些軟件在復(fù)雜多變的車(chē)載環(huán)境中能夠穩(wěn)定、可靠地運(yùn)行,功能安全(Functional Safety)成為了汽車(chē)軟件開(kāi)發(fā)過(guò)程中不可或缺的一環(huán)。IS...

關(guān)鍵字: ISO 26262 功能安全 嵌入式軟件

嵌入式軟件可編程邏輯控制器(PLC)是工業(yè)自動(dòng)化領(lǐng)域的核心設(shè)備,廣泛應(yīng)用于生產(chǎn)線控制、過(guò)程控制、運(yùn)動(dòng)控制等場(chǎng)景。隨著工業(yè)4.0和智能制造的發(fā)展,PLC控制器需要具備更高的實(shí)時(shí)性、可靠性和可擴(kuò)展性。本文將探討工業(yè)PLC控制...

關(guān)鍵字: PLC控制器 嵌入式軟件

嵌入式軟件開(kāi)發(fā)團(tuán)隊(duì)面臨的最大挑戰(zhàn)之一是,他們花費(fèi)太多時(shí)間來(lái)調(diào)試軟件。當(dāng)我與全球團(tuán)隊(duì)和工程師交談時(shí),在我參加的各種會(huì)議上,顯然,開(kāi)發(fā)人員平均將其40%的時(shí)間或更多時(shí)間用于調(diào)試軟件。

關(guān)鍵字: 嵌入式軟件 合同設(shè)計(jì)

開(kāi)發(fā)靈活且可擴(kuò)展的嵌入式軟件已成為產(chǎn)品開(kāi)發(fā)的重要方面。越來(lái)越多的公司不是開(kāi)發(fā)單個(gè)單片產(chǎn)品,而是開(kāi)發(fā)一個(gè)核心平臺(tái),從中可以創(chuàng)建幾個(gè)不同的產(chǎn)品線。在核心代碼中,有時(shí)會(huì)有所需的軟件行為未知,并且必須滿(mǎn)足特定產(chǎn)品需求。為了實(shí)現(xiàn)代...

關(guān)鍵字: 代碼靈活性 嵌入式軟件

軟件體系結(jié)構(gòu)是其組件中體現(xiàn)的系統(tǒng)的基本組織,彼此之間的關(guān)系以及環(huán)境的關(guān)系以及指導(dǎo)其設(shè)計(jì)和進(jìn)化的原則。軟件體系結(jié)構(gòu)并不是要?jiǎng)?chuàng)建一次并將其設(shè)置為石頭。相反,軟件體系結(jié)構(gòu)應(yīng)在整個(gè)產(chǎn)品的一生中發(fā)展和變化。多年來(lái),我聽(tīng)到工程師和經(jīng)...

關(guān)鍵字: 嵌入式軟件 軟件體系結(jié)構(gòu)
關(guān)閉