精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

程序員大咖眼中的整潔代碼是怎樣的

開發 前端
有多少程序員,就有多少定義。所以我只詢問了一些非常知名且經驗豐富的程序員。“我喜歡優雅和高效的代碼。代碼邏輯應當直截了當,叫缺陷難以隱藏;盡量減少依賴關系,使之便于維護;依據某種分層戰略完善錯誤處理代碼;性能調至最優,省得引誘別人做沒規矩的優化,搞出一堆混亂來。”

有多少程序員,就有多少定義。所以我只詢問了一些非常知名且經驗豐富的程序員。

[[209410]]
優秀程序員眼中的整潔代碼

Bjarne Stroustrup,C++語言發明者,C++ Programming Language(中譯版《C++程序設計語言》)一書作者。

我喜歡優雅和高效的代碼。代碼邏輯應當直截了當,叫缺陷難以隱藏;盡量減少依賴關系,使之便于維護;依據某種分層戰略完善錯誤處理代碼;性能調至最優,省得引誘別人做沒規矩的優化,搞出一堆混亂來。整潔的代碼只做好一件事。

Bjarne用了“優雅”一詞。說得好!我MacBook上的詞典提供了如下定義:外表或舉止上令人愉悅的優美和雅觀;令人愉悅的精致和簡單。注意對“愉悅”一詞的強調。Bjarne顯然認為整潔的代碼讀起來令人愉悅。讀這種代碼,就像見到手工精美的音樂盒或者設計精良的汽車一般,讓你會心一笑。

Bjarne也提到效率——而且兩次提及。這話出自C++發明者之口,或許并不出奇;不過我認為并非是在單純追求速度。被浪費掉的運算周期并不雅觀,并不令人愉悅。留意Bjarne怎么描述那種不雅觀的結果。他用了“引誘”這個詞。誠哉斯言。糟糕的代碼引發混亂!別人修改糟糕的代碼時,往往會越改越爛。

務實的Dave Thomas和Andy Hunt從另一角度闡述了這種情況。他們提到破窗理論4。窗戶破損了的建筑讓人覺得似乎無人照管。于是別人也再不關心。他們放任窗戶繼續破損。最終自己也參加破壞活動,在外墻上涂鴉,任垃圾堆積。一扇破損的窗戶開辟了大廈走向傾頹的道路。

Bjarne也提到完善錯誤處理代碼。往深處說就是在細節上花心思。敷衍了事的錯誤處理代碼只是程序員忽視細節的一種表現。此外還有內存泄漏,還有競態條件代碼。還有前后不一致的命名方式。結果就是凸現出整潔代碼對細節的重視。

Bjarne以“整潔的代碼只做好一件事”結束論斷。毋庸置疑,軟件設計的許多原則最終都會歸結為這句警語。有那么多人發表過類似的言論。糟糕的代碼想做太多事,它意圖混亂、目的含混。整潔的代碼力求集中。每個函數、每個類和每個模塊都全神貫注于一事,完全不受四周細節的干擾和污染。

[[209411]]
優秀程序員眼中的整潔代碼

Grady Booch,Object Oriented Analysis and Design with Applications(中譯版《面向對象分析與設計》)一書作者。

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

Grady的觀點與Bjarne的觀點有類似之處,但他從可讀性的角度來定義。我特別喜歡“整潔的代碼如同優美的散文”這種看法。想想你讀過的某本好書。回憶一下,那些文字是如何在腦中形成影像!就像是看了場電影,對吧?還不止!你還看到那些人物,聽到那些聲音,體驗到那些喜怒哀樂。

閱讀整潔的代碼和閱讀Lord of the Rings(中譯版《指環王》)自然不同。不過,仍有可類比之處。如同一本好的小說般,整潔的代碼應當明確地展現出要解決問題的張力。它應當將這種張力推至高潮,以某種顯而易見的方案解決問題和張力,使讀者發出“啊哈!本當如此!”的感嘆。

