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

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

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

閱讀代碼注意這幾點(diǎn)及時(shí)糾正可以少走一些彎路

C語(yǔ)言編程 ? 來(lái)源:C語(yǔ)言編程 ? 作者:C語(yǔ)言編程 ? 2022-11-29 14:17 ? 次閱讀

想想以前剛?cè)胄械淖约海矔?huì)犯類似的錯(cuò)誤。我覺得這些問題挺有代表性的,在這里把這些問題拋出來(lái),大家可以看看自己有沒有犯相同的錯(cuò)誤,及時(shí)糾正可以少走一些彎路。

閱讀代碼

1、閱讀代碼之前沒有先弄清整個(gè)項(xiàng)目的框架

這位新來(lái)的小伙伴,一上來(lái)就開始看代碼,哪怕我已經(jīng)把相關(guān)的系統(tǒng)設(shè)計(jì)文檔已經(jīng)發(fā)給他了。他沒有仔細(xì)閱讀,對(duì)各模塊的功能也不是很了解。所以,剛開始看代碼時(shí)一頭霧水。

公司里的項(xiàng)目,往往都是很多人一起開發(fā)的。參與公司的項(xiàng)目開發(fā),無(wú)論我們最終分配到負(fù)責(zé)哪個(gè)模塊的開發(fā),在去專研那個(gè)模塊代碼之前,都很有必要先了解這個(gè)項(xiàng)目的總體框架。這個(gè)項(xiàng)目實(shí)現(xiàn)了什么功能,由哪些模塊組成?哪些硬件模塊?哪些軟件模塊?各模塊之間是怎么交互的?

只有了解了這些,我們?cè)偃プ瞿硞€(gè)模塊時(shí),能更清楚的知道我們負(fù)責(zé)的模塊要做什么,才能更好地開發(fā)好這個(gè)模塊。

2、閱讀代碼時(shí)沒有把握住主線

對(duì)項(xiàng)目整體框架有一定了解之后,我讓他去看上層的業(yè)務(wù)邏輯模塊,因?yàn)闃I(yè)務(wù)邏輯模塊直接跟產(chǎn)品功能掛鉤,看懂這個(gè)模塊就可以很好地了解我們產(chǎn)品的功能。業(yè)務(wù)邏輯作為最上層的模塊,下面一層好幾個(gè)模塊都對(duì)其服務(wù),對(duì)其提供了很多接口。

這位小伙伴一開始看代碼時(shí),從第一個(gè)函數(shù)開始往下閱讀,遇到嵌套好多層的代碼,也一層一層點(diǎn)進(jìn)去閱讀,好像要試圖看懂每個(gè)函數(shù)、每行代碼,最后越看越懵。

我們?cè)陂喿x某個(gè)模塊的代碼時(shí),盡量沿著這個(gè)模塊的主線去閱讀,沿著主線盡可能快地弄清這個(gè)模塊做的事情。

本模塊可能會(huì)調(diào)用了其它模塊的接口,而且可能還會(huì)嵌套好幾層函數(shù),我們只要大概知道這些接口實(shí)現(xiàn)了什么功能就可以,先不用一層一層地看、先不要去糾結(jié)其實(shí)現(xiàn)的細(xì)節(jié)。等我們弄懂本模塊之后,日后對(duì)其它模塊感興趣再去仔細(xì)閱讀其具體實(shí)現(xiàn)也不遲。

3、閱讀代碼時(shí)沒有及時(shí)做一些總結(jié)筆記

這位小伙伴全面閱讀某個(gè)模塊的代碼時(shí),沒有做一些自己的學(xué)習(xí)、理解記錄,這就會(huì)導(dǎo)致看了后面部分,又忘了前面部分。

我們剛開始切入某個(gè)陌生的項(xiàng)目,并且代碼量比較大的情況下,在閱讀代碼的過程中,很有必要做一些閱讀筆記,便于自己反復(fù)閱讀(有些代碼不看好幾遍可能理解得不透徹)的時(shí)候加深一些理解。

做筆記得方式可以是寫一些注釋描述、流程圖、思維導(dǎo)圖等。

學(xué)習(xí)、工作習(xí)慣

1、遇到不會(huì)的沒有及時(shí)做筆記記錄及學(xué)習(xí)

這位小伙伴剛開始對(duì)一些git常用命令及Linux常用命令不熟悉,我演示過幾遍之后,后面再用到的時(shí)候,讓他自己操作他也還不會(huì)。

