RM新时代网站-首页

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

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

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

剛工作,代碼太多沒頭緒?怎么辦?

朱老師物聯(lián)網(wǎng)大講堂 ? 2024-03-25 08:09 ? 次閱讀


最近有位問:剛參加工作,看不懂代碼?f9c8b80a-ea3b-11ee-9118-92fbcf53809c.png

這篇文章我們就來簡單分享一些看代碼的經(jīng)驗(yàn)。

1、了解項(xiàng)目整體架構(gòu)

在閱讀嵌入式代碼之前,我們需要對(duì)項(xiàng)目整體架構(gòu)有一個(gè)基本的了解。

公司里的項(xiàng)目,一般在做項(xiàng)目之前,都會(huì)進(jìn)行系統(tǒng)設(shè)計(jì)、編寫一些文檔、畫一些系統(tǒng)框圖??梢韵日疫@些項(xiàng)目資料看一看。雖然我們后面可能只是負(fù)責(zé)某個(gè)模塊,但是還是很有必要先了解這個(gè)項(xiàng)目的總體框架。了解清楚整個(gè)項(xiàng)目有有哪些硬件模塊、哪些軟件模塊、有哪些組件、各個(gè)模塊之間的輸入輸出、各個(gè)模塊是如何協(xié)同工作、項(xiàng)目的主體業(yè)務(wù)是什么、主要功能有哪些等。

嵌入式代碼通常可以分解為幾個(gè)關(guān)鍵模塊,例如任務(wù)管理、內(nèi)存管理、通信協(xié)議等。將各個(gè)模塊分離出來,逐一閱讀和理解,可以更加清晰地掌握代碼的核心思想。

對(duì)項(xiàng)目整體架構(gòu)有一定了解之后,有助于我們更好地理解代碼中的邏輯。

2、熟悉通信部分代碼

項(xiàng)目里一般會(huì)劃分多個(gè)硬件/軟件模塊,這些模塊之間會(huì)進(jìn)行數(shù)據(jù)交互。

梳理清楚:

  • 使用了哪些硬件通信接口?例如I2C、SPI、UART等。
  • 線程通信?
  • 進(jìn)程間通信?
  • 網(wǎng)絡(luò)通信?
  • 協(xié)議數(shù)據(jù)處理?
  • 各個(gè)模塊的數(shù)據(jù)分類?

我們可以首先熟悉通信部分代碼,梳理清楚各模塊的交互。這一部分代碼一般是比較容易看懂的,基本是看懂了一條數(shù)據(jù)之后,類似的基本就看懂了?;究炊?,可以跟著數(shù)據(jù)的流向,看看拿到這些數(shù)據(jù)之后,去做了什么處理。

因?yàn)槟阒蟮墓ぷ鳎锌赡苁菍戇@一部分代碼。比如增加某個(gè)數(shù)據(jù),要實(shí)現(xiàn)什么功能。

拿數(shù)據(jù) + 做邏輯

3、閱讀主業(yè)務(wù)模塊

業(yè)務(wù)邏輯模塊直接跟產(chǎn)品功能掛鉤,看懂這個(gè)模塊就可以很好地了解我們產(chǎn)品的功能。

業(yè)務(wù)邏輯作為最上層的模塊,可能有好幾個(gè)模塊都對(duì)其提供一些接口。

閱讀這一塊代碼需要注意的是:

每個(gè)功能具體的函數(shù)實(shí)現(xiàn)可能會(huì)嵌套好多層的代碼,剛開始千萬不要一層一層點(diǎn)進(jìn)去閱讀、不要試圖看懂每個(gè)函數(shù)、每行代碼,不然只會(huì)越看越懵。

我們在閱讀這個(gè)模塊的代碼時(shí),盡量沿著這個(gè)模塊的主線去閱讀,沿著主線盡可能快地弄清這個(gè)模塊做的事情,理解函數(shù)調(diào)用關(guān)系。等我們弄懂本模塊之后,日后對(duì)其它模塊感興趣再去仔細(xì)閱讀其具體實(shí)現(xiàn)也不遲。

4、了解單元測試測試用例

一般項(xiàng)目里模塊開發(fā)完成會(huì)編寫一些單元測試用例進(jìn)行自測。我們可以先不看單元測試模塊是如何實(shí)現(xiàn)的,可以先看一些各個(gè)模塊的測試用例,每個(gè)用例是如何跑的?輸入?輸出?

通過閱讀這些測試用例,可以幫助我們快速地理解各個(gè)模塊是如何觸發(fā)的,以及一些接口的使用方法。

5、實(shí)踐、分析日志

對(duì)代碼有了一定理解之后,肯定也會(huì)帶有很多困惑,這時(shí)候可以自己修改代碼/增加一些調(diào)試日志來幫我們理解代碼,有在線調(diào)試條件的可以進(jìn)行在線調(diào)試。

同時(shí),我們需要大致熟悉項(xiàng)目整體的日志:

熟悉日志的格式。帶有時(shí)間戳?帶有模塊標(biāo)簽?日志等級(jí)?

了解應(yīng)用程序啟動(dòng)日志,通過日志了解啟動(dòng)做了哪些工作、經(jīng)過了哪些流程。