竊以為Grady所謂“干凈利落的抽象”(crisp abstraction),乃是絕妙的矛盾修辭法。畢竟crisp幾乎就是“具體”(concrete)的同義詞。我MacBook上的詞典這樣定義crisp一詞:果斷決絕,就事論事,沒有猶豫或不必要的細節。盡管有兩種不同的定義,該詞還是承載了有力的信息。代碼應當講述事實,不引人猜測。它只該包含必需之物。讀者應當感受到我們的果斷決絕。

[[209412]]
優秀程序員眼中的整潔代碼

“老大”Dave Thomas,OTI公司創始人,Eclipse戰略教父

整潔的代碼應可由作者之外的開發者閱讀和增補。它應當有單元測試和驗收測試。它使用有意義的命名。它只提供一種而非多種做一件事的途徑。它只有盡量少的依賴關系,而且要明確地定義和提供清晰、盡量少的API。代碼應通過其字面表達含義,因為不同的語言導致并非所有必需信息均可通過代碼自身清晰表達。

Dave老大在可讀性上和Grady持相同觀點,但有一個重要的不同之處。Dave斷言,整潔的代碼便于其他人加以增補。這看似顯而易見,但亦不可過分強調。畢竟易讀的代碼和易修改的代碼之間還是有區別的。

Dave將整潔系于測試之上!要在十年之前,這會讓人大跌眼鏡。但測試驅動開發(Test Driven Development)已在行業中造成了深遠影響,成為基礎規程之一。Dave說得對。沒有測試的代碼不干凈。不管它有多優雅,不管有多可讀、多易理解,微乎測試,其不潔亦可知也。

Dave兩次提及“盡量少”。顯然,他推崇小塊的代碼。實際上,從有軟件起人們就在反復強調這一點。越小越好。

Dave也提到,代碼應在字面上表達其含義。這一觀點源自Knuth的“字面編程”(literate programming)5。結論就是應當用人類可讀的方式來寫代碼。

[[209413]]
優秀程序員眼中的整潔代碼

Michael Feathers,Working Effectively with Legacy Code(中譯版《修改代碼的藝術》)一書作者。

我可以列出我留意到的整潔代碼的所有特點,但其中有一條是根本性的。整潔的代碼總是看起來像是某位特別在意它的人寫的。幾乎沒有改進的余地。代碼作者什么都想到了,如果你企圖改進它,總會回到原點,贊嘆某人留給你的代碼——全心投入的某人留下的代碼。

一言以蔽之:在意。這就是本書的題旨所在。或許該加個副標題,如何在意代碼。

Michael一針見血。整潔代碼就是作者著力照料的代碼。有人曾花時間讓它保持簡單有序。他們適當地關注到了細節。他們在意過。

[[209414]]
優秀程序員眼中的整潔代碼

Ron Jeffries,Extreme Programming Installed(中譯版《極限編程實施》)以及Extreme Programming Adventures in C#(中譯版《C#極限編程探險》)作者。

Ron初入行就在戰略空軍司令部(Strategic Air Command)編寫Fortran程序,此后幾乎在每種機器上編寫過每種語言的代碼。他的言論值得咀嚼。

近年來,我開始研究貝克的簡單代碼規則,差不多也都琢磨透了。簡單代碼,依其重要順序:

  • 能通過所有測試;
  • 沒有重復代碼;
  • 體現系統中的全部設計理念;
  • 包括盡量少的實體,比如類、方法、函數等。

在以上諸項中,我最在意代碼重復。如果同一段代碼反復出現,就表示某種想法未在代碼中得到良好的體現。我盡力去找出到底那是什么,然后再盡力更清晰地表達出來。

在我看來,有意義的命名是體現表達力的一種方式,我往往會修改好幾次才會定下名字來。借助Eclipse這樣的現代編碼工具,重命名代價極低,所以我無所顧忌。然而,表達力還不只體現在命名上。我也會檢查對象或方法是否想做的事太多。如果對象功能太多,最好是切分為兩個或多個對象。如果方法功能太多,我總是使用抽取手段(Extract Method)重構之,從而得到一個能較為清晰地說明自身功能的方法,以及另外數個說明如何實現這些功能的方法。

