代碼潔癖系列(一):什麼是整潔代碼

做爲一個代碼潔癖患者,我最大的願望就是世界和平……對不起,拿錯劇本了,最大的願望就是將對代碼的潔癖傳播給每個人,淨化全部的代碼。這是一個宏大的願望,但我會一直努力淨化我所看到的每一行代碼,而且但願能影響更多的人,讓你們都寫出整潔的代碼。程序員

在閱讀本文以前,想先提兩個問題:微信

你是程序員嗎?編輯器

你想成爲更好的程序員嗎?函數

若是上面兩個回答都是確定的,那請你繼續讀下去,不然就能夠直接關閉網頁了。單元測試


什麼是整潔代碼測試

相信有過必定工做經驗的程序員都讀過別人的代碼,也必定看到過槽糕的代碼,看到那些糟糕的代碼時你是否是在想:這寫的什麼垃圾東西,讀懂這段代碼所花費的時間我都能把這個功能再實現一遍了。還有另外一種狀況:引用別人的代碼時,爲了能按時完成,不得不去適應別人的代碼風格,跟着製造混亂。當混亂愈來愈多時,整個團隊的生產力也愈來愈低,直到最後不得不把全部代碼從新整理一遍,而這個工做裏可想而知。spa

上面說的都是糟糕的代碼所帶來的影響。那麼什麼是整潔的代碼呢?在我看來能夠從兩個方面定義整潔代碼:.net

      外在美orm

外觀看起來優雅美觀的代碼會令人心情愉悅。其中主要體如今:代碼所在的位置是否恰當,代碼裏是否有適當的註釋,適當的縮進和空行以及沒有重複代碼等等。blog

      內在美

外在美只是「看起來」令人心情愉悅,若是缺少內在美,那麼當別人真正開始讀的時候,剛纔愉悅的心情會在一瞬間煙消雲散。而內在美則體如今:儘可能少的API,代碼之間的儘可能少的依賴,乾淨利落的抽象和直截了當的控制語句等。

在理解了什麼是整潔代碼後,但願咱們在寫每一行代碼以前都要思考一下,這行代碼是否足夠整潔,是否讓人看了心情愉悅。

以後的一段時間,我也將會從如下幾個方面和你們分享,如何寫出整潔的代碼。

有意義的命名

什麼是無心義的命名?若是代碼中全部的變量名,函數名都是abcd之類的,相信你在看到這樣一段代碼的第一眼就已經失去了讀下去的慾望了。也許有人以爲這太極端了,認爲不會有人這樣寫代碼。那麼咱們在考慮一下,我爲一個變量命名爲name,那麼在沒有先後語境的狀況下,你能想象出這個變量是用來作什麼的嗎?是一我的的name仍是一個物品的name,是firstName仍是lastName?因此,有意義的命名對代碼閱讀是很是重要的。


如何定義類和函數

如何定義相信你們都會,畢竟這是最基本的操做,那麼怎麼才能算是整潔的類和函數呢?


要不要寫註釋

大多數程序員都以爲寫註釋(文檔)很麻煩,以爲本身的工做就是實現功能,本身寫的代碼本身能看懂就行。事實上真的是這樣嗎,他們真的能看懂本身三個月前寫的代碼嗎?

另外一種程序員知道要寫註釋,可是他們寫的註釋都是諸如:「這是一個方法」、「這是一個循環」……這樣的註釋寫出來真的有意義嗎


如何排版

這個屬於外在美,第一印象很重要,第一眼看上去很好,纔會繼續看下去不是嗎。


錯誤處理

代碼運行時的錯誤如何處理嗎?所有拋出去,交個用戶處理?所有catch住,隱藏起來不處理?這兩種程序員相信都會被老闆當成錯誤處理掉吧。


合格的單元測試

什麼樣的單元測試纔算合格,單元測試對代碼的覆蓋率要達到多少?


迭代

胖子歷來都不是一口吃成的,怎麼才能讓你的代碼愈來愈飽滿,系統愈來愈穩定呢?惟有不斷迭代。


結語

上面這些問題,我將在後面的文章中挨個解讀。但願你讀完以後,也能化身爲整潔代碼的守護者。以爲這個系列不錯的話就幫忙點個贊吧。

END




本文分享自微信公衆號 - 代碼潔癖患者(Jackeyzhe2018)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索