色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

代碼整潔之道-大師眼中的整潔代碼是什么樣

京東云 ? 來(lái)源:jf_75140285 ? 作者:jf_75140285 ? 2024-09-09 16:30 ? 次閱讀

幾個(gè)月前寫(xiě)了一篇文章“如何寫(xiě)出難以維護(hù)的代碼”,從中能大概了解到不好維護(hù)的代碼是什么樣,有哪些壞味道,那肯定有人會(huì)反問(wèn),難以維護(hù)的代碼見(jiàn)的太多了,也知道長(zhǎng)什么樣,但是對(duì)于好維護(hù)的代碼是什么樣的比較模糊,帶著這個(gè)問(wèn)題,本人讀完了世界軟件開(kāi)發(fā)大師馬丁的《代碼整潔之道》這本書(shū),來(lái)了解下大師眼中的整潔代碼畫(huà)像是什么樣的,相信能給你帶來(lái)不一樣的理解和感悟。

wKgZombesjCAGIWdAAHN7xWKtsQ450.png

關(guān)于整潔代碼,沒(méi)有明確的定義,有多少程序員就有多少種定義。下面先看下幾位大師是如何定義的。

C++語(yǔ)言發(fā)明者Bjarne Stroustrup提到:

代碼應(yīng)該優(yōu)雅高效,代碼邏輯應(yīng)該直截了當(dāng),讓缺陷難以隱藏盡量減少依賴(lài)關(guān)系,便于維護(hù);按照某種分層策略完善錯(cuò)誤處理,性能調(diào)到最優(yōu),不會(huì)讓別人修改的更混亂整潔的代碼只做一件事

?

《面向?qū)ο蠓治雠c設(shè)計(jì)》一書(shū)作者Grad Booch提到:

整潔的代碼簡(jiǎn)單直接,如同散文一樣優(yōu)美從不隱藏設(shè)計(jì)者的意圖,代碼抽象干凈利落,控制語(yǔ)句直截了當(dāng)。

?

Eclipse戰(zhàn)略教父Dave Thomas這么定義:

整潔的代碼應(yīng)可由其他開(kāi)發(fā)者閱讀和增補(bǔ),應(yīng)當(dāng)有單元測(cè)試和驗(yàn)收測(cè)試,使用有意義的命名,只提供一種而非多種做一件事的途徑,只有盡量少的依賴(lài)關(guān)系,而且要明確地定義和提供清晰、盡量少的API

?

《修改代碼的藝術(shù)》一書(shū)作者M(jìn)ichael Feathers定義:

整潔代碼應(yīng)該是特別在意代碼的人才能寫(xiě)出來(lái)的,幾乎沒(méi)有改進(jìn)的余地,作者各種情況都想到了,如果你想改進(jìn)它,總會(huì)回到原點(diǎn),總會(huì)贊嘆寫(xiě)代碼的人的專(zhuān)心和認(rèn)真。

?

《極限編程實(shí)施》作者Ron Jeffries提出整潔代碼:

能通過(guò)所有測(cè)試,沒(méi)有重復(fù)代碼,代碼能體現(xiàn)設(shè)計(jì)理念,盡量減少類(lèi),方法以及函數(shù)。

?

綜合以上幾位大師對(duì)整潔代碼的定義闡述,可以歸納總結(jié)一下整潔代碼的畫(huà)像:

1.體現(xiàn)設(shè)計(jì)理念,這個(gè)整潔代碼特性在以上大師的定義里面多次提到了,Grady提到整潔代碼不會(huì)隱藏設(shè)計(jì)意圖,Ron提到整潔代碼一看就知道采用了什么樣的設(shè)計(jì)理念。體現(xiàn)設(shè)計(jì)理念看上去有點(diǎn)虛,但是實(shí)際上我認(rèn)為是最重要的一點(diǎn),所謂代碼即設(shè)計(jì),只要能回答代碼為什么這么寫(xiě),就說(shuō)明你的代碼有設(shè)計(jì)思想在里面,即便一行代碼都能體現(xiàn)出設(shè)計(jì)理念,比如一個(gè)有意義的命名也是設(shè)計(jì)的一種表現(xiàn)。