消除重復和提高表達力讓我在整潔代碼方面獲益良多,只要銘記這兩點,改進臟代碼時就會大有不同。不過,我時常關注的另一規則就不太好解釋了。

這么多年下來,我發現所有程序都由極為相似的元素構成。例如“在集合中查找某物”。不管是雇員記錄數據庫還是名-值對哈希表,或者某類條目的數組,我們都會發現自己想要從集合中找到某一特定條目。一旦出現這種情況,我通常會把實現手段封裝到更抽象的方法或類中。這樣做好處多多。

可以先用某種簡單的手段,比如哈希表來實現這一功能,由于對搜索功能的引用指向了我那個小小的抽象,就能隨需應變,修改實現手段。這樣就既能快速前進,又能為未來的修改預留余地。

另外,該集合抽象常常提醒我留意“真正”在發生的事,避免隨意實現集合行為,因為我真正需要的不過是某種簡單的查找手段。

減少重復代碼,提高表達力,提早構建簡單抽象。這就是我寫整潔代碼的方法。

Ron以寥寥數段文字概括了本書的全部內容。不要重復代碼,只做一件事,表達力,小規模抽象。該有的都有了。

[[209415]]
優秀程序員眼中的整潔代碼

Ward Cunningham,Wiki發明者,eXtreme Programming(極限編程)的創始人之一,Smalltalk語言和面向對象的思想領袖。所有在意代碼者的教父。

如果每個例程都讓你感到深合己意,那就是整潔代碼。如果代碼讓編程語言看起來像是專為解決那個問題而存在,就可以稱之為漂亮的代碼。

這種說法很Ward。它教你聽了之后就點頭,然后繼續聽下去。如此在理,如此淺顯,絕不故作高深。你大概以為此言深合己意吧。再走近點看看。

“……深合己意”。你最近一次看到深合己意的模塊是什么時候?模塊多半都繁復難解吧?難道沒有觸犯規則嗎?你不是也曾掙扎著想抓住些從整個系統中散落而出的線索,編織進你在讀的那個模塊嗎?你最近一次讀到某段代碼、并且如同對Ward的說法點頭一般對這段代碼點頭,是什么時候的事了?

Ward期望你不會為整潔代碼所震驚。你無需花太多力氣。那代碼就是深合你意。它明確、簡單、有力。每個模塊都為下一個模塊做好準備。每個模塊都告訴你下一個模塊會是怎樣的。整潔的程序好到你根本不會注意到它。設計者把它做得像一切其他設計般簡單。

那Ward有關“美”的說法又如何呢?我們都曾面臨語言不是為要解決的問題所設計的困境。但Ward的說法又把球踢回我們這邊。他說,漂亮的代碼讓編程語言像是專為解決那個問題而存在!所以,讓語言變得簡單的責任就在我們身上了!當心,語言是冥頑不化的!是程序員讓語言顯得簡單。

責任編輯:未麗燕 來源: 簡書
相關推薦

2015-06-17 14:24:48

優秀程序員整潔代碼

2011-05-13 14:34:02

程序員

2023-11-21 21:47:31

2019-04-10 16:17:02

程序員結構源代碼

2016-05-10 10:28:35

2009-02-23 13:05:32

程序員學習方法

2012-12-03 10:22:24

程序員

2015-09-30 10:04:09

2018-01-17 16:18:06

2015-11-02 14:21:25

2021-09-24 14:50:34

程序員編程經驗

2018-08-17 16:20:23

Linux程序員程序

2019-11-07 22:00:22

程序員代碼規范

2009-02-13 09:45:27

程序員JavaPHP

2015-05-15 09:43:50

程序員代碼

2017-10-29 22:36:41

程序員

2019-02-27 16:28:01

Java程序員編程語言

2015-06-18 06:15:30

程序員怎樣一群人

2017-12-07 16:13:18

程序員編程代碼

2018-02-26 09:28:42

程序員Bug體驗
點贊
收藏

51CTO技術棧公眾號

