對碼農而言什麼樣的程式碼才能叫做好程式碼?

sdk.cn發表於2016-08-13

好的程式碼,就像是好的笑話——無需解釋就能讓別人明白。如果你的程式碼能夠做到不解自明,在大多數時候,你根本無需為其配備說明文件。

好的程式碼,就像是一輛配備了優秀音響和杯架的汽車,這輛車在行駛到最高速度的時候,你聽不到噪音,也不用擔心水會灑出來。在它出現故障的時候,任何一名修理工都可以使用最常見的工具,在最短的時間裡輕鬆將其修好。

而壞的程式碼,就像是一輛向你承諾最高速度可以達到200MPH,但是音響只能播放老式的磁帶,而且杯架還不穩的車。你在調整反光鏡角度的時候,汽車都會突然出現故障,而且一般的修理工還修不了這輛車,必須要找專家,讓專家在生產線上使用專業的工具來修理。

好程式碼像是一本寫作技巧高超的人所寫的書

1.容易理解

2.分章明確,每一章都有清晰的主旨

而壞的程式碼像是剛剛學會寫字的人所寫的書

1.各個章節之間紛亂複雜,每一章都沒有明確的主旨

2.連篇累牘的重複一句話,而且毫無緣由

3.作者在一開始設定了一些規則,但是在後面的內容中卻自己不斷的違反這些規則

4.突然間書裡出現了一個吸血鬼,而且還能在白天出來吸血。

要想寫出好的程式碼,你一定要牢記以下內容

可讀性——不只是你,還有你身邊與你合作的其他開發者

可維護性——讓你的程式碼在修改的時候很簡單

簡潔性——不要讓你的程式碼看上去毫無必要的複雜

效率性——儘可能的讓你的程式碼獲得最快的執行速度

明確性——如果你的程式碼能夠做到不解自明,在大多數時候,你根本無需為其配備說明文件。在為方法和屬性命名的時候,做到儘可能的合理。把長的程式碼進行拆分。不要複製/貼上程式碼塊。

如果你的同事不能輕鬆的看懂你寫的程式碼,那麼你的程式碼就不夠好。

程式碼質量測試

1.找一個從來沒讀過你的程式碼的開發者,讓他看你的程式碼,並且讓他試著說出每一個模組的作用。

2.如果你經常需要向他進行解釋,那麼說明你的程式碼不夠好。解釋的次數越多,程式碼的質量就越低。

3.如果你只是靜靜的坐在一邊,他無需問你任何問題,那說明你的程式碼質量很高。

當你在寫程式碼的時候,一些訊號可以證明你寫的程式碼質量不錯:

  • 程式碼寫的很聰明,但是又不會過分的聰明
  • 無論在速度上,還是可讀性上,你都使用了最佳的演算法
  • 類、變數和函式都得到了正確的命名,讓人看一眼就能理解
  • 休息了一個週末之後,你繼續寫程式碼,發現自己可以立刻繼續之前的工作
  • 那些需要重複使用的東西總是可用
  • 你所使用的方法都很短,最理想的情況下要少於50行,最多不超過100行而且能夠完美的執行單個任務
  • 在呼叫方法的時候,你有著足夠的資訊,無需在程式碼堆中苦苦尋找
  • 能夠很輕鬆的在此前的程式碼中進行功能新增和修改
  • try/catch塊的體量儘可能的小
  • 毫不費力的就可以寫出單元測試

好程式碼都是模組化的

假設你的專案中有三個不同的層——內層、中層和外層。你的內容不應該從中層和外層那裡匯入任何東西。中層不應該從外層匯入任何東西 ,這樣做的好處是,你可以對程式碼的內層進行獨立測試。

“好的程式碼本身就是最好的說明文件。” — Steve McConnell

相關文章