18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

代碼中藏幾個(gè)bug,讓自己無(wú)法替代?

嵌入式情報(bào)局 ? 來(lái)源:最后一個(gè)bug ? 2023-06-07 10:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

正文

在進(jìn)行嵌入式軟件開(kāi)發(fā)過(guò)程中,產(chǎn)生一些bug是難免的,工作年限比較長(zhǎng)的朋友應(yīng)該都會(huì)有這樣的感受:"有一定規(guī)模的軟件工程幾乎不可能沒(méi)有bug",軟件邏輯不可能那么天衣無(wú)縫,軟件測(cè)試也不會(huì)百密沒(méi)有一疏,代碼和bug就是一個(gè)此消彼長(zhǎng)、相互依賴(lài)的過(guò)程。

經(jīng)常聽(tīng)一些朋友說(shuō)道:"你寫(xiě)的代碼沒(méi)有bug,那你離丟飯碗不遠(yuǎn)了",又或者代碼中故意保留一些bug來(lái)增強(qiáng)自己在團(tuán)隊(duì)中的存在感,這樣就變得無(wú)可替代了,怎么說(shuō)呢,雖然這些觀(guān)點(diǎn)有些不道德,但也從側(cè)面透露出打工人的辛酸與無(wú)奈。

據(jù)觀(guān)察,大部分的工程師都是“七分寫(xiě),三分調(diào)”,當(dāng)然有些人該反駁了,"我怎么感覺(jué)是三分寫(xiě),七分調(diào)嗎?",如果你是這樣的狀態(tài)去編寫(xiě)和調(diào)試你的代碼,我至少會(huì)認(rèn)為你不專(zhuān)業(yè)或者編碼能力不夠,思維邏輯能力不行~ 一個(gè)經(jīng)驗(yàn)老道的軟件工程師調(diào)試代碼的時(shí)間都是非常短的,甚至可以一把搞定。

這樣看來(lái)對(duì)于一般工程師們,調(diào)試所占據(jù)的比例還是比較高的,當(dāng)然調(diào)試過(guò)程并不一定全是解決bug,特別是在嵌入式領(lǐng)域,一方面要適配硬件平臺(tái),甚至還要協(xié)助硬件排查硬件相關(guān)的問(wèn)題;另一方面才是前期編碼所導(dǎo)致的一些程序bug。

然而調(diào)試結(jié)束后,與bug之間的斗爭(zhēng)遠(yuǎn)遠(yuǎn)沒(méi)有結(jié)束,當(dāng)把第一個(gè)版本提交給測(cè)試,就意味著后面會(huì)有N個(gè)版本,測(cè)試過(guò)程中、用戶(hù)使用中、增加新需求時(shí)、修護(hù)原有bug時(shí)等等都可能引入新的bug。

所以bug基本上伴隨著你整個(gè)產(chǎn)品的迭代過(guò)程,這或許也是你作為一個(gè)程序員存在的理由。

這樣看來(lái),bug一直有,那產(chǎn)品是不是么辦法做好了?其實(shí)隨著bug的消滅,產(chǎn)品的“相對(duì)穩(wěn)定性”是不斷增強(qiáng)的,也就意味著以后的bug沒(méi)那么致命、沒(méi)那么容易出現(xiàn)、客戶(hù)的使用也并不會(huì)觸發(fā)等等。

如果這個(gè)時(shí)候你說(shuō)這個(gè)軟件沒(méi)有bug了,至少我不會(huì)相信。 既然大家都一直與bug糾纏,是不是應(yīng)該有一些經(jīng)驗(yàn)了呢?知己知彼才能百戰(zhàn)百勝。

所以bug菌這里把最近所想到的、非常有意義的部分記錄了一下分享給諸位:

1

else不處理

工作這么多年,我算是看過(guò)很多人寫(xiě)代碼了,經(jīng)常有同事寫(xiě)if容易丟掉else,其實(shí)這是一個(gè)非常不好的習(xí)慣。

如果在編碼的時(shí)候else部分不需要處理,倒無(wú)傷大雅,但else部分存在一些相關(guān)變量需要置位或者釋放等,而你沒(méi)有else處理,便會(huì)引入bug。

7eef0a6a-04d8-11ee-90ce-dac502259ad0.png

所以我的習(xí)慣就是即使else不需要處理也會(huì)保留下來(lái),并且在其中進(jìn)行相關(guān)注釋?zhuān)蕴嵝炎约哼@一塊是有邏輯處理的。

2