新91视频在线观看| 分分操这里只有精品| 亚洲综合精品视频| 澳门黄色一级片| 性xxxx视频播放免费| 日韩电影在线观看一区| 久久久久北条麻妃免费看| ass极品水嫩小美女ass| 欧美第一视频| 亚洲精品精品亚洲| 青娱乐一区二区| 国产成人久久精品77777综合| 国产精品综合色区在线观看| 中文字幕精品网| 亚洲少妇中文字幕| 国语自产精品视频在线看抢先版结局| 一区二区三区日韩精品| 日韩偷拍一区二区| 亚洲成人中文字幕在线| 毛片av一区二区| 2021久久精品国产99国产精品| 一区二区三区在线播放视频| 日韩三级毛片| 日韩三级在线观看| 91小视频网站| 欧美日韩大片| 亚洲一区在线观看网站| 亚洲国产日韩综合一区| 香港三日本三级少妇66| 国内精品伊人久久久久影院对白| 热99精品里视频精品| 欧美成人手机视频| 91一区二区| 在线精品播放av| 特级西西人体wwwww| 在线日韩成人| 欧美放荡的少妇| 久久精品影视大全| 欧美大片免费| 欧美性色视频在线| 国产精品自拍片| 欧美人与性动交α欧美精品济南到| 久久精品水蜜桃av综合天堂| 夜夜操天天操亚洲| 日本不卡视频在线播放| 日韩欧美不卡视频| 在线成人www免费观看视频| 免费91在线视频| 欧美手机在线观看| 99久久综合| 日韩中文字幕视频在线| 国产精品成人无码免费| 精品成av人一区二区三区| 日韩av在线最新| 免费成人深夜夜行p站| 国产极品模特精品一二| 亚洲精品在线三区| 污污污www精品国产网站| 99re6热只有精品免费观看| 日韩一区二区电影| 中文在线字幕观看| 粉嫩的18在线观看极品精品| 欧美精品一区二区在线播放| 久久无码专区国产精品s| 8848成人影院| 亚洲黄页视频免费观看| 精品无码在线视频| 妖精视频一区二区三区免费观看| 亚洲欧美在线一区二区| 一区二区三区伦理片| 日韩大片在线| 久久久久www| 国产一级一片免费播放放a| 亚洲高清网站| 国产成人免费av| 中文字幕精品在线观看| 国产原创一区二区三区| 岛国视频一区| 日韩欧美在线观看一区二区| 国产日韩欧美a| 在线观看一区二区三区三州| 亚洲国产精品精华素| 亚洲国产精品影院| 欧在线一二三四区| av国产精品| 亚洲成人网久久久| 亚洲精品国偷自产在线99热| 黄色成人在线看| 丝袜美腿一区| 欧美日韩视频在线观看一区二区三区| 久久精品国产露脸对白| 中文字幕日韩在线| 亚洲视频欧洲视频| 男人与禽猛交狂配| 亚洲在线成人| 国产精品扒开腿做| 午夜精品久久久久久久96蜜桃| 99久久国产综合色|国产精品| 日本视频一区二区不卡| sm国产在线调教视频| 午夜日韩在线观看| 我要看一级黄色大片| 日韩成人精品| 在线免费观看羞羞视频一区二区| 小泽玛利亚一区二区免费| 亚洲人成久久| 91精品国产自产在线老师啪| 四虎国产精品永远| 亚洲精品视频观看| 日韩在线xxx| 亚洲一区二区三区在线免费| 亚洲欧洲国产伦综合| 黄色一级片中国| 日韩成人伦理电影在线观看| 国产传媒一区| 麻豆网站在线观看| 在线中文字幕一区| 国产视频久久久久久| 欧美gayvideo| 日韩女优人人人人射在线视频| 精品国产亚洲一区二区麻豆| 欧美极品少妇xxxxⅹ高跟鞋 | 国内外成人免费激情在线视频网站| 久久久久久久亚洲| av一区二区久久| 亚洲成人动漫在线| 免费视频观看成人| 亚洲人成在线一二| 91美女免费看| 日韩激情欧美| 国产成人免费视频一区| 精品久久久久久综合日本| 成人在线播放免费观看| 欧美日韩综合色| 国产成人无码精品久久二区三| 欧美网站在线| 亚洲在线视频福利| 国产精品刘玥久久一区| 欧美无乱码久久久免费午夜一区| 青青草视频播放| 亚洲高清资源| 97netav| 黄色网页在线观看| 欧美精品1区2区3区| 老司机深夜福利网站| 日韩不卡免费视频| 视频三区二区一区| 成人mm视频在线观看| 亚洲欧洲偷拍精品| 综合网在线观看| 久久久久久久综合色一本| 免费观看精品视频| 亚洲bt欧美bt精品777| 国产91精品视频在线观看| 五月天婷婷视频| 五月天中文字幕一区二区| 怡红院一区二区| 一本久道综合久久精品| 久久精品五月婷婷| 黑人巨大亚洲一区二区久| 亚洲精品有码在线| 色av性av丰满av| 国产精品无码永久免费888| 亚洲男人天堂av在线| 亚洲电影影音先锋| 99视频免费观看| 岛国av免费在线观看| 亚洲另类激情图| 91麻豆精品在线| 国产精品久久毛片a| 日本精品一区在线| 欧美视频导航| 久久亚洲国产精品日日av夜夜| 日韩三级影视| 日韩一区二区精品视频| 国产人妖一区二区| 亚洲不卡一区二区三区| 国产一二三四五区| 国产精品成人aaaa在线| 丝袜亚洲另类丝袜在线| 亚洲国产婷婷香蕉久久久久久99| 精品国产18久久久久久二百| 91国产中文字幕| 成人在线播放视频| 日韩一区二区三区视频在线| 可以免费在线观看的av| 国产精品理伦片| 秘密基地免费观看完整版中文| 亚洲少妇在线| 一区二区欧美日韩| 老牛国内精品亚洲成av人片| 国产精品视频导航| 白白色在线观看| 日韩网站免费观看高清| 亚洲AV无码成人片在线观看| 一本到不卡精品视频在线观看 | 精品人妻伦一区二区三区久久 | 不卡av在线网站| 亚洲 另类 春色 国产| 欧美色综合影院| 欧美黄色一级网站| 中文一区在线播放| yjizz视频| 久久国产精品99精品国产| 人人妻人人做人人爽| 97精品一区二区| 久久精品国产精品国产精品污 | 麻豆蜜桃在线观看| 久久夜精品va视频免费观看| 欧洲成人av| 欧美va天堂va视频va在线| 国产精品成人无码| 午夜不卡在线视频| 国产又黄又爽又无遮挡| 国产视频视频一区| 黄色性生活一级片| 国产99精品视频| 国产永久免费网站| 秋霞午夜av一区二区三区| 免费无码毛片一区二三区| 婷婷另类小说| 色播五月综合| 日韩成人午夜| 国产美女在线精品免费观看| 国产精品日本一区二区三区在线| 国产成人午夜视频网址 | 青娱乐精品视频在线| 影音先锋成人资源网站| 欧美一级精品片在线看| 久久国产一区二区| 999久久久久久久久6666| 亚洲a区在线视频| 巨大黑人极品videos精品| 国产91在线播放精品91| 涩涩视频网站在线观看| 韩国欧美亚洲国产| 狂野欧美性猛交xxxxx视频| 久久精品人人爽| 免费在线观看黄| 一本一道久久a久久精品逆3p| 亚洲色欧美另类| 精品福利视频一区二区三区| 国产三级漂亮女教师| 91麻豆精品国产91久久久久久久久| 中文字幕av久久爽| 欧美在线免费播放| 免费的毛片视频| 日韩欧美中文第一页| 欧美日韩一二三四区| 欧美性生交大片免费| 日韩不卡在线播放| 色噜噜狠狠色综合中国| 日韩免费av网站| 欧美午夜美女看片| 成年人视频免费| 欧美性一级生活| 国产又色又爽又黄又免费| 91精选在线观看| 亚洲av综合色区无码一区爱av| 日韩欧美国产电影| 日本高清视频www| 国产丝袜一区二区| 国产午夜在线观看| 日韩一区二区欧美| 污影院在线观看| 国内精品久久久久久久| 小草在线视频免费播放| 国产精品成人av在线| 日韩三级一区| av成人免费观看| 亚洲精品小区久久久久久| 欧美久久久久久| 99热国内精品| 国产精品第157页| 亚洲深爱激情| av污在线观看| 一级片在线观看视频| 亚洲一区二区三区小说| 欧美另类一区二区| 欧美揉bbbbb揉bbbbb| www.狠狠干| 亚洲欧美国产日韩中文字幕| 午夜在线视频| 欧美激情一区二区三区成人| 无遮挡爽大片在线观看视频| 国产精品普通话| 日韩精品视频一区二区三区| 免费成人深夜夜行视频| 五月综合激情| www..com日韩| 另类的小说在线视频另类成人小视频在线 | 9色在线观看| 欧美大片在线看| 欧美暴力调教| 国产精品成人一区二区三区| 免费看日本一区二区| 妞干网这里只有精品| 亚洲专区欧美专区| 亚洲一级片免费观看| 久久久久99精品国产片| 精品爆乳一区二区三区无码av| 91久久香蕉国产日韩欧美9色| 亚洲第一色视频| 一区国产精品视频| www.51av欧美视频| 91系列在线观看| 国产一区二区区别| 国产一区二区片| 麻豆精品国产传媒mv男同| 波多野结衣视频播放| 亚洲婷婷在线视频| 69xxxx国产| 日韩精品视频免费在线观看| 国产日产一区二区三区| 国产成+人+综合+亚洲欧洲| 高清日韩中文字幕| 亚洲成人自拍视频| 久久国产精品毛片| 精品影片一区二区入口| 综合色中文字幕| 中文永久免费观看| 亚洲美女中文字幕| 嗯啊主人调教在线播放视频| 亚洲在线观看视频| 97人人精品| 亚洲高清免费在线观看| 久久久不卡网国产精品二区| 日韩视频免费观看高清| 日韩欧美国产综合一区| 成人免费在线| 国产日本欧美视频| 秋霞欧美视频| 在线观看免费成人av| 久久精品欧美一区二区三区不卡| 日韩视频免费观看高清| 亚洲成人av在线| 福利写真视频网站在线| 97在线资源站| 国内精品久久久久久久97牛牛 | 亚洲精品蜜桃久久久久久| 国产成人精品亚洲777人妖| 手机在线免费看毛片| 欧美精品日日鲁夜夜添| 男人女人拔萝卜视频| av亚洲在线观看| 欧美日韩一道本| 91视频观看免费| 在线能看的av| 亚洲日本成人网| 欧美日一区二区三区| 四虎永久国产精品| 久久精品免费看| 99国产精品无码| 91精品国产乱| 伊人福利在线| 国产精品视频在线免费观看| 亚洲国产高清一区| 久久午夜夜伦鲁鲁片| 欧美日韩在线视频一区| 欧美成人综合在线| 国产精品久久久久久网站| 欧美中文一区二区| 亚洲精品成人在线播放| 亚洲黄色小视频| 人人妻人人澡人人爽精品日本 | 国产真人真事毛片| 日韩国产欧美精品在线| 日韩精品第一| 欧美爱爱视频网站| 国产 日韩 欧美大片| 91视频免费网址| 中文字幕亚洲在线| 香蕉免费一区二区三区在线观看| 国产3p露脸普通话对白| 久久久亚洲国产美女国产盗摄| 欧美日韩a v| 欧美床上激情在线观看| 国产精品极品| 我要看一级黄色大片| 一区二区在线观看不卡| 午夜黄色小视频| 国产精品中文字幕在线| 欧美激情视频一区二区三区在线播放| 扒开伸进免费视频| 欧美色网站导航| 欧美videos另类精品| 欧美日韩一区二区视频在线| 狠狠色丁香久久婷婷综合丁香| 国产一级久久久| 中文字幕亚洲自拍| 久久中文字幕导航| 国产日韩欧美久久| 亚洲图片欧美色图| 日本在线免费网| 激情小说网站亚洲综合网 | 一本在线高清不卡dvd| 日本免费在线观看| 六月婷婷久久| 国产成人午夜99999| 日韩精选在线观看|