- N +

代碼整潔之道讀后感2000字?程序員修煉之道讀后感

本篇文章給大家談談代碼整潔之道讀后感2000字,以及程序員修煉之道讀后感對應的知識點,文章可能有點長,但是希望大家可以閱讀完,增長自己的知識,最重要的是希望對各位有所幫助,可以解決了您的問題,不要忘了收藏本站喔。

有代碼潔癖的人看到團隊里隨意寫代碼的人該怎么安慰自己

好問題!我自己有時候也會受到類似的困擾。

我感覺自己屬于代碼潔癖的那種。潔癖到什么程度呢?有時候一個變量的命名要思考好久,平時看到代碼里的空格不規范啥的,總是想糾正過來。

例如:a=a+1,我總想糾正為a=a+1

有時確實會看到一些比較隨意的代碼。當然不都是同團隊的,還有從別的團隊接手過來要維護的程序。遇到一些奇怪的代碼,也總是有想吐槽的心理。不過為什么要安慰自己呢?因為自己看著不爽嗎,這個我覺得是自己心態的問題了,如果潔癖到了這種程度是要調整一下的。

至于怎么面對不規范的代碼,有些建議供參考。

要明白不規范的代碼屬于哪種類型,有的屬于可讀性差,有的屬于性能問題,有的屬于擴展性差。

如果你和同事關系不錯,可以試著溝通一下,把不規范的地方修改掉

對于可能對功能或性能有影響的問題,不要藏著掖著,務必要在上線前改掉,否則可能會留下后患

學會自省,現在不少程序員有個毛病。總覺得自己代碼完美無缺,別人的代碼就是一坨翔,這個很不可取。先看看自己有沒有類似的毛病

如果同事不聽勸,那也沒關系。我們更重要的是提升自己的水平,這樣長期看才有更強的競爭力。

代碼規范是工程規范的一部分,對自身有追求的程序員不會放過對代碼整潔的追求。推薦《代碼整潔之道》這本書,學習學習前人的經驗。給自己的未來打下扎實的基礎。

經典代碼需要背誦嗎

我覺得首先要弄清楚代碼是什么?代碼是一個人去抽象的表達世界的方式,是人與計算機溝通的渠道。

我認為好的代碼體現在兩個方面:

1、代碼整潔度,規范化,標準化。

這是一個經驗豐富的軟件工程師所必備的技能,經驗豐富的工程師在設計之初就會想到,如何擁抱產品的變化,變化是永恒的,沒有不變的需求。所以為了能夠最大限度的適應產品的變化,就要求代碼去解耦,“一個函數只做一件事”等等良好的規范。

這種代碼,我認為首先要做的是欣賞,然后在自己工作對照,進而就心領神會了,這種代碼背也沒用。

2、常用的算法

常用的算法,如二分查找、經典的排序算法,我認為還是需要在理解的基礎上,多寫一遍,從而達到背的結果,但是核心還是去理解算法的精髓。

3、經典的軟件實現

比如redis,MySQL,Linux等等非常優秀的軟件實現,這個時候我認為最關鍵的是,理解作者為什么這么設計,需要上升一層高度去理解它,這樣才能擴寬自己的思維。如果是專門吃這碗飯的,比如dba,理解MySQL代碼,才能端好這碗飯,如果能背下來,那肯定理解到不一般的地步了。

歡迎大家關注我~~

在頭條發了評論,支持代碼整潔之道,被一群功能實現就好的觀點的人碰了,你怎么看

為什么不能編輯呢,寫錯一個字,噴字

如何寫出優雅的Java代碼

請仔細閱讀,努力學習這幾種程序設計方法。真的對java編程很有好處,希望可以背下來。

論面向組合子程序設計方法之創世紀

論面向組合子程序設計方法之失樂園之補充

論面向組合子程序設計方法之燃燒的荊棘

論面向組合子程序設計方法之新約

