chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

爛代碼你能忍嗎?優(yōu)秀的代碼VS糟糕的代碼

C語言編程基礎(chǔ) ? 來源:未知 ? 作者:伍文輝 ? 2018-03-30 10:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

可持續(xù)開發(fā)不僅在于項目架構(gòu)設(shè)計,還與代碼質(zhì)量密切相關(guān),代碼的整潔度和質(zhì)量成正比?!?Robert C. Martin, “Clean Code”

如果你還沒有發(fā)現(xiàn)代碼質(zhì)量的區(qū)別,如果你從未見過優(yōu)秀的代碼,或者從未見過糟糕的代碼,那么本文將以直觀地對比,告訴你代碼質(zhì)量究竟會有多大的區(qū)別。

[ 代碼量 ]

我們知道代碼量顯示著功能的復(fù)雜程度,例如Windows XP的代碼量超過2000萬行,Linux內(nèi)核有1500萬行(2012年)。然而代碼量和功能數(shù)量之間并非線性關(guān)系。

優(yōu)秀的設(shè)計中,代碼量和功能數(shù)的關(guān)系是這樣的:

糟糕的設(shè)計中,代碼量和功能數(shù)的關(guān)系是這樣的:

優(yōu)秀的系統(tǒng)往往會有優(yōu)秀的結(jié)構(gòu)設(shè)計:層次清晰、職責單一、模塊化,方便擴展或者復(fù)用。功能的添加往往只是在現(xiàn)有框架中添加少量代碼。

然而糟糕的設(shè)計中,層次混亂、互相耦合、難以閱讀,既難以復(fù)用又不易擴展。每當被要求添加功能時,不得不幾乎完整地實現(xiàn)整個功能的流程,并修復(fù)與原系統(tǒng)的所有兼容問題。

[ 注釋]

優(yōu)秀的代碼中,注釋是這樣的:

糟糕的代碼中,注釋是這樣的:

最愚蠢的程序員都能寫出機器能讀懂的代碼,而優(yōu)秀的程序員能寫出人可以讀懂的代碼。

程序的注釋是為了讓人讀得懂。多數(shù)優(yōu)秀的代碼中,注釋幾乎接近代碼行數(shù)的一半,描述函數(shù)功能、解釋參數(shù)配置、指出陷阱所在。而糟糕的代碼中不僅不含這些注釋,甚至會保留大量殘余代碼,可讀性差又難以重構(gòu)。

[ 命名]

優(yōu)秀的代碼中,命名是這樣的:

糟糕的代碼中,命名是這樣的:

命名是為了讓代碼更加容易閱讀,使用規(guī)范的術(shù)語不僅更加易懂,同時也是開發(fā)者知識水平和開發(fā)經(jīng)驗的表現(xiàn)。如果說以中文拼音命名顯得奇怪,那么直接以a, b, c, d命名的便會顯得可恨,誰記得你的a是神馬東西!

看一個經(jīng)典的例子,字符串替換:

稍微有點Javascript常識的便會想到正則表達式:

何必拷貝這一堆的代碼給老板看呢?開發(fā)中確實有很多時候,直接拷貝代碼既能立竿見影地完成功能,又不會影響原有功能。但這樣的代碼多起來之后,萬一功能調(diào)整你便需要重新debug所有的副本?;ㄒ恍r間學習更優(yōu)雅的用法是值得的。

[ 函數(shù) ]

保持函數(shù)的短小,使你的代碼更加易讀,例如:

將復(fù)雜的邏輯分步驟完成。如果寫在一起將會是這樣的:

相信我,一旦你寫了這樣的函數(shù),它會隨著時間的推移變得越來越長,直到有一天,你也忘了其中的一段代碼到底是做什么的。

事實上,復(fù)雜的函數(shù)不僅可以按照步驟劃分,更應(yīng)按照層次來細化。不要在一個函數(shù)中進行不同層次的操作,否則它會變得非常難懂。

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

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70671
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    954

    瀏覽量

    30400

原文標題:沒有對比就沒有傷害,優(yōu)秀的代碼VS糟糕的代碼