可視化日志

相信很多朋友都有看到過(guò)類(lèi)似的文章。比如什么串口打印日志技巧、easylog等開(kāi)源日志庫(kù)、離線(xiàn)日志記錄工具等等,這些東西都是圍繞著一個(gè)主題為程序員提供一個(gè)可視化的日志信息展示。

因?yàn)榇蟛糠秩说臅簯B(tài)大容量記憶能力是較弱的,這樣會(huì)導(dǎo)致我們對(duì)于一些邏輯中狀態(tài)的梳理處于劣勢(shì),特別是一些復(fù)雜的邏輯處理和梳理,使得最終編寫(xiě)的代碼容易引入邏輯問(wèn)題。

所以通過(guò)可視化日志的方式輔助程序員進(jìn)行程序相關(guān)狀態(tài)的記錄,從而便捷的定位問(wèn)題,解決bug。

7efaccba-04d8-11ee-90ce-dac502259ad0.png

3

bug與代碼要匹配

經(jīng)??蛻?hù)或者測(cè)試反饋一些bug,有些朋友收到就立馬一頭扎進(jìn)最新的代碼中進(jìn)行查證,其實(shí)這個(gè)問(wèn)題的出現(xiàn)是老版本上,導(dǎo)致自己忙前忙后還找不到問(wèn)題的根源,所以軟件的版本管控是非常重要的,這樣才能對(duì)癥下藥。

以前去過(guò)一家公司,軟件方面沒(méi)人管控,代碼隨便改,其中一個(gè)代碼改了10幾遍,版本號(hào)什么的一直不變,這樣的話(huà)一旦有問(wèn)題,這個(gè)真的是一件頭疼的事情。

4

常回頭看看

這種方式主要是應(yīng)對(duì)一些新增需求導(dǎo)致的軟件bug,以前版本運(yùn)行好幾個(gè)月都沒(méi)有問(wèn)題,而更新到新版本沒(méi)多久就產(chǎn)生了故障,此時(shí)需要做的就是對(duì)比之前的代碼來(lái)進(jìn)行修改點(diǎn)的查驗(yàn)和評(píng)估。

在軟件中比較模棱兩可的位置,多看看歷史版本對(duì)其的設(shè)計(jì)和所考慮的問(wèn)題,防止修改以后引入新的問(wèn)題。

7f03e0de-04d8-11ee-90ce-dac502259ad0.png

5

不要你認(rèn)為

以前非常有意思的一句話(huà):"我不要你認(rèn)為,我要我認(rèn)為",這句話(huà)確實(shí)有點(diǎn)狂妄自大之感,但是在"標(biāo)準(zhǔn)"面前就是這么現(xiàn)實(shí)。

經(jīng)常有朋友在解決bug的過(guò)程中抱著猜一猜的心態(tài),這樣是非常不專(zhuān)業(yè)的。

對(duì)于軟件運(yùn)行本身是沒(méi)有bug這一說(shuō)法的,程序都是按照你寫(xiě)的代碼序列在運(yùn)行著,之所以稱(chēng)軟件有bug,無(wú)非就是它沒(méi)有按照你想要的邏輯運(yùn)行罷了。

那這個(gè)問(wèn)題并不是在軟件本身而是你自身的編碼能力,如果對(duì)于你所寫(xiě)的代碼問(wèn)題都還是猜一猜的方式去解決問(wèn)題,那這個(gè)bug估計(jì)會(huì)越滾越大。

所以怎么算解決bug呢?一定要分析bug產(chǎn)生的前因后果,而不是“我把下面這行代碼屏蔽了問(wèn)題就不出現(xiàn)”等等不負(fù)責(zé)任的方式。

當(dāng)然有時(shí)候你有這樣的做法,我也能理解,畢竟有時(shí)候客戶(hù)可耗不起你分析的時(shí)間,設(shè)備停機(jī)1個(gè)小時(shí)10來(lái)w,你看著賠償就好了~

7f0cd4be-04d8-11ee-90ce-dac502259ad0.png

6

假如XXX會(huì)怎樣

寫(xiě)軟件的朋友,腦袋瓜子相對(duì)比較靈活,這都是多年訓(xùn)練的結(jié)果。

在設(shè)計(jì)軟件的時(shí)候應(yīng)該多做一些假設(shè),比如程序中等待兩個(gè)信號(hào)到來(lái)便會(huì)進(jìn)行相應(yīng)的處理,此時(shí)此刻你就需要考慮其中有一個(gè)信號(hào)遲遲沒(méi)有到來(lái)超時(shí)了程序會(huì)怎么樣?