論面向組合子程序設計方法之oracle

論面向組合子程序設計方法之重構

論面向組合子程序設計方法之monad

論面向組合子程序設計方法之南無阿彌陀佛

論面向組合子程序設計方法之重構2

論面向組合子程序設計方法之微步轂紋生

熟讀并背誦,每個月默寫一次

如何寫出簡潔、高效的代碼

給親推薦一篇阿里巴巴高級開發工程師竹澗分享的關于代碼整潔之道的一篇文,希望對你有所幫助。

Anyfoolcanwritecodethatacomputercanunderstand.Goodprogrammerswritecodethathumanscanunderstand.

普通的工程師堆砌代碼,優秀的工程師優雅代碼,卓越的工程師簡化代碼。如何寫出優雅整潔易懂的代碼是一門學問,也是軟件工程實踐里重要的一環。筆者推薦三本經典的書籍《代碼整潔之道》、《編寫可讀代碼的藝術》、《重構:改善既有代碼的設計》,下文重點將從注釋、命名、方法、異常、單元測試等多個方面總結了一些代碼整潔最佳實踐,大部分是筆者總結于以上三本書中的精華,也有部分是筆者工程實踐的總結。篇幅有限,本文將總結性給出一些實踐建議,后續會有文章來給出一些代碼整潔之道的事例。

注釋

不要給不好的名字加注釋,一個好的名字比好的注釋更重要不要“拐杖注釋”,好代碼>壞代碼+好注釋在文件/類級別使用全局注釋來解釋所有部分如何工作一定要給常量加注釋團隊統一定義標記TODO待處理的問題FIXME已知有問題的代碼HACK不得不采用的粗糙的解決方案在注釋中用精心挑選的輸入輸出例子進行說明注釋應該聲明代碼的高層次意圖,而非明顯的細節不要在代碼中加入代碼的著作信息,git可以干的事情不要交給代碼源代碼中的html注釋是一種厭物,增加閱讀難度注釋一定要描述離它最近的代碼注釋一定要與代碼對應公共api需要添加注釋,其它代碼謹慎使用注釋典型的爛注釋不恰當的信息廢棄的注釋冗余注釋糟糕的注釋注釋掉的代碼唯一真正好的注釋是你想辦法不去寫的注釋不要有循規式注釋,比如setter/getter注釋不要添加日志式注釋,比如修改時間等信息(git可以做的事情)注釋一定是表達代碼之外的東西,代碼可以包含的內容,注釋中一定不要出現如果有必要注釋,請注釋意圖(why),而不要去注釋實現(how),大家都會看代碼適當添加警示注釋

命名

盡可能使用標準命名方法,比如設計模式,通用學術名詞等命名要找更有表現力的詞使用更專業的詞,比如不用get而使用fetch或者download避免空泛的名字,像tmp使用具體的名字來細致的描述事物給變量名帶上重要的細節,比如加上單位ms等為作用域大的名字采用更長的名字,作用域小的使用短名字變量類型為布爾值表達加上is,has,can,should這樣的詞會更明確變量名稱長短應該與其作用域對應別害怕長名稱,長而具有描述性的名稱比短而令人費解的名稱好函數名稱應該說明副作用,名稱應該表達函數,變量或類的一切信息,請不要掩蓋副作用,比如CreateAndReturnXXX

方法

函數不應該有100行那么長,20行封頂最好ifelsewhile等控制語句其中代碼塊應該只有一行,也就是一個函數調用語句函數的鎖進層次不應該多于兩層一個函數只做一件事,一個函數不應該能抽象出另外一個函數某個公共函數調用的私有函數緊隨其后最理想的參數是零參數,最長不要超過三個入參,盡量不要輸出參數如果函數傳入三個及以上參數最好將其抽象為類標識參數十分丑陋,向函數傳入布爾值用于區分不同業務的做法很丑陋,應該拆分為多個函數別返回null值,拋出異常或者返回特殊對象,盡量避免NPE別傳入null值