文章出處:【微信號:xx-cyy,微信公眾號:C語言編程基礎(chǔ)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    GPIO如何只更新通知代碼而不是替換舊代碼嗎?

    大家好,當我嘗試更改 GPIO 通知時遇到問題,然后我按下“生成代碼”。但它取代了我的舊代碼。告訴我如何只更新通知代碼而不是替換舊
    發(fā)表于 01-31 07:44

    參考代碼--俄羅斯游戲代碼

    使用C語言編程的參考代碼--俄羅斯游戲代碼
    發(fā)表于 05-20 17:01 ?15次下載

    的 Python 代碼優(yōu)雅又地道

    vs NP (pythonic vs non-pythonic)的討論。pythonic的代碼簡練,明確,優(yōu)雅,絕大部分時候執(zhí)行效率高。閱讀pythonic的代碼
    的頭像 發(fā)表于 03-06 10:35 ?3795次閱讀

    如何編寫無法維護的代碼代碼沒有重構(gòu)的風險

    自己弄個鐵飯碗,因為除了之外,沒人維護寫的代碼。再而且,如果練就秘籍中的全部招式,那么
    的頭像 發(fā)表于 04-29 19:11 ?2822次閱讀

    如何包裝代碼?優(yōu)秀的工程師不會告訴的秘密

    可以把代碼想象為一款辦公軟件,沒有用過的用戶其實很難了解這款軟件到底值不值得買。這時就需要靠包裝與產(chǎn)品說明了,也就是文檔(doc)。一次優(yōu)秀的更新往往需要多種文檔,包括一些幾種。
    的頭像 發(fā)表于 05-13 17:01 ?2074次閱讀

    垃圾代碼應(yīng)該怎么寫

    在 GitHub 上有一個新項目,它描述了「最佳垃圾代碼」的十九條關(guān)鍵準則。從變量命名到注釋編寫。這些準則將指導(dǎo)寫出最亮眼的代碼。 為了保持與原 GitHub 項目一致的風格,下文
    的頭像 發(fā)表于 01-18 11:08 ?2189次閱讀

    TouchGFX代碼框架以及如何添加用戶代碼

    和View之間的橋梁,View負責顯示,Model負責交互,這三大類撐起了TouchGFX的天空,可以再里面任意翱翔。 清除了MVP結(jié)構(gòu)后,對代碼
    的頭像 發(fā)表于 01-18 11:28 ?2919次閱讀
    TouchGFX<b class='flag-5'>代碼</b>框架以及如何添加用戶<b class='flag-5'>代碼</b>

    九個單片機仿真優(yōu)秀案例及源代碼

    九個單片機仿真優(yōu)秀案例及源代碼
    發(fā)表于 03-17 09:13 ?161次下載
    九個單片機仿真<b class='flag-5'>優(yōu)秀</b>案例及源<b class='flag-5'>代碼</b>

    為什么有時候會寫出代碼

    本文的內(nèi)容是最近我剛剛遇到的一個問題,問題代碼是我自己寫的,也是我自己寫單元測試的時候發(fā)現(xiàn)的,也是我自己修復(fù)的,修復(fù)完之后,我反思了一下:這樣的問題代碼,我實習的時候都寫不出來。 可是為什么我
    的頭像 發(fā)表于 08-27 10:23 ?1582次閱讀
    為什么有時候會寫出<b class='flag-5'>爛</b><b class='flag-5'>代碼</b>

    快速找到代碼運行最慢部分的編程神器

    天下武功,唯快不破。 編程也不例外,代碼跑的快,快速找出代碼慢的原因,的碼功就高。 今
    的頭像 發(fā)表于 10-13 16:40 ?1841次閱讀

    微軟最新寫代碼神器代碼之旅

    【導(dǎo)語】:CodeTour(代碼之旅)是微軟官方開發(fā)的 VS Code 擴展,允許記錄和回放代碼的演練和思路。 簡介 CodeTour 是一個 VS Code 插件,允許記錄和回放
    的頭像 發(fā)表于 10-26 10:00 ?1895次閱讀

    VS上配置MPI教程(含代碼

    VS上配置MPI教程(含代碼
    發(fā)表于 01-17 11:24 ?1次下載

    什么是整潔的代碼

    WTF/min是衡量代碼質(zhì)量的唯一標準,Uncle Bob在書中稱糟糕代碼為沼澤(wading),這只突出了我們是糟糕代碼的受害者。國內(nèi)有
    的頭像 發(fā)表于 01-30 10:45 ?776次閱讀

    靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)及普通代碼塊的執(zhí)行順序

    在Java中,靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)、普通代碼塊的執(zhí)行順序是一個筆試的考點,通過這篇文章希望大家徹底了解它們之間的執(zhí)行順序。 1、靜態(tài)
    的頭像 發(fā)表于 10-09 15:40 ?1941次閱讀
    靜態(tài)<b class='flag-5'>代碼</b>塊、構(gòu)造<b class='flag-5'>代碼</b>塊、構(gòu)造函數(shù)及普通<b class='flag-5'>代碼</b>塊的執(zhí)行順序

    vs中如何快速注釋多行代碼

    VS中,快速注釋多行代碼可以通過以下幾種方法實現(xiàn)。我將詳細介紹每種方法的步驟和應(yīng)用場景。 方法一:塊注釋 塊注釋是一種常見的注釋多行代碼的方法。它適用于需要注釋大塊代碼的情況,可以方
    的頭像 發(fā)表于 11-22 10:26 ?1.8w次閱讀