2.沒(méi)有重復(fù)代碼,如果你兩處代碼相同或者大部分重復(fù),說(shuō)明代碼不夠整潔,同時(shí)說(shuō)明代碼沒(méi)有去做好設(shè)計(jì)。消除重復(fù)代碼意味著減少類(lèi)和方法以及相關(guān)API。

3.代碼只做一件事,很多代碼由于想做太多事,目的不明確,意圖混亂,結(jié)果代碼變得很糟糕,代碼只做一件事,也稱(chēng)單一職責(zé),這個(gè)幾乎是很多軟件設(shè)計(jì)里面經(jīng)常提到的一個(gè)警句,這個(gè)原則看似很簡(jiǎn)單,但是實(shí)際上執(zhí)行起來(lái)不是那么簡(jiǎn)單,或者說(shuō),一時(shí)堅(jiān)持這個(gè)原則很容易,難的是一直堅(jiān)持這個(gè)原則,如果始終能踐行這個(gè)原則,代碼整潔度能達(dá)到質(zhì)的飛躍。

4.代碼好閱讀,關(guān)于閱讀,Bjarne用“優(yōu)雅”來(lái)形容,優(yōu)雅意味著優(yōu)美雅致,所以在他看來(lái),代碼應(yīng)該優(yōu)美,給人以愉悅感,Grad也提到代碼應(yīng)該像散文一樣優(yōu)美,讓閱讀的人看完一段想看下一段,能很明顯的展現(xiàn)出解決問(wèn)題的表達(dá)力和張力,閱讀者會(huì)不停的發(fā)出“啊哈,應(yīng)該這樣來(lái)處理!”的感嘆。反之,如果代碼不好閱讀,閱讀者看完后還需要猜測(cè)所表達(dá)的意思,對(duì)所實(shí)現(xiàn)的功能持懷疑態(tài)度,甚至有心驚膽戰(zhàn)的心理,會(huì)在心里不停的反問(wèn):"不會(huì)吧,這都可以在線上運(yùn)行?”我們?cè)谛薷拇a或?qū)懶麓a之前都要閱讀周邊代碼,如果閱讀代碼很難,則寫(xiě)代碼也會(huì)很難,據(jù)統(tǒng)計(jì)讀代碼和寫(xiě)代碼時(shí)間比例是10:1,編寫(xiě)代碼的難度,取決于讀周邊代碼的難度。要想干得快,要想早點(diǎn)做完,要想輕松寫(xiě)代碼,先讓代碼易讀吧。

5.代碼好修改,Dave提到整潔代碼應(yīng)該可以讓其他開(kāi)發(fā)者進(jìn)行增補(bǔ),也就是很容易進(jìn)行功能的增加,畢竟很多系統(tǒng)代碼都要不停的迭代更新,需要基于原代碼進(jìn)行增補(bǔ),所以代碼的易修改就顯得格外的重要,試想如果一個(gè)開(kāi)發(fā)者寫(xiě)的代碼別人沒(méi)法修改或者不敢改,那你說(shuō)這隱患有多大。我們經(jīng)常嘴巴提到的系統(tǒng)可維護(hù)性,實(shí)際上說(shuō)的更具體點(diǎn),更多的指的是代碼的可修改方面。

?

將以上5點(diǎn)整潔代碼的畫(huà)像總結(jié)一句話:

?

?

體現(xiàn)設(shè)計(jì)理念,代碼不重復(fù),只做一件事,好閱讀和修改!

審核編輯 黃宇