了解一些關(guān)鍵日志。主業(yè)務(wù)的日志?

跑跑一些用例,看看對(duì)應(yīng)的日志。

以上就是我們關(guān)于閱讀嵌入式代碼的一些分享。

如果文章對(duì)你有幫助,麻煩幫忙轉(zhuǎn)發(fā)。

本文轉(zhuǎn)載自公眾號(hào)|嵌入式大雜燴

作者 | 嵌入式大雜燴

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

    關(guān)注

    30

    文章

    4779

    瀏覽量

    68521
  • 嵌入式代碼
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    5890
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    51單片機(jī)

    畢業(yè)設(shè)計(jì)都有還沒頭緒,都不知道要怎么死的了,1月份就要答辯了。我現(xiàn)在都沒一點(diǎn)進(jìn)程。基于51單片機(jī)的倒車?yán)走_(dá)。發(fā)射 接收 溫度 4位顯像管 蜂鳴器 。仿真 程序 電路圖、、想想都不知道要怎么辦
    發(fā)表于 10-30 20:26

    公司在做一個(gè)安捷倫4395網(wǎng)絡(luò)分析儀的軟件,還沒頭緒,不知怎么做

    公司在做一個(gè)安捷倫4395網(wǎng)絡(luò)分析儀的軟件,還沒頭緒,不知怎么做,請(qǐng)教各位大俠給提個(gè)意見,謝謝
    發(fā)表于 08-27 23:01

    cadence16.5導(dǎo)入PCb導(dǎo)入網(wǎng)表顯示失敗,怎么辦,新手入門

    cadence16.5導(dǎo)入PCb導(dǎo)入網(wǎng)表顯示失敗,怎么辦,新手入門
    發(fā)表于 12-14 21:40

    求大神Labview畢業(yè)設(shè)計(jì)整套的例子,畢設(shè)沒頭緒~~~

    哪位大神有沒有Labview畢業(yè)設(shè)計(jì)整套的,能不能給小弟拿來參考下,最近在忙畢業(yè)設(shè)計(jì),有點(diǎn)沒頭緒,跪求資源~~~
    發(fā)表于 12-05 15:55

    諾基亞n70白屏怎么辦

    諾基亞n70白屏怎么辦
    發(fā)表于 09-01 15:58 ?3550次閱讀
    諾基亞n70白屏<b class='flag-5'>怎么辦</b>

    顯示桌面沒了怎么辦

    顯示桌面沒了怎么辦 我的windows xp的顯示桌面的圖標(biāo)沒有了怎么辦。下載一個(gè)放到系統(tǒng)目
    發(fā)表于 01-18 19:00 ?3853次閱讀

    電腦進(jìn)入系統(tǒng)后卡死怎么辦

    電腦進(jìn)入系統(tǒng)后卡死怎么辦 癥狀:啟動(dòng)進(jìn)入系統(tǒng)界面時(shí),點(diǎn)什么都打不開,要等一分鐘左右才能打開。     解決辦法:     一
    發(fā)表于 02-24 13:46 ?1.4w次閱讀

    文件或目錄損壞怎么辦

    文件或目錄損壞怎么辦 我的D盤分區(qū)是NTFS格式的,但現(xiàn)在變成RAW。而且雙擊D盤就提示:無法訪問D:/ 文件或目錄損壞且無法讀取。怎么辦
    發(fā)表于 02-25 10:16 ?1109次閱讀

    顯示器開機(jī)模糊怎么辦

    顯示器開機(jī)模糊怎么辦    就CRT顯示器開機(jī)時(shí)畫面模糊,隨著時(shí)間的延長,屏幕的畫面越來越清晰,10到30分鐘恢復(fù)正常這一
    發(fā)表于 03-01 10:15 ?1754次閱讀

    電池?fù)Q新無法可依怎么辦

    電池壞了怎么辦?修。修不好怎么辦?換。
    發(fā)表于 03-19 11:23 ?1403次閱讀

    linux無法識(shí)別U盤怎么辦

    linux無法識(shí)別U盤怎么辦?
    發(fā)表于 05-19 09:08 ?1.7w次閱讀
    linux無法識(shí)別U盤<b class='flag-5'>怎么辦</b>

    鍵槽滾鍵了怎么辦?

    鍵槽滾鍵了怎么辦?
    發(fā)表于 03-07 16:37 ?7次下載

    電機(jī)過熱怎么辦

    電機(jī)過熱怎么辦?WAYON維安PPTC有方案
    的頭像 發(fā)表于 11-01 15:08 ?707次閱讀
    電機(jī)過熱<b class='flag-5'>怎么辦</b>?

    pcb鉆孔偏孔了怎么辦

    pcb鉆孔偏孔了怎么辦?
    的頭像 發(fā)表于 11-22 11:10 ?3498次閱讀
    pcb鉆孔偏孔了<b class='flag-5'>怎么辦</b>?

    風(fēng)機(jī)軸磨損怎么辦

    電子發(fā)燒友網(wǎng)站提供《風(fēng)機(jī)軸磨損怎么辦.docx》資料免費(fèi)下載
    發(fā)表于 01-07 11:04 ?0次下載
    RM新时代网站-首页