91精品国产手机在线-白筒袜嫩萝双腿之间乳白液体-青青操手机在线视频观看-日本中文字幕人妻日韩-日韩精品在线观看视频网站-天堂资源中文最新版在线一区-欧美专区一区二区三区-国产综合亚洲欧美在线-国产精品久久久久久福利69堂

為什么說讀代碼比寫代碼難?

為什么讀代碼比寫難,這要分兩種不同情況了 。

對(duì)于初學(xué)者入門階段來說來說,通常讀代碼比寫代碼是要簡(jiǎn)單些的,因?yàn)檫@個(gè)階段接觸到的大都是書本上或者網(wǎng)絡(luò)上經(jīng)典的編程例子,像什么for循環(huán),if判斷,冒泡排序,都是最基礎(chǔ)的階段,會(huì)語法和簡(jiǎn)單邏輯思維都能看懂,所以大部分自學(xué)編程的人初期階段都會(huì)有種感覺,那就是代碼我都看得懂,但是就是寫不出來,所以這個(gè)階段其實(shí)是讀代碼比寫代碼要難 。

編程入門之后就是實(shí)踐了,而國內(nèi)大部分實(shí)踐都是在寫業(yè)務(wù)代碼,不同行業(yè)不同類型,業(yè)務(wù)流程復(fù)雜度都不一樣,這個(gè)階段讀的代碼大都是業(yè)務(wù)代碼,需要配合業(yè)務(wù)流程才能更好的理解是什么意思,樓主所說的讀代碼比寫難,應(yīng)該就是這個(gè)階段,代碼需要以業(yè)務(wù)流程為基礎(chǔ)才能看懂,而自己寫的前提是自己已經(jīng)了解了流程,前提不一樣當(dāng)然看代碼更難,其實(shí)也不算看不懂代碼而是不理解業(yè)務(wù)流程 。

看代碼主要根據(jù)代碼來反推流程,而自己寫是根據(jù)流程來推進(jìn)代碼,兩個(gè)是相反的過程,所以看代碼其實(shí)更難,因?yàn)槟阈枰ダ斫鈩e人的思路 。

好了,以上就是我個(gè)人的理解,大家還有什么不同想法,可以一起交流一下 。

其他網(wǎng)友觀點(diǎn)

【為什么說讀代碼比寫代碼難?】試問如果代碼是自己寫的,怎么可能會(huì)不知道代碼的每個(gè)節(jié)點(diǎn)的含義呢?而要讀懂別人的寫的代碼就意味著要在打結(jié)的一坨流程中理出一個(gè)脈絡(luò)來 。


為什么說讀代碼比寫代碼難?
文章插圖

寫代碼:新增一個(gè)節(jié)點(diǎn),然后連接到某個(gè)節(jié)點(diǎn)中;讀代碼:找到兩個(gè)節(jié)點(diǎn)之間的可能路徑;改代碼:替換某一個(gè)節(jié)點(diǎn),保證節(jié)點(diǎn)和每個(gè)節(jié)點(diǎn)之間的連通性、正確性;

可想而知讀代碼的難度要遠(yuǎn)遠(yuǎn)大于寫代碼 。對(duì)于產(chǎn)品經(jīng)理和用戶來說,并不會(huì)關(guān)心這些節(jié)點(diǎn)是怎么連接起來的,所有的計(jì)算過程都被省略掉了,得看最終的顯現(xiàn)結(jié)果 。代碼本質(zhì)上就是程序員寫給機(jī)器的命令,是程序員經(jīng)過思考后的產(chǎn)物 。但思考的整個(gè)過程卻沒有明確地體現(xiàn)在代碼上 。條條大路通羅馬,每個(gè)程序員的代碼風(fēng)格和流程的處理都是不一樣的,這就好比解一道數(shù)學(xué)題,最終只有一個(gè)答案,但解法卻可能是多種多樣的 。讀代碼就是讀別人的解題思路,然而畢竟不同人的思想境界、編程水平都存在著很大的差異性 。自己設(shè)計(jì)流程、自己寫代碼當(dāng)然思路非常清晰,但要是別人的思路,交給你來寫,一樣很難 。


為什么說讀代碼比寫代碼難?
文章插圖

注釋、對(duì)象、MVC、高聚合、低耦合等等這些思想是為了方便別人能讀懂代碼,然后別人真的會(huì)每一段代碼都會(huì)去讀嗎?并不會(huì),這些大多都是方便寫代碼的人自己讀代碼,然后方便修改 。我想很多程序員都有這樣的經(jīng)驗(yàn):經(jīng)常查看代碼都會(huì)吐槽,這代碼是誰寫的?一看頭部注釋才知道是自己寫的 。


為什么說讀代碼比寫代碼難?
文章插圖

寫代碼的人一段一段的代碼寫出來,后來發(fā)現(xiàn)存在很多的問題,隨后陸陸續(xù)續(xù)地修改了好幾版 。可以說終版的每一個(gè)小細(xì)節(jié)都是原作者花了很多時(shí)間不斷試錯(cuò)的結(jié)果,但試錯(cuò)的過程和結(jié)果并不會(huì)體現(xiàn)在代碼上 。而讀代碼的人開始改這些代碼的時(shí)候就會(huì)發(fā)現(xiàn)坑一踩一個(gè)準(zhǔn),沒有找到這些坑的連環(huán)線頭,根本解決不了問題,只會(huì)出現(xiàn)更多的bug 。


