国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

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

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-09-09 16:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

幾個月前寫了一篇文章“如何寫出難以維護的代碼”,從中能大概了解到不好維護的代碼是什么樣,有哪些壞味道,那肯定有人會反問,難以維護的代碼見的太多了,也知道長什么樣,但是對于好維護的代碼是什么樣的比較模糊,帶著這個問題,本人讀完了世界軟件開發大師馬丁的《代碼整潔之道》這本書,來了解下大師眼中的整潔代碼畫像是什么樣的,相信能給你帶來不一樣的理解和感悟。

wKgZombesjCAGIWdAAHN7xWKtsQ450.png

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

C++語言發明者Bjarne Stroustrup提到:

代碼應該優雅高效,代碼邏輯應該直截了當,讓缺陷難以隱藏盡量減少依賴關系,便于維護;按照某種分層策略完善錯誤處理,性能調到最優,不會讓別人修改的更混亂整潔的代碼只做一件事

?

《面向對象分析與設計》一書作者Grad Booch提到:

整潔的代碼簡單直接,如同散文一樣優美從不隱藏設計者的意圖,代碼抽象干凈利落,控制語句直截了當。

?

Eclipse戰略教父Dave Thomas這么定義:

整潔的代碼應可由其他開發者閱讀和增補,應當有單元測試和驗收測試,使用有意義的命名,只提供一種而非多種做一件事的途徑,只有盡量少的依賴關系,而且要明確地定義和提供清晰、盡量少的API

?

《修改代碼的藝術》一書作者Michael Feathers定義:

整潔代碼應該是特別在意代碼的人才能寫出來的,幾乎沒有改進的余地,作者各種情況都想到了,如果你想改進它,總會回到原點,總會贊嘆寫代碼的人的專心和認真。

?

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

能通過所有測試,沒有重復代碼,代碼能體現設計理念,盡量減少類,方法以及函數。

?

綜合以上幾位大師對整潔代碼的定義闡述,可以歸納總結一下整潔代碼的畫像:

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

2.沒有重復代碼,如果你兩處代碼相同或者大部分重復,說明代碼不夠整潔,同時說明代碼沒有去做好設計。消除重復代碼意味著減少類和方法以及相關API。

3.代碼只做一件事,很多代碼由于想做太多事,目的不明確,意圖混亂,結果代碼變得很糟糕,代碼只做一件事,也稱單一職責,這個幾乎是很多軟件設計里面經常提到的一個警句,這個原則看似很簡單,但是實際上執行起來不是那么簡單,或者說,一時堅持這個原則很容易,難的是一直堅持這個原則,如果始終能踐行這個原則,代碼整潔度能達到質的飛躍。

4.代碼好閱讀,關于閱讀,Bjarne用“優雅”來形容,優雅意味著優美雅致,所以在他看來,代碼應該優美,給人以愉悅感,Grad也提到代碼應該像散文一樣優美,讓閱讀的人看完一段想看下一段,能很明顯的展現出解決問題的表達力和張力,閱讀者會不停的發出“啊哈,應該這樣來處理!”的感嘆。反之,如果代碼不好閱讀,閱讀者看完后還需要猜測所表達的意思,對所實現的功能持懷疑態度,甚至有心驚膽戰的心理,會在心里不停的反問:"不會吧,這都可以在線上運行?”我們在修改代碼或寫新代碼之前都要閱讀周邊代碼,如果閱讀代碼很難,則寫代碼也會很難,據統計讀代碼和寫代碼時間比例是10:1,編寫代碼的難度,取決于讀周邊代碼的難度。要想干得快,要想早點做完,要想輕松寫代碼,先讓代碼易讀吧。

5.代碼好修改,Dave提到整潔代碼應該可以讓其他開發者進行增補,也就是很容易進行功能的增加,畢竟很多系統代碼都要不停的迭代更新,需要基于原代碼進行增補,所以代碼的易修改就顯得格外的重要,試想如果一個開發者寫的代碼別人沒法修改或者不敢改,那你說這隱患有多大。我們經常嘴巴提到的系統可維護性,實際上說的更具體點,更多的指的是代碼的可修改方面。

?

將以上5點整潔代碼的畫像總結一句話:

?

?

體現設計理念,代碼不重復,只做一件事,好閱讀和修改!