異常與錯誤

抽離trycatch包含的代碼塊,其中代碼塊抽象為一個函數拋出的每個異常,都應當提供足夠的環境說明,已便判斷錯誤的來源與處所不要將系統錯誤歸咎于偶然事件

并發

分離并發相關代碼與其它代碼嚴格限制對可能被共享的數據的訪問避免使用一個共享對象的多個同步方法保持同步區域微小,盡可能少設計臨界區

單元測試

不要怕單元測試的方法名字太長或者繁瑣,測試函數的名稱就像注釋不要追求太高的測試覆蓋率,測試代碼前面90%通常比后面10%花的時間少使用最簡單的并且能夠完整運用代碼的測試輸入給測試函數取一個完整性的描述性名字,比如Test_測試代碼與生產代碼一樣重要如果測試代碼不能保證整潔,你就會很快失去他們每個測試一個斷言,單個測試中斷言數量應該最小化也就是一個斷言FIRST原則快速Fast獨立Independent測試應該相互獨立可重復Repeatable測試應當在任何環境中重復通過自足驗證Self-Validating測試應該有布爾值輸出及時Timely最好的方式是TDD

代碼結構

代碼行長度控制在100-120個字符可能用大多數為200行,最長500行的單個文件構造出色的系統關系密切的代碼應該相互靠近變量聲明應該靠近其使用位置若某個函數調用了另外一個,應該把他們放在一起,而且調用者應該放在被調用者上面自上向下展示函數調用依賴順序應該把解釋條件意圖的函數抽離出來,盡可能將條件表達為肯定形式不要繼承常量,比如接口中定義常量,不要使用繼承欺騙編程語言的作用范圍規則模塊不應了解它所操作對象的內部情況DTO(DataTransferObjects)是一個只有公共變量沒有函數的類對象暴露行為,隱藏數據不要使用“尤達表示法”如if(null==obj),現代編譯器對if(obj=null)這樣的代碼會給出警告一般情況使用ifelse,簡單語句使用三目運算符通常來講提早返回可以減少嵌套并讓代碼整潔

設計

類應該足夠短小類應該滿足單一權責原則(SRP),類和模塊只有一個修改理由類應該只有少量的實體變量類應該遵循依賴倒置原則DIP(DependencyInversionPrinciple),類應該依賴于抽象而不是依賴于具體細節類中的方法越少越好,函數知道的變量越少越好,類擁有的實體變量越少越好通過減少變量的數量和讓他們盡量“輕量級”來讓代碼更有可讀性減少變量縮小變量的作用域只寫一次的變量更好,如常量最好讀的代碼就是沒有代碼從項目中消除不必要的功能,不要過度設計從新考慮需求,解決版本最簡單的問題,只要能完成工作就行經常性地通讀標準庫的整個API,保持對他們的熟悉程度簡單設計運行所有測試不可重復表達了程序員的意圖盡可能減少類和方法的數量以上規則按重要程度排列無論是設計系統或者單獨模塊,別忘了使用大概可工作的最簡單方案整潔的代碼只提供一種而非多種做一件事的途徑,他只有盡量少的依賴。明確定義并提供盡量少的API減少重復代碼,提高表達力,提早構建,簡單抽象

小結

作為代碼整潔之道系列的第一篇,本文從注釋、命名、方法,單元測試,并發等視角簡單給出了一些最佳實踐,下文我們會展開來從每個方面介紹更多的實踐事例。相信每一個優秀的工程師都有一顆追求卓越代碼的心,在代碼整潔工程實踐上你有哪些好的建議?數百人協作開發的代碼如何保證代碼整潔一致性?歡迎大家來討論。

關于本次代碼整潔之道讀后感2000字和程序員修煉之道讀后感的問題分享到這里就結束了,如果解決了您的問題,我們非常高興。

返回列表
上一篇:
下一篇: