中文字幕高清在线,中文字幕在线电影观看,中文字幕在线看,免费国产一区二区三区,男攻调教双性男总裁,热热涩热热狠狠色香蕉综合,亚洲精品网站在线观看不卡无广告

《Clean Code》讀后感

時(shí)間:2022-04-18 20:31:38 讀后感 我要投稿

《Clean Code》讀后感

  品味完一本名著后,大家心中一定有不少感悟,為此需要認(rèn)真地寫一寫讀后感了。是不是無從下筆、沒有頭緒?以下是小編整理的《Clean Code》讀后感,希望對(duì)大家有所幫助。

《Clean Code》讀后感

  最近淺讀了《Clean Code》這本書,雖然由于知識(shí)水平的有限,很多地方?jīng)]有理解透徹,但還是令我受益頗多。

  毫無置疑,軟件質(zhì)量,不但依賴于架構(gòu)及項(xiàng)目管理,而且與代碼質(zhì)量緊密相關(guān)。這本書圍繞“代碼質(zhì)量與其整潔度成正比”給出了一系列論述以及行之有效的整潔代碼操作實(shí)踐,“干凈的代碼,既在質(zhì)量上較為可靠,也為后期維護(hù)、升級(jí)奠定了良好的基礎(chǔ)”。

  第一章論述了“整潔代碼”。雖然我還沒有豐富的工程實(shí)踐經(jīng)歷,但是第一章中提出的一種錯(cuò)誤的想法“能運(yùn)行的爛程序總比什么都沒有強(qiáng)”非常熟悉,在以往寫簡(jiǎn)單的練習(xí)題時(shí),即使代碼量很小,我首要追求的就是AC這道題,對(duì)代碼質(zhì)量不管不顧,它也解釋了這種做法的原因,即:希望快點(diǎn)完成,早點(diǎn)結(jié)束手上的任務(wù)。然而,制造混亂將會(huì)帶來巨大的代價(jià),往往混亂的代碼在以后的維護(hù)中將會(huì)越來越混亂,隨著混亂的增加,生產(chǎn)力將會(huì)降低趨向于零,后果不堪設(shè)想。開發(fā)者一方面被之前的混亂拖后腿,另一方面背負(fù)期限的壓力只好制造混亂,程序員太難了。文中提到做的快的唯一方法就是始終盡可能保持代碼整潔,可是我又不能讓我之前的開發(fā)者保持代碼的整潔,那這樣就導(dǎo)致程序員一方面要忍受之前的開發(fā)者制造的混亂,又要努力從現(xiàn)在開始盡量保持代碼的整潔,還是太難了,所以往往糟糕的代碼只會(huì)越來越爛,但是不能因?yàn)槔щy就制造混亂,我們要做負(fù)責(zé)任的開發(fā)者、程序員,不僅要為我們的project負(fù)責(zé),也是為后來的開發(fā)、維護(hù)人員負(fù)責(zé)。保持代碼整潔,停止制造混亂,從我做起。不同的人對(duì)整潔代碼的定義不同,文中記錄了一些厲害的程序員的看法,比如Bjarne說“我喜歡優(yōu)雅和高效的代碼。代碼邏輯應(yīng)當(dāng)直截了當(dāng),叫缺陷難以隱藏;盡量減少依賴關(guān)系,使之便于維護(hù);依據(jù)某種分層戰(zhàn)略完善錯(cuò)誤處理代碼;性能調(diào)至最優(yōu),省得引誘別人做沒規(guī)矩的優(yōu)化,搞出一堆混亂。整潔的代碼只做好一件事”,即:“優(yōu)雅”和“效率”;Grady的觀點(diǎn)與Bjarne類似“整潔的代碼簡(jiǎn)單直接。簡(jiǎn)潔的代碼如同優(yōu)美的散文。整潔的代碼從不隱藏設(shè)計(jì)者的意圖,充滿了干凈利落的抽象和直截了當(dāng)?shù)目刂普Z句”。文中還引用了好多人的看法,其中提到的“讓營地比你來時(shí)更干凈”總結(jié)出一條很好的規(guī)定。

  接著,作者從“命名”、“函數(shù)”、“注釋”、“格式”、“對(duì)象和數(shù)據(jù)結(jié)構(gòu)”、“錯(cuò)誤處理”、“邊界”、“單元測(cè)試”、“類”、“系統(tǒng)”、“跌進(jìn)”、“并發(fā)編程”等不同方不同層次分別闡述了寫整潔代碼需要遵守的小技巧,并給出了案例分析,以及3個(gè)Java項(xiàng)目的剖析與改進(jìn)過程。

  命名方面要做到名副其實(shí),名稱應(yīng)該能答復(fù)所有的大問題,它應(yīng)該告訴你它為什么會(huì)存在,它做什么事,應(yīng)該怎么用;命名要避免誤導(dǎo),必須避免留下掩藏代碼本意的錯(cuò)誤線索;命名要做有意義的區(qū)分;使用讀得出來的名稱;使用可搜索的名稱,例如用WORK_DAYS_PER_WEEK比數(shù)字5好得多;命名應(yīng)該準(zhǔn)確,每個(gè)概念對(duì)應(yīng)一個(gè)詞,不用雙關(guān)語,添加有意義的語境但不要添加沒用的.語境。我在我為數(shù)不多的編程經(jīng)歷中,就感受到了命名的難度,受限于自己的描述技巧和文化水平都太平庸,命名總是稀奇古怪,沒有規(guī)范。最近在學(xué)習(xí)交換的程序時(shí),也深受命名的折磨,也許也是自己對(duì)協(xié)議的理解不夠透徹,總覺得程序里面一些PDU定義和協(xié)議里面的規(guī)定不夠統(tǒng)一,我就認(rèn)為程序里面對(duì)PDU元素定義的名稱

  應(yīng)該與協(xié)議里保持完全一致,這樣清晰明了,對(duì)于我這樣的菜鳥新手,分析程序里定義的PDU一些元素的含義花了我好大力氣,深受打擊。

  關(guān)于函數(shù),第一規(guī)則是要短小,我一直明白這個(gè)道理,但是要做到還是很難;函數(shù)應(yīng)該只做一件事,做好這件事,似乎好像做到這條要求,函數(shù)應(yīng)該就會(huì)短小很多,要判斷函數(shù)是否不止做了一件事就是看是否能再拆出一個(gè)函數(shù);函數(shù)別重復(fù)自己,分隔指令與詢問。還有一些規(guī)則,由于自己知識(shí)水平有限不能理解,只能在以后漫長(zhǎng)的學(xué)習(xí)工作中慢慢體會(huì)實(shí)踐,例如每個(gè)函數(shù)一個(gè)抽象層級(jí)、函數(shù)參數(shù)最理想?yún)?shù)數(shù)量是零,其次是一,再次是二,應(yīng)盡量避免三,在我的認(rèn)知里還不能理解函數(shù)怎么能沒有參數(shù),以及使用異常代替返回錯(cuò)誤碼。

  萬萬沒想到,之前都隨便寫的注釋也有講究,雖然有些規(guī)則不明白具體意義,只能在以后的實(shí)踐中慢慢體會(huì)實(shí)踐!笆裁匆脖炔簧戏胖昧己玫淖⑨寔淼糜杏。什么也不會(huì)比亂七八糟的注釋更有本事搞亂一個(gè)模塊。什么也不會(huì)比陳舊、提供錯(cuò)誤信息的注釋更有破壞性”,注釋的恰當(dāng)用法是彌補(bǔ)我們?cè)谟么a表達(dá)意圖時(shí)遭遇的失敗,我很贊成作者解釋的理由“注釋存在的時(shí)間越久,就離其所描述的代碼越遠(yuǎn),越來越變得全然錯(cuò)誤,原因很簡(jiǎn)單,程序員不能堅(jiān)持維護(hù)注釋”。這一章讓我印象深刻,注釋不能美化糟糕的代碼,帶有少量注釋的整潔而有表達(dá)力的代碼要比帶有大量注釋的零碎而復(fù)雜的代碼像樣得多,與其花時(shí)間編寫解釋你搞出的糟糕的代碼的注釋,不如花時(shí)間清潔那堆糟糕的代碼。盡量用代碼來闡述解釋,作者認(rèn)為好注釋有法律信息、對(duì)意圖的解釋、對(duì)某些晦澀的參數(shù)或返回值的意義翻譯、警告、 TODO注釋,千萬不要喃喃自語寫一些廢話注釋,能用函數(shù)或變量時(shí)就別用注釋。

  關(guān)于格式,代碼風(fēng)格和可讀性會(huì)影響到可維護(hù)性和擴(kuò)展性,作者介紹了垂直格式和橫向格式。垂直格式上,應(yīng)該向報(bào)紙學(xué)習(xí),名稱應(yīng)當(dāng)簡(jiǎn)單一目了然,源文件最頂部應(yīng)該給出高層次概念和算法,細(xì)節(jié)應(yīng)該往下漸次展開,垂直方向上每個(gè)函數(shù)之間應(yīng)該有空白行隔開,被調(diào)用的函數(shù)應(yīng)該在執(zhí)行調(diào)用的函數(shù)下面;橫向格式上,賦值操作符周圍加上空格字符,函數(shù)名和左圓括號(hào)之間加空格,乘法因子之間不加空格,加減法運(yùn)算項(xiàng)之間用空格隔開,用好縮進(jìn)。最后要服從團(tuán)隊(duì)規(guī)則,要讓一組開發(fā)者采用團(tuán)隊(duì)規(guī)則從而軟件擁有一以貫之的風(fēng)格。

  寫整潔代碼,需要遵循大量的小技巧,貫徹刻苦習(xí)得的“整潔感。這種“代碼感”就是關(guān)鍵所在。寫代碼和寫文章等創(chuàng)作很像,其實(shí)倒不如把寫代碼也看成一種創(chuàng)作,在寫論文或文章時(shí),你先想什么就寫什么,然后再打磨它,初稿也許粗陋無序,你就斟酌推敲,直至達(dá)到你心目中的樣子,代碼也需要打磨直至成為整潔的代碼。但是感覺實(shí)際工作中,大部分代碼調(diào)試至通過測(cè)試就耗費(fèi)了大量精力,通過測(cè)試后也就沒有更多力氣來打磨代碼了。

  在閱讀這本書的時(shí)候,我感到非常吃力,有沒有Java基礎(chǔ)的原因,也有缺乏軟件開發(fā)一些基本理念的原因,還有缺乏實(shí)戰(zhàn)的經(jīng)歷,很多應(yīng)用背景我都理解不了,很多地方對(duì)我來說有點(diǎn)晦澀難懂,在今后的學(xué)習(xí)、工作中,要繼續(xù)對(duì)其中提到的規(guī)則進(jìn)行理解、消化、實(shí)踐最終變成自己在編程中本能的能力,希望自己能在以后的學(xué)習(xí)中多多積累軟件開發(fā)的一些“常識(shí)”,能夠養(yǎng)成良好的軟件開發(fā)的習(xí)慣,形成屬于自己的軟件開發(fā)思維,我覺得這些大牛程序員就是在長(zhǎng)時(shí)間的實(shí)踐中不斷思考不斷通過思考提升自己的代碼質(zhì)量,然后日積月累形成了屬于自己的一套理論。我也希望自己在寫代碼的時(shí)候能夠多思考,怎么寫更好,怎么寫能夠既實(shí)現(xiàn)功能又整潔、可讀性高、可維護(hù)性和可擴(kuò)展性好,這一定需要長(zhǎng)時(shí)間的學(xué)習(xí)、實(shí)踐、思考才能慢慢進(jìn)步逐步提高。不要僅僅只是追求實(shí)現(xiàn)功能,這只是最基本的目的,我覺得隨著自己的進(jìn)步,可以提高對(duì)自己的要求,寫混亂的代碼即使實(shí)現(xiàn)了功能也要丟棄它,還希望自己有一天能有能力把我負(fù)責(zé)的程序都能進(jìn)一步規(guī)范一下。看了這本書,程序員的工作在我心中又上升了N個(gè)階層的難度,讓我明白自己還有很多基礎(chǔ)知識(shí)需要學(xué)習(xí),還需要大量實(shí)踐實(shí)戰(zhàn),默默給自己加油。

【《Clean Code》讀后感】相關(guān)文章:

clean的反義詞08-10

Unit 11 Could you please clean your room?說課稿11-04

高中英語作文|干凈的車廂 Clean Train01-12

《名人故事》讀后感-讀后感06-23

《百萬英鎊》讀后感-讀后感800字 讀后感范文03-31

高老頭讀后感作文-讀后感04-12

父親的病讀后感-讀后感04-12

《童年》讀后感_讀后感700字09-13

童年600字讀后感-讀后感06-19

《童年》700字讀后感-讀后感06-19