為什么說讀代碼比寫代碼難?
文章插圖

代碼中也往往都存在一些隱含的前提,比如函數(shù)的參數(shù)在傳入之前就已經(jīng)被處理過了,處理過程可能和另一個(gè)文件的某行代碼有關(guān),這種隱性的聯(lián)系很難被讀代碼的人察覺到,只要稍微一改動(dòng)就可能不斷地拋出異常 。

但很無奈地是閱讀代碼是每個(gè)程序員成長(zhǎng)的必經(jīng)之路

俗話說寫程序容易,但要寫好程序很難 。程序員非常忌諱的就是閉門造車 。古代地劍客在登頂之前都會(huì)尋找到無數(shù)人來喂招,借此來打磨自己地技藝 。程序員也是如此,先學(xué)會(huì)抄作業(yè),然后在前人的基礎(chǔ)之上不斷地提高自己 。


為什么說讀代碼比寫代碼難?
文章插圖

可能是別人的算法更加簡(jiǎn)潔突出,可能別人的節(jié)點(diǎn)設(shè)計(jì)的更加巧妙,也可能別人的程序整體框架搭建的更加合理,甚至于別人的錯(cuò)誤都有可能成為你下次不再犯同樣錯(cuò)誤的理由 。可以說讀別人的代碼可以很大程度上促進(jìn)一個(gè)程序員的成長(zhǎng) 。


為什么說讀代碼比寫代碼難?
文章插圖

自己寫的代碼是一個(gè)輸出的過程,而讀別人的代碼是一個(gè)理解+吸收+消化的過程 。所以讀代碼確實(shí)會(huì)比寫代碼難 。

以上個(gè)人淺見,歡迎批評(píng)指正 。

認(rèn)同我的看法,請(qǐng)點(diǎn)個(gè)贊再走,感謝!

喜歡我的,請(qǐng)關(guān)注我,再次感謝!

其他網(wǎng)友觀點(diǎn)

這涉及到兩方面,一是代碼質(zhì)量,二是讀者水平 。

如果代碼質(zhì)量很差,隨心所欲,沒有規(guī)劃,變量和函數(shù)想到什么就寫什么,起名又不知所云,冗余部分占比很高,就很難閱讀 。更有一些代碼,抽象得很,例如算法優(yōu)化,優(yōu)化部分在代碼之外,代碼就是優(yōu)化之后的體現(xiàn),又沒有任何注釋,goto遍地都是,真的很令人頭疼 。

如果代碼質(zhì)量還行,也有相應(yīng)的注釋 。閱讀起來也不一定能很順暢,因?yàn)橐苍S讀者不清楚需求已經(jīng)實(shí)現(xiàn)需求所用的思想,也許讀者不了解全局,也許讀者不能徹底明白作者的思路,所以閱讀起來就不太順暢 。

如果讀者的水平低于寫者,通常也很難閱讀寫者的代碼 。因?yàn)榇a體現(xiàn)的是作者的思路、經(jīng)驗(yàn)、認(rèn)知、見識(shí)等各方面的能力和水平 。也許你看不懂的代碼,其實(shí)是好代碼,是能夠歷經(jīng)歲月的洗禮,甚至曾經(jīng)拿過部門或者公司獎(jiǎng)勵(lì)的代碼 。

如果讀者和寫者是同一個(gè)人,通常來講,閱讀是沒有什么障礙的,除非那些代碼有做特殊處理的,例如看起來不好理解,但實(shí)際上就只能這樣才奏效,也許當(dāng)初工期很趕,沒有充分論證,但是就這么Try一下,就跑通了,也就這樣了 。

要想代碼的閱讀性高,可理解度高,最好的辦法是:詳寫必要的注釋且使用常規(guī)的方法 。常規(guī)的方法,不是指按照你自己想的規(guī)范或者習(xí)慣來寫,是遵循公司或者部門的代碼規(guī)范,如果公司或者部門不做要求,那么就參考行業(yè)大牛的風(fēng)格,可以通過開源代碼來參考 。

很多程序員抱著這樣的態(tài)度,我寫代碼是給機(jī)器看的,不是給人看的,所以我想怎么寫就怎么寫 。這種想法和做法其實(shí)很幼稚,根本沒有考慮到代碼的傳承,根本沒有考慮到團(tuán)隊(duì)的代碼協(xié)作,根本沒有考慮到將來可能會(huì)有那么一天,需要修改甚至是重構(gòu)代碼 。

所以代碼審查,是很有必要的 。團(tuán)隊(duì)中每個(gè)人寫的代碼,都需要由組內(nèi)同事甚至是部門同事評(píng)審,對(duì)于冗余的,不合規(guī)范的代碼,堅(jiān)決不準(zhǔn)更新 。其實(shí)只要堅(jiān)持一段時(shí)間,例如一年半載的,大家的代碼就都會(huì)規(guī)范起來的 。

代碼的作用,一半是給機(jī)器用的,另一半是給人看的 。


為什么說讀代碼比寫代碼難?
文章插圖

    推薦閱讀