我們剛開始參加工作時(shí),需要一些很常用,但是又不能馬上掌握的知識(shí)點(diǎn)要及時(shí)的記錄寫來(lái)、多用,直至掌握。特別是一些流程、步驟之類的,要記錄下來(lái)、然后多操作幾次,操作次數(shù)多了,就熟了。

我們做技術(shù)的,還是要有寫文檔、寫總結(jié)的習(xí)慣,這會(huì)加深我們對(duì)某些知識(shí)的理解。寫出來(lái)的技術(shù)總結(jié),如果自己愿意,可以發(fā)到網(wǎng)上,或者自己本地存檔。

2、總想一次性把基礎(chǔ)補(bǔ)好

剛開始時(shí),這位小伙伴整天閱讀某個(gè)學(xué)習(xí)網(wǎng)站學(xué)習(xí)C語(yǔ)言知識(shí)。以前,我也有這種想法,但是我覺得你只要看懂C語(yǔ)言語(yǔ)法、知道if、else、for等,就可以直接去看項(xiàng)目代碼了,從項(xiàng)目代碼中去學(xué)習(xí)C語(yǔ)言的知識(shí),項(xiàng)目代碼中,遇到不會(huì)的C語(yǔ)言知識(shí),針對(duì)性地去查資料進(jìn)行學(xué)習(xí),這樣印象反而會(huì)更深一些。

其實(shí)看代碼也可以分這么兩種情況:

C語(yǔ)言基礎(chǔ)比較差得情況下,閱讀代碼時(shí)可以先不管這些模塊都實(shí)現(xiàn)了什么功能,就盯著這個(gè)模塊用到的C語(yǔ)言知識(shí),遇到不會(huì)的C語(yǔ)言知識(shí)就去查資料學(xué)習(xí)。

C語(yǔ)言基礎(chǔ)比較好的情況,就可以看這個(gè)模塊的具體實(shí)現(xiàn)及內(nèi)部機(jī)理。

寫代碼

1、寫代碼之前沒有思考清楚

剛開始時(shí),這位小伙伴拿到工作任務(wù)時(shí),還未想清楚就去寫代碼了,導(dǎo)致在開發(fā)的過程中,反復(fù)地進(jìn)行修改。

在接到一個(gè)開發(fā)任務(wù)時(shí),我們首先要弄清楚需求并大致想清楚整體的實(shí)時(shí)流程,至少要保證大的方向沒錯(cuò),否則一上來(lái)就去編碼,這可能會(huì)做很多無(wú)用功。

2、寫代碼不注重編碼規(guī)范

可能是在學(xué)校時(shí)養(yǎng)成了不是很好的編程習(xí)慣,導(dǎo)致他沒有及時(shí)地改過來(lái)。我們業(yè)務(wù)自己開發(fā)一些小項(xiàng)目時(shí),可以有自己遵循的一套編碼規(guī)范。

但是,與他人協(xié)同開發(fā)一個(gè)項(xiàng)目,還是要盡量跟著項(xiàng)目遵循的規(guī)范來(lái)進(jìn)行編碼,特別的,在某個(gè)模塊里添加代碼時(shí),最好參照該模塊的編碼風(fēng)格進(jìn)行編碼,這樣至少可以保證整個(gè)模塊的風(fēng)格是統(tǒng)一的。

3、寫完代碼沒有檢查

以前在學(xué)校,考試的時(shí)候,老師常常強(qiáng)調(diào)答卷做完了要仔細(xì)檢查檢查。同樣的,我們軟件開發(fā)中,平時(shí)寫完代碼,也有必要檢查一下自己寫的代碼,看看有沒有比較明顯的編碼錯(cuò)誤,否則等到調(diào)試階段,出問題可能要找半天。

比如這位小伙伴某次寫case時(shí)忘記寫break了,出問題了,他很懵,還覺得問題很奇怪。

分析問題

1、遇到問題沒有仔細(xì)閱讀問題說明

我們遇到問題時(shí),要盡可能地去查找原因。特別的,有些問題是有一些比較明顯的問題反饋的,比如編譯錯(cuò)誤、git沖突等。這也是這位小伙伴目前比較欠缺的,遇到問題常常忽略掉問題的提示。

2、遇到問題不會(huì)加一些必要的日志定位問題

平時(shí),開發(fā)調(diào)試,遇到問題是很正常的事情,有時(shí)候加幾條打印就可以定位到問題的所在,卻一直盯著代碼查半天。特別的,剛接手某個(gè)模塊,對(duì)這個(gè)模塊不是很熟的情況,可以多加一些日志打印,可以很好地幫助我們?nèi)ダ斫庠撃K。