審核編輯 黃宇

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

    關注

    2

    文章

    2368

    瀏覽量

    66752
  • 代碼
    +關注

    關注

    30

    文章

    4967

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    分析嵌入式軟件代碼的漏洞-代碼注入

    進行編譯 在大多數情況下,程序故意像執行代碼執行數據是不尋常的,但將數據用于構造有意執行的對象卻很常見。 1、格式化字符串漏洞 大多數C程序員熟悉printf函數。大體上,這些格式字符串
    發表于 12-22 12:53

    HarmonyOS應用代碼混淆技術方案

    代碼混淆技術可以增加代碼的復雜性和模糊性,從而提高攻擊者分析代碼的難度。
    的頭像 發表于 11-21 16:17 ?5603次閱讀
    HarmonyOS應用<b class='flag-5'>代碼</b>混淆技術方案

    TE Connectivity推出全新雙槽SIAMEZE端子

    在閥門產品迭代中,電磁閥正面臨空間極限與布線整潔的雙重挑戰。
    的頭像 發表于 11-17 16:14 ?943次閱讀

    在極海APM32系列MCU中如何把代碼重定位到SDRAM運行

    在有些情況下,我們想要把代碼放到SDRAM運行。下面介紹在APM32的MCU中,如何把代碼重定位到SDRAM運行。對于不同APM32系列的MCU,方法都是一的。
    的頭像 發表于 11-04 09:14 ?5170次閱讀
    在極海APM32系列MCU中如何把<b class='flag-5'>代碼</b>重定位到SDRAM運行

    代碼開發平臺推薦:2025國內低代碼開發平臺排名TOP10

    代碼開發平臺排行榜 在企業數字化轉型的浪潮中,低代碼開發平臺正逐漸成為企業實現高效開發和快速迭代的重要工具。隨著技術的不斷進步和市場需求的持續增長,低代碼開發平臺的市場競爭也日益激烈。以下
    的頭像 發表于 10-28 10:22 ?729次閱讀

    2025主流低代碼平臺有哪些:低代碼開發平臺選型指南指南

    在企業數字化轉型進入深水區的當下,低代碼開發平臺已從早期的“效率工具”升級為“核心基建”。其工程化能力、流程適配深度、技術延展性與行業積淀,直接決定了企業轉型的成效。據Gartner預測,到2026
    的頭像 發表于 10-22 11:49 ?395次閱讀

    外殼防護等級(IP代碼)全解讀

    什么是外殼防護等級(IP代碼)IP代碼,全稱為“國際防護等級”,是由國際電工委員會制定的全球通用標準。這一標準旨在為電子設備外殼的防護能力提供一個清晰、統一的評判體系。簡單來說,IP代碼就是電子設備
    的頭像 發表于 10-14 12:13 ?1193次閱讀
    外殼防護等級(IP<b class='flag-5'>代碼</b>)全解讀

    代碼格式化工具Clang-Format提升你的CW32工程質量

    它能自動統一團隊代碼風格,讓不同開發者寫出的代碼如出一轍。就像 CW32 官方庫函數遵循統一規范一,Clang-Format 能讓團隊所有成員的代碼瞬間保持一致,徹底消除 "tabs
    的頭像 發表于 10-09 17:43 ?1146次閱讀
    <b class='flag-5'>代碼</b>格式化工具Clang-Format提升你的CW32工程質量

    智行者蝸小白重塑地鐵清潔新標準

    智行者無人駕駛清潔車蝸小白自今年5月在深圳地鐵“上崗”以來,逐漸成為乘客眼中的“熟面孔”,并已高效服務于深圳地鐵2號線、8號線、10號線等6條線路共計30個核心站點,用科技的力量守護這座城市窗口的整潔
    的頭像 發表于 08-26 14:01 ?959次閱讀

    單模光纜型號字母代碼及其含義

    單模光纜的型號字母代碼主要用于標識光纜的分類、結構、護層及光纖類型等關鍵信息,以下是一些常見的單模光纜型號字母代碼及其含義: 一、光纜分類代碼 GY:通信用室外光纜,這是最常見的室外光纜分類
    的頭像 發表于 07-17 10:27 ?3096次閱讀

    企業和個人基于業務知識和代碼庫增強的大模型生成代碼實踐

    :“這個功能之前做過類似的,你參考下歷史代碼。”可當他打開代碼倉庫,卻發現注釋寥寥,變量名像密碼一難懂,更找不到任何需求文檔。他硬著頭皮修改,結果上線后引發了線上故障——原來有個隱藏的業務規則,只有老員工才知道。 第二周:
    的頭像 發表于 07-08 15:31 ?463次閱讀
    企業和個人基于業務知識和<b class='flag-5'>代碼</b>庫增強的大模型生成<b class='flag-5'>代碼</b>實踐

    OLED代碼分享

    OLED代碼
    發表于 04-29 17:04 ?1次下載

    變頻器相同的故障原因不同的故障代碼分類

    變頻器相同的故障原因可能對應不同的故障代碼,這主要取決于變頻器的型號、制造商以及具體的故障檢測機制。以下是一些常見的故障原因及其可能對應的不同故障代碼分類: 一、過電流故障 ● 故障原因:電動機銘牌
    的頭像 發表于 04-25 14:31 ?2536次閱讀
    變頻器相同的故障原因不同的故障<b class='flag-5'>代碼</b>分類

    Stm32CubeIDE能像Keil一指定不同文件下的代碼編譯到不同的FLASH地址嗎?

    Stm32CubeIDE能像Keil一指定不同文件下的代碼編譯到不同的FLASH地址嗎?比如部分代碼存放到內部FLASH,另一部分存放到外部QSPI的FLASH中
    發表于 03-07 08:09

    貼片電感的感值代碼與讀取方法

    貼片電感作為電子電路中的重要元件,其感值的準確性和讀取方法的便捷性對于電路的性能至關重要。本文將詳細介紹貼片電感的感值代碼及其讀取方法。 貼片電感的感值代碼通常采用數碼表示法,這種方法通過特定的數字
    的頭像 發表于 03-06 14:15 ?1834次閱讀
    貼片電感的感值<b class='flag-5'>代碼</b>與讀取方法