好的代碼,就像是好的笑話——無需解釋就能讓別人明白。如果你的代碼能夠做到不解自明,在大多數(shù)時候,你根本無需為其配備說明文檔。
好的代碼,就像是一輛配備了好音響和杯架的汽車,這輛車在行駛到很高速度的時候,你聽不到噪音,也不用擔心水會灑出來。在它出現(xiàn)故障的時候,任何一名修理工都可以使用常見的工具,在短的時間里輕松將其修好。
而壞的代碼,就像是一輛向你承諾最高速度可以達到200MPH,但是音響只能播放老式的磁帶,而且杯架還不穩(wěn)的車。你在調整反光鏡角度的時候,汽車都會突然出現(xiàn)故障,而且一般的修理工還修不了這輛車,必須要找大神,讓大神在生產(chǎn)線上使用專業(yè)的工具來修理。
好代碼像是一本寫作技巧高超的人所寫的書
1.容易理解
2.分章明確,每一章都有清晰的主旨
而壞的代碼像是剛剛學會寫字的人所寫的書
1.各個章節(jié)之間紛亂復雜,每一章都沒有明確的主旨
2.連篇累牘的重復一句話,而且毫無緣由
3.作者在一開始設定了一些規(guī)則,但是在后面的內容中卻自己不斷的違反這些規(guī)則
4.突然間書里出現(xiàn)了一個吸血鬼,而且還能在白天出來吸血。
要想寫出好的代碼,你一定要牢記以下內容
可讀性——不只是你,還有你身邊與你合作的其他開發(fā)者
可維護性——讓你的代碼在修改的時候很簡單
簡潔性——不要讓你的代碼看上去毫無必要的復雜
效率性——盡可能的讓你的代碼獲得更快的運行速度
明確性——如果你的代碼能夠做到不解自明,在大多數(shù)時候,你根本無需為其配備說明文檔。在為方法和屬性命名的時候,做到盡可能的合理。把長的代碼進行拆分。不要復制/粘貼代碼塊。
如果你的同事不能輕松的看懂你寫的代碼,那么你的代碼就不夠好。
代碼質量測試
1.找一個從來沒讀過你的代碼的開發(fā)者,讓他看你的代碼,并且讓他試著說出每一個模塊的作用。
2.如果你經(jīng)常需要向他進行解釋,那么說明你的代碼不夠好。解釋的次數(shù)越多,代碼的質量就越低。
3.如果你只是靜靜的坐在一邊,他無需問你任何問題,那說明你的代碼質量很高。
當你在寫代碼的時候,一些信號可以證明你寫的代碼質量不錯:
• 代碼寫的很聰明,但是又不會過分的聰明
• 無論在速度上,還是可讀性上,你都使用了很好的算法
• 類、變量和函數(shù)都得到了正確的命名,讓人看一眼就能理解
• 休息了一個周末之后,你繼續(xù)寫代碼,發(fā)現(xiàn)自己可以立刻繼續(xù)之前的工作
• 那些需要重復使用的東西總是可用
• 你所使用的方法都很短,理想的情況下要少于50行,不超過100行而且能夠巧妙的執(zhí)行單個任務
• 在調用方法的時候,你有著足夠的信息,無需在代碼堆中苦苦尋找
• 能夠很輕松的在此前的代碼中進行功能添加和修改
• try/catch塊的體量盡可能的小
• 毫不費力的就可以寫出單元測試
好代碼都是模塊化的
假設你的項目中有三個不同的層——內層、中層和外層。你的內容不應該從中層和外層那里導入任何東西。中層不應該從外層導入任何東西,這樣做的好處是,你可以對代碼的內層進行獨立測試。
通過動寶兒的講解,大家心里面對代碼有好壞的認識了嗎?