3、容易被問題的表象迷惑

好幾次,遇到問題,他跟我描述問題都是:xxx可以正常運(yùn)行,xxx不行,然后懷疑xxx出了問題。

我們平時(shí)遇到問題,還是要有理有據(jù)地去定位、分析問題,不能瞎猜。更不能害怕問題,我們要清楚,遇到越多地問題,解決越多的問題,我們成長(zhǎng)得越快!

審核編輯 :李倩

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

    關(guān)注

    7

    文章

    2716

    瀏覽量

    47530
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4333

    瀏覽量

    62697
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4791

    瀏覽量

    68694

原文標(biāo)題:初學(xué)者注意這幾點(diǎn),可以少走一些彎路!

文章出處:【微信號(hào):C語(yǔ)言編程,微信公眾號(hào):C語(yǔ)言編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    串口設(shè)計(jì)一些關(guān)鍵注意點(diǎn)!千萬(wàn)別踩雷!

    本文將以Air700ECQ/EAQ/EMQ為例,帶你從硬件設(shè)計(jì)的角度,起來(lái)了解串口設(shè)計(jì)中的一些關(guān)鍵注意點(diǎn);軟件開發(fā)或者AT設(shè)置方面不做深入探討。 ? 、串口相關(guān)管腳 Air700E
    的頭像 發(fā)表于 12-25 17:01 ?152次閱讀
    串口設(shè)計(jì)<b class='flag-5'>一些</b>關(guān)鍵<b class='flag-5'>注意</b>點(diǎn)!千萬(wàn)別踩雷!

    如何選擇合適的數(shù)字孿生開發(fā)平臺(tái)?這幾點(diǎn)注意

    選擇合適的數(shù)字孿生開發(fā)平臺(tái)對(duì)于企業(yè)和組織來(lái)說至關(guān)重要,因?yàn)樗苯佑绊懙綌?shù)字孿生項(xiàng)目的成功實(shí)施和未來(lái)發(fā)展。在考慮數(shù)字孿生開發(fā)平臺(tái)時(shí),需要綜合考慮多個(gè)因素,以確保選擇最適合自身需求的平臺(tái)。以下是一些需要
    的頭像 發(fā)表于 12-03 14:54 ?131次閱讀

    電子電器氣密性檢測(cè)儀使用方法:操作中的常見錯(cuò)誤與糾正

    電子電器氣密性檢測(cè)儀是確保產(chǎn)品質(zhì)量的關(guān)鍵設(shè)備,但在使用過程中,操作人員常犯一些錯(cuò)誤,導(dǎo)致測(cè)試結(jié)果不準(zhǔn)確或儀器損壞。以下是一些常見的操作錯(cuò)誤及其糾正方法,旨在幫助操作人員正確使用氣密性檢測(cè)儀。常見錯(cuò)誤
    的頭像 發(fā)表于 11-29 11:20 ?168次閱讀
    電子電器氣密性檢測(cè)儀使用方法:操作中的常見錯(cuò)誤與<b class='flag-5'>糾正</b>

    分享一些常見的電路

    理解模電和數(shù)電的電路原理對(duì)于初學(xué)者來(lái)說可能比較困難,但通過一些生動(dòng)的教學(xué)方法和資源,可以有效地提高學(xué)習(xí)興趣和理解能力。 下面整理了一些常見的電路,以動(dòng)態(tài)圖形的方式展示。 整流電路 單相橋式整流
    的頭像 發(fā)表于 11-13 09:28 ?326次閱讀
    分享<b class='flag-5'>一些</b>常見的電路

    LED驅(qū)動(dòng)器應(yīng)用的一些指南和技巧

    電子發(fā)燒友網(wǎng)站提供《LED驅(qū)動(dòng)器應(yīng)用的一些指南和技巧.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:35 ?0次下載
    LED驅(qū)動(dòng)器應(yīng)用的<b class='flag-5'>一些</b>指南和技巧

    選擇運(yùn)算放大器應(yīng)該注意一些什么呢?

    運(yùn)算放大器的選擇應(yīng)該注意一些什么呢?
    發(fā)表于 09-13 06:55

    java反編譯的代碼可以修改么

    的影響。 1. Java反編譯工具 在Java反編譯領(lǐng)域,有一些知名的工具可以幫助開發(fā)者將字節(jié)碼轉(zhuǎn)換回源代碼。這些工具包括: JD-GUI :個(gè)圖形界面的反編譯工具,
    的頭像 發(fā)表于 09-02 11:00 ?713次閱讀

    FPGA電路設(shè)計(jì)的一些技巧

    FPGA設(shè)計(jì)有別于DSP和ARM系統(tǒng),相比之下較為靈活和自由。主要是設(shè)計(jì)構(gòu)思好專用管腳的電路,通用I/O的連接可以自身定義。因而,F(xiàn)PGA電路設(shè)計(jì)中會(huì)有一些獨(dú)特的方法能夠參照。 FPGA管腳兼容性
    發(fā)表于 07-21 20:20

    【《軟件開發(fā)珠璣》閱讀體驗(yàn)】+ 初識(shí)

    著為自己摘下“只會(huì)寫代碼”的標(biāo)簽了。相信在未來(lái)的職業(yè)生涯中,這本書給我?guī)?lái)的知識(shí)能讓我在各個(gè)地方發(fā)光發(fā)熱,在某種意義上可以幫我突破一些瓶頸。 同樣,我期望這本書也能在正在閱讀此書的你未
    發(fā)表于 06-21 16:33

    STM32F103程序移植到F105上,中斷不能及時(shí)響應(yīng)的原因?怎么解決?

    為什么F103可以及時(shí)響應(yīng)中斷,F(xiàn)405在外設(shè)運(yùn)行時(shí)無(wú)法及時(shí)響應(yīng)外部中斷呢? 奇怪的是,如果把(Optimize for time)選上、把優(yōu)化級(jí)別由0改為2,延遲會(huì)明顯一些,但
    發(fā)表于 04-23 08:07

    注意這幾點(diǎn),安規(guī)電容用到老

    安規(guī)電容是電子電路的關(guān)鍵元件,確保電路穩(wěn)定運(yùn)行。選擇適合的安規(guī)電容、正確安裝和安放、合理使用和維護(hù),可延長(zhǎng)其使用壽命和提高電路穩(wěn)定性。定期檢查和維護(hù)安規(guī)電容,及時(shí)處理潛在問題,是確保電路長(zhǎng)期穩(wěn)定運(yùn)行的關(guān)鍵。
    的頭像 發(fā)表于 04-22 09:26 ?431次閱讀
    <b class='flag-5'>注意</b><b class='flag-5'>這幾點(diǎn)</b>,安規(guī)電容用到老

    注意這幾點(diǎn),安規(guī)電容用到老

    安規(guī)電容是電子電路的關(guān)鍵元件,確保電路穩(wěn)定運(yùn)行。選擇適合的安規(guī)電容、正確安裝和安放、合理使用和維護(hù),可延長(zhǎng)其使用壽命和提高電路穩(wěn)定性。定期檢查和維護(hù)安規(guī)電容,及時(shí)處理潛在問題,是確保電路長(zhǎng)期穩(wěn)定運(yùn)行的關(guān)鍵。
    的頭像 發(fā)表于 04-22 09:25 ?339次閱讀
    <b class='flag-5'>注意</b><b class='flag-5'>這幾點(diǎn)</b>,安規(guī)電容用到老

    深圳恒興?。?b class='flag-5'>走心機(jī)主軸:全方位讓您的心機(jī)主軸更心.

    、航空航天:機(jī)主軸用于航空航天行業(yè)的零部件加工,如飛機(jī)發(fā)動(dòng)機(jī)的加工;4、通用機(jī)械:機(jī)主軸也用于一些通用機(jī)械行業(yè),如軸承加工。四、心機(jī)主軸的維護(hù)與保養(yǎng)1、定期進(jìn)行潤(rùn)滑油更換,保證潤(rùn)滑系統(tǒng)的正常工作;2、清潔
    發(fā)表于 04-15 10:36

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

    不想錯(cuò)過,右上角設(shè)為星標(biāo)最近有位問:剛參加工作,看不懂代碼?這篇文章我們就來(lái)簡(jiǎn)單分享一些代碼的經(jīng)驗(yàn)。1、了解項(xiàng)目整體架構(gòu)在閱讀嵌入式代碼
    的頭像 發(fā)表于 03-25 08:09 ?675次閱讀
    剛工作,<b class='flag-5'>代碼</b>太多沒頭緒?怎么辦?

    PSOC Creator 4.4中是否有一些設(shè)置可以阻止strtok操作?

    我需要一些幫助才能開始使用這個(gè)功能。 我做了個(gè)簡(jiǎn)單的代碼,意圖用逗號(hào)作為分隔符來(lái)標(biāo)記字符串。 我嘗試在 PC 上模擬以下代碼并將其改編為 PSoc5LP: [i]int 主要 ()
    發(fā)表于 01-24 08:31