聲明:本文內(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)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1504

    瀏覽量

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

    關(guān)注

    30

    文章

    4801

    瀏覽量

    68735
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    循序漸進(jìn)搭建復(fù)雜B端系統(tǒng)整潔架構(gòu)

    時(shí)刻追趕潮流。在這樣一個(gè)時(shí)代背景下,軟件工程作為一門(mén)不起眼到有些枯燥的古老學(xué)科,似乎早已被開(kāi)發(fā)者們遺忘在角落。作為一名技術(shù)人員我們自然應(yīng)該時(shí)刻保持對(duì)前沿技術(shù)的追蹤,然而,當(dāng)發(fā)生線上問(wèn)題我們卻面對(duì)著成片的屎山代碼
    的頭像 發(fā)表于 11-18 17:11 ?1365次閱讀
    循序漸進(jìn)搭建復(fù)雜B端系統(tǒng)<b class='flag-5'>整潔</b>架構(gòu)

    Gmapping源代碼

    Gmapping源代碼.docx
    發(fā)表于 11-16 13:42 ?0次下載

    如何自動(dòng)生成verilog代碼

    介紹幾種自動(dòng)生成verilog代碼的方法。
    的頭像 發(fā)表于 11-05 11:45 ?353次閱讀
    如何自動(dòng)生成verilog<b class='flag-5'>代碼</b>

    怎么提高verilog代碼編寫(xiě)水平?

    ,共同進(jìn)步。 歡迎加入FPGA技術(shù)微信交流群14群! 交流問(wèn)題(一) Q:怎么提高verilog代碼編寫(xiě)水平?Cpu 從事DFT工作。目前僅限于寫(xiě)一些簡(jiǎn)單模塊。自學(xué)的話如何提高verilog編寫(xiě)水平
    發(fā)表于 09-25 20:05

    深入淺出系列之代碼可讀性

    ”,這是對(duì)我最大的鼓勵(lì)。 一、老生常談,到底啥是可讀性 一句話:見(jiàn)名知其義。有人說(shuō)好的代碼必然有清晰完整的注釋?zhuān)也环裾J(rèn);也有人說(shuō)代碼即注釋?zhuān)?b class='flag-5'>代碼簡(jiǎn)潔之道的最高境界,我也不否認(rèn)。但我
    的頭像 發(fā)表于 08-09 16:00 ?272次閱讀

    軟件設(shè)計(jì)哲學(xué):新“代碼整潔之道

    工作三年以來(lái)一直對(duì)寫(xiě)出設(shè)計(jì)優(yōu)雅且可讀性較好的代碼抱有執(zhí)念,最初接觸到的關(guān)于代碼整潔和軟件設(shè)計(jì)的書(shū)是《代碼整潔
    的頭像 發(fā)表于 07-22 12:18 ?258次閱讀
    軟件設(shè)計(jì)哲學(xué):新“<b class='flag-5'>代碼</b><b class='flag-5'>整潔</b><b class='flag-5'>之道</b>”

    國(guó)內(nèi)低代碼平臺(tái)推薦--萬(wàn)界星空科技低代碼平臺(tái)

    代碼平臺(tái)是一種應(yīng)用程序,它為編程提供圖形用戶界面,從而以極快的速度開(kāi)發(fā)代碼,減少傳統(tǒng)編程工作。 這些工具有助于快速開(kāi)發(fā)代碼,最大限度地減少手工編碼的工作量。這些平臺(tái)不僅有助于編碼,還有助于快速設(shè)置和部署。
    的頭像 發(fā)表于 07-18 15:39 ?320次閱讀
    國(guó)內(nèi)低<b class='flag-5'>代碼</b>平臺(tái)推薦--萬(wàn)界星空科技低<b class='flag-5'>代碼</b>平臺(tái)

    該如何提高代碼容錯(cuò)率、降低代碼耦合度?

    提高RT-Thread代碼的容錯(cuò)率和降低耦合度是確保代碼質(zhì)量和可維護(hù)性的關(guān)鍵,下面列舉了幾種在編寫(xiě)代碼時(shí),提高代碼容錯(cuò)率和降低耦合度的思路。讓我們一起來(lái)看看吧~一、提高
    的頭像 發(fā)表于 06-26 08:10 ?688次閱讀
    該如何提高<b class='flag-5'>代碼</b>容錯(cuò)率、降低<b class='flag-5'>代碼</b>耦合度?

    FPGA能實(shí)現(xiàn)什么樣的算法?

    FPGA功能如此強(qiáng)大,請(qǐng)問(wèn)用FPGA能實(shí)現(xiàn)或者比較適合實(shí)現(xiàn)什么樣的算法?
    發(fā)表于 05-26 20:18

    手柄控制代碼及使用方法

    手柄控制代碼及使用方法
    的頭像 發(fā)表于 05-15 10:19 ?1890次閱讀

    藍(lán)牙遙控代碼及使用

    藍(lán)牙遙控代碼及使用
    的頭像 發(fā)表于 05-15 10:15 ?897次閱讀

    如何提升代碼質(zhì)量與效率的秘訣

    提高編程能力其實(shí)沒(méi)有捷徑,最佳方式就是多寫(xiě)代碼。 不過(guò),除了寫(xiě)大量代碼,提升編程能力還需要大量閱讀別人寫(xiě)的代碼
    的頭像 發(fā)表于 04-28 14:53 ?409次閱讀
    如何提升<b class='flag-5'>代碼</b>質(zhì)量與效率的秘訣

    如何提升嵌入式C語(yǔ)言代碼可讀性

    接口是面向?qū)ο笳Z(yǔ)言中的一個(gè)比較重要的概念,接口只對(duì)外部承諾實(shí)現(xiàn)該接口的實(shí)體可以完成什么樣的功能,但是不暴露實(shí)現(xiàn)的方式。這樣的好處是,實(shí)現(xiàn)者可以在不接觸接口使用者的代碼的情況下,對(duì)實(shí)現(xiàn)進(jìn)行調(diào)整。
    發(fā)表于 04-11 11:30 ?363次閱讀
    如何提升嵌入式C語(yǔ)言<b class='flag-5'>代碼</b>可讀性

    g代碼和m代碼表示什么功能

    G代碼和M代碼是數(shù)控機(jī)床程序中常用的兩種指令代碼,用于控制數(shù)控機(jī)床的工作動(dòng)作和運(yùn)動(dòng)方式。 G代碼是指控制機(jī)床工作動(dòng)作的指令代碼,它是一種簡(jiǎn)單
    的頭像 發(fā)表于 02-14 15:49 ?4473次閱讀

    BQ3568_代碼下載

    BQ3568_代碼下載
    的頭像 發(fā)表于 01-11 11:34 ?643次閱讀
    主站蜘蛛池模板: 国产AV精品国语对白国产| 欧美丝袜女同| 老师xxxx69动漫| 强奷乱码中文字幕熟女免费| 挺弄抽插喷射HH| 在线观看亚洲免费人成网址| a圾片目录大全| 国产色婷亚洲99精品AV在线| 久久影院中文字幕| 首页 国产 亚洲 中文字幕| 亚洲中文字幕在线精品| ASIAN大陆明星裸休合成PICS| 国产九九熟女在线视频| 男人把女人桶到爽免费看视频| 首页_亚洲AV色老汉影院| 在镜头里被CAO翻了H| 古风H啪肉NP文| 快播萝莉影院| 午夜aaaa| gogogo免费视频观看| 狠狠色丁香久久婷婷综合_中 | 久久亚洲欧美国产综合| 骚浪插深些好烫喷了| 1313久久国产午夜精品理论片 | 边做边爱免费视频播放| 久久99久久成人免费播放| 日韩人妻无码精品久久中文字幕| 一扒二脱三插片在线观看| 高干紧射H后入| 免费中文字幕视频| 亚洲精品白色在线发布 | 中文字幕在线观看亚洲视频| 国产传媒18精品免费1区| 免费可以看黄的视频s色| 亚洲精品国产品国语在线试看| 草民电影网午夜伦理电影网| 久久深夜视频| 亚洲精品久久久久久偷窥| 古代荡女丫鬟高H辣文纯肉| 免费人成在线观看网站视频| 亚洲乱妇88网|