或者兩個(gè)信號(hào)接收的順序是否會(huì)對(duì)程序造成影響之類(lèi)的問(wèn)題?

解析一些通信數(shù)據(jù),不可能每次都那么穩(wěn)定的傳輸,如果存在粘包、斷包、錯(cuò)誤包該如何處理等等?

當(dāng)你在寫(xiě)代碼的過(guò)程中面面俱到,這樣寫(xiě)出來(lái)的程序才會(huì)相對(duì)更加穩(wěn)定,當(dāng)然要做到這種境界也得一日之寒,需要不斷的積累和理解。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編碼器
    +關(guān)注

    關(guān)注

    45

    文章

    3876

    瀏覽量

    140821
  • 嵌入式軟件
    +關(guān)注

    關(guān)注

    4

    文章

    246

    瀏覽量

    27754

原文標(biāo)題:代碼中藏幾個(gè)bug,讓自己無(wú)法替代?

文章出處:【微信號(hào):嵌入式情報(bào)局,微信公眾號(hào):嵌入式情報(bào)局】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    與單片機(jī)Bug戰(zhàn)斗的那些經(jīng)歷

    ,以編程規(guī)范來(lái)打造程序的外觀(guān)。Bug已經(jīng)在高手面前無(wú)所遁形。所以Bug只是高手們用來(lái)愉悅的玩物。用來(lái)享受那一刻的征服感。為了菜鳥(niǎo)也能享受其中的快樂(lè),我分享一下自己的經(jīng)驗(yàn),
    發(fā)表于 11-05 17:09

    labview 前面板全屏后按鍵不能正常, 是labview的BUG還是代碼有問(wèn)題?

    用選項(xiàng)卡裝一個(gè)chart 圖,Chart圖自己適應(yīng)屏幕后,在同一選項(xiàng)卡里的按鍵按下后就不顯示。不知道是Labview本身的BUG,還是自己編寫(xiě)的程序有問(wèn)題,現(xiàn)符上圖片和
    發(fā)表于 11-27 10:00

    與單片機(jī)Bug戰(zhàn)斗的那些經(jīng)歷

    編程規(guī)范來(lái)打造程序的外觀(guān)。Bug已經(jīng)在高手面前無(wú)所遁形。所以Bug只是高手們用來(lái)愉悅的玩物。用來(lái)享受那一刻的征服感。為了菜鳥(niǎo)也能享受其中的快樂(lè),我分享一下自己的經(jīng)驗(yàn),
    發(fā)表于 12-20 17:15

    程序員最難忘的Bug調(diào)試經(jīng)歷

    無(wú)計(jì)可施的時(shí)候,唯一能做的是對(duì)代碼進(jìn)行分而治之,不斷地去排查錯(cuò)誤,消滅錯(cuò)誤,直到最后剩下非常小的一塊,再去慢慢研究問(wèn)題所在,可不幸往往就這樣,在排除了許多錯(cuò)誤以后,該Bug還是會(huì)出現(xiàn)。在這個(gè)過(guò)程
    發(fā)表于 01-21 15:08

    開(kāi)發(fā)者應(yīng)該知道的代碼查詢(xún)工具,杜絕代碼bug

    就得你的老板付費(fèi)了。他們也有一些知名的客戶(hù),如Adobe、甲骨文、惠普、美國(guó)銀行等等。IDE的重量級(jí)作品JetBrains推出了Upsource,這是一種多語(yǔ)言代碼審查工具。為什么通曉多國(guó)語(yǔ)言?下面
    發(fā)表于 07-25 15:04

    單片機(jī)開(kāi)發(fā)應(yīng)掌握的幾個(gè)基本技巧

    在單片機(jī)應(yīng)用開(kāi)發(fā),代碼的使用效率問(wèn)題、單片機(jī)抗干擾性和可靠性等問(wèn)題仍困擾著?,F(xiàn)歸納出單片機(jī)開(kāi)發(fā)應(yīng)掌握的幾個(gè)基本技巧。1、如何減少程序
    發(fā)表于 11-22 07:16

    iPhone 7再出新BUG 頻繁睡死無(wú)法重啟!

    最近蘋(píng)果比較鬧心,先是接連出現(xiàn)iPhone 6電池爆炸、iPhone 6S異常關(guān)機(jī)以及iPhone通話(huà)死機(jī)的情況。如今,iPhone 7又曝出頻繁睡死且無(wú)法重啟的新BUG
    發(fā)表于 12-19 10:16 ?3.8w次閱讀

    人工智能自己寫(xiě)代碼實(shí)現(xiàn)自我編程的顛覆性變革

    使用人工智能,計(jì)算機(jī)能夠理解一個(gè)軟件開(kāi)發(fā)項(xiàng)目從無(wú)到有的發(fā)展歷史過(guò)程的所有代碼,并立即改進(jìn)或者刪除單獨(dú)一行代碼bug,不管是用什么編程語(yǔ)
    發(fā)表于 07-11 09:57 ?2.8w次閱讀

    如何編寫(xiě)無(wú)法維護(hù)的代碼你的代碼沒(méi)有重構(gòu)的風(fēng)險(xiǎn)

    自己弄個(gè)鐵飯碗,因?yàn)槌四阒?,沒(méi)人能維護(hù)你寫(xiě)的代碼。再而且,如果你能練就秘籍的全部招式,那么連你自己無(wú)法維護(hù)你的
    的頭像 發(fā)表于 04-29 19:11 ?2932次閱讀

    iPhone、iPad崩潰的字符bug

    今天,EverythingApplePro 又發(fā)現(xiàn)了一個(gè)字符 bug,這個(gè) bug 被稱(chēng)為“黑點(diǎn)”,最初與 Android 平臺(tái)的 WhatsApp 有關(guān)系。社交網(wǎng)絡(luò)上開(kāi)始廣泛的傳播開(kāi)來(lái),在 iOS 平臺(tái)上,主要是黑點(diǎn)起作用,可以直接
    的頭像 發(fā)表于 05-22 08:39 ?4800次閱讀

    如何解決智能合約Bug

    智能合約在運(yùn)行過(guò)程中發(fā)現(xiàn)Bug或者代碼需要改進(jìn),這會(huì)影響整個(gè)系統(tǒng)的健壯性,如果發(fā)現(xiàn)無(wú)法解決的Bug,那就可能會(huì)造成嚴(yán)重的經(jīng)濟(jì)損失。
    發(fā)表于 10-25 10:55 ?2042次閱讀

    STM32F4系列芯片幾個(gè)無(wú)法啟動(dòng)的原因

    最近一年多開(kāi)始使用STM32F4系列芯片,在使用開(kāi)發(fā)板、評(píng)估板的時(shí)候一切正常,但當(dāng)自己做板子的時(shí)候事故頻發(fā),最典型的就是無(wú)法啟動(dòng)、無(wú)法刷機(jī),現(xiàn)將遇到的幾個(gè)
    的頭像 發(fā)表于 02-16 14:08 ?9262次閱讀
    STM32F4系列芯片<b class='flag-5'>幾個(gè)</b><b class='flag-5'>無(wú)法</b>啟動(dòng)的原因

    如何提高代碼性能、使代碼遠(yuǎn)離Bug、令代碼更優(yōu)雅

    背景:如何更規(guī)范化編寫(xiě)Java代碼的重要性想必毋需多言,其中最重要的幾點(diǎn)當(dāng)屬提高代碼性能、使代碼遠(yuǎn)離Bug、令代碼更優(yōu)雅。 一、MyBati
    的頭像 發(fā)表于 08-17 09:42 ?1772次閱讀

    代碼bug就是一個(gè)此消彼長(zhǎng)、相互依賴(lài)的過(guò)程

    經(jīng)常聽(tīng)一些朋友說(shuō)道:"你寫(xiě)的代碼沒(méi)有bug,那你離丟飯碗不遠(yuǎn)了",又或者代碼故意保留一些bug來(lái)增強(qiáng)
    的頭像 發(fā)表于 03-11 10:01 ?1450次閱讀

    自己編寫(xiě)函數(shù)示例代碼很難嗎?分享幾個(gè)示例!

    Q A 問(wèn): Arduino Uno的函數(shù)示例 我決定自己編寫(xiě)函數(shù)示例代碼,因?yàn)檫@應(yīng)該是Arduino的基本示例。網(wǎng)絡(luò)上確實(shí)有關(guān)于使用函數(shù)的文檔,但是,如果要嘗試使用代碼環(huán)境,則必須
    的頭像 發(fā)表于 11-16 16:05 ?1067次閱讀
    <b class='flag-5'>自己</b>編寫(xiě)函數(shù)示例<b class='flag-5'>代碼</b>很難嗎?分享<b class='flag-5'>幾個(gè)</b>示例!