0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(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ò)誤。我覺(jué)得這些問(wèn)題挺有代表性的,在這里把這些問(wèn)題拋出來(lái),大家可以看看自己有沒(méi)有犯相同的錯(cuò)誤,及時(shí)糾正可以少走一些彎路。

閱讀代碼

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

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

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

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

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

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

這位小伙伴一開(kāi)始看代碼時(shí),從第一個(gè)函數(shù)開(kāi)始往下閱讀,遇到嵌套好多層的代碼,也一層一層點(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í)沒(méi)有及時(shí)做一些總結(jié)筆記

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

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

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

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

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

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

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

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

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

剛開(kāi)始時(shí),這位小伙伴整天閱讀某個(gè)學(xué)習(xí)網(wǎng)站學(xué)習(xí)C語(yǔ)言知識(shí)。以前,我也有這種想法,但是我覺(jué)得你只要看懂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ī)理。

寫(xiě)代碼

1、寫(xiě)代碼之前沒(méi)有思考清楚

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

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

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

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

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

3、寫(xiě)完代碼沒(méi)有檢查

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

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

分析問(wèn)題

1、遇到問(wèn)題沒(méi)有仔細(xì)閱讀問(wèn)題說(shuō)明

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

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

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

3、容易被問(wèn)題的表象迷惑

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

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

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎ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)注

    7

    文章

    2613

    瀏覽量

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

    關(guān)注

    3

    文章

    4237

    瀏覽量

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

    關(guān)注

    30

    文章

    4671

    瀏覽量

    67767

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

    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

    剛工作,代碼太多沒(méi)頭緒?怎么辦?

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

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

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

    如何糾正三相電源相序

    如何糾正三相電源相序? ? 糾正三相電源相序錯(cuò)誤是電氣工程中個(gè)非常重要的任務(wù)。相序錯(cuò)誤可能會(huì)導(dǎo)致電氣設(shè)備損壞、功率因數(shù)下降、電路故障等嚴(yán)重后果。因此,我們需要在實(shí)際工作中及時(shí)發(fā)現(xiàn)和
    的頭像 發(fā)表于 01-04 14:30 ?4104次閱讀

    提高嵌入式代碼質(zhì)量的一些方法

    的事情搞復(fù)雜,我希望這些文字能給迷惑中的人們指出一些正確的方向,讓他們一些彎路,基本做到一分耕耘一
    的頭像 發(fā)表于 11-30 09:15 ?349次閱讀

    芯片解密行業(yè)的一些內(nèi)幕你了解多少?

    尋找家真正可以解密的商家很難很難,因?yàn)樵O(shè)備的投入很大很大,幾百幾千萬(wàn),他們可能沒(méi)有那么多時(shí)間和金錢去做大量的廣告,但是他們技術(shù)真的很牛,他們可以保證您的解密周期,不會(huì)找出各種理由來(lái)忽悠客戶的錢,行就是行,不行就是不行,該退款退
    的頭像 發(fā)表于 11-24 17:47 ?451次閱讀
    芯片解密行業(yè)的<b class='flag-5'>一些</b>內(nèi)幕你了解多少?

    分享一些SystemVerilog的coding guideline

    本文分享一些SystemVerilog的coding guideline。
    的頭像 發(fā)表于 11-22 09:17 ?579次閱讀
    分享<b class='flag-5'>一些</b>SystemVerilog的coding  guideline

    FPGA新IP核學(xué)習(xí)的正確打開(kāi)方式

    步驟,您可以更好地理解和使用Xilinx的IP核。 二、其它方式 可以通過(guò)百度或google搜索這個(gè)IP的相關(guān)博客,看看網(wǎng)上大牛們是怎么用和理解這個(gè)IP的,般都會(huì)有詳細(xì)的經(jīng)驗(yàn)分享。 再來(lái)看xilinx官方手冊(cè)。 這樣上
    發(fā)表于 11-17 11:09

    在POWERPCB中怎樣去隱藏一些PIN腳

     由于一些板,尤其是U盤等面積很小的板,F(xiàn)LASH中只使用了為數(shù)不多的幾個(gè)PIN,為了可以讓其它PIN下面可以線,增加GND網(wǎng)絡(luò)的面積,所以實(shí)際操作中要隱藏
    發(fā)表于 11-02 15:19 ?270次閱讀
    在POWERPCB中怎樣去隱藏<b class='flag-5'>一些</b>PIN腳

    電主軸生產(chǎn)時(shí)需要注意幾點(diǎn)問(wèn)題?

    電主軸生產(chǎn)時(shí)需要注意幾點(diǎn)問(wèn)題?|深圳恒興隆機(jī)電
    的頭像 發(fā)表于 10-30 10:24 ?510次閱讀
    電主軸生產(chǎn)時(shí)需要<b class='flag-5'>注意</b>哪<b class='flag-5'>幾點(diǎn)</b>問(wèn)題?

    單片機(jī)C代碼嵌套匯編的一些方法

    單片機(jī)C代碼嵌套匯編的一些方法
    的頭像 發(fā)表于 10-18 16:39 ?423次閱讀
    單片機(jī)C<b class='flag-5'>代碼</b>嵌套匯編的<b class='flag-5'>一些</b>方法

    gvim中常用的一些指令介紹

    在 Vim 編輯器中,有一些常用的指令可以幫助我們更高效地編輯文本。以下是一些在 gvim 中常用的指令
    的頭像 發(fā)表于 10-10 15:47 ?1659次閱讀

    PCBA貼片加工焊接時(shí)應(yīng)注意以下幾點(diǎn)

    PCBA貼片加工焊接時(shí)應(yīng)注意以下幾點(diǎn)
    發(fā)表于 10-09 14:27 ?536次閱讀