|
好代碼像好的段子,不需要多余的解釋。
如果你的代碼是不解自明的,那么大多數(shù)情況下,它并不需要注釋和文檔。
好代碼就像一部好車,輕輕松松飚到最高時速。當出了問題,任何修補機制都能將它推進車庫,以很簡單的工序,使用基本的工具將其修復。而爛代碼就像一輛車,它聲稱可達200MPH,但音響只能播磁帶,放置杯子的地方也滿是污點。每當你嘗試調(diào)整后視鏡,車都多少起點火,而且必須得特定人員來,在高檔流水線上,使用來自星星的工具將車再拼起來。
好代碼就像一本好的教科書
- 簡單易懂。
- 很精巧的分成章節(jié),每章每節(jié)都有不同的意義。
爛代碼就像寫的很爛的教科書
- 章節(jié)之間互相引用,而又搞不清每一節(jié)說的是什么。
- 不停地說同樣一件事,讓人莫名其妙。
- 作者會提出一些規(guī)則之外的特例,常常還自相矛盾。
如果你想寫好代碼,那么你應當記住
- 可讀性 —— 對你與所有讀你代碼的人。
- 可維護性 —— 保持你的代碼易于修改。
- 簡單 —— 不要帶來不必要的復雜性。
- 高效 —— 你應讓你的代碼盡可能快。
- 清晰 —— 如果的你代碼不解自明,那么大多數(shù)情況下并不需要注釋。方法與屬性的命名要說得通。把大段代碼分割成小的模塊。不要復制粘貼代碼塊。必要時要提供注釋和文檔,因為代碼注釋是源代碼中唯一可以讓人類直接閱讀的文字,用于解釋為什么某一段代碼存在。
代碼質(zhì)量測試
- 找一個從沒看過你的代碼的同伙讀一遍并向你解釋每一模塊是干什么的。你越想插嘴解釋幾句,你的代碼可能就越爛。如果你能很安靜的閉嘴坐著,而你的同伙不需要問太多問題,那么你的代碼很可能不錯。
好代碼預兆
- 寫的代碼挺聰明的,但沒耍小聰明。
- 算法在速度與可讀性都是最優(yōu)的。
- 類、變量和函數(shù)的命名都說得通,不需要多余思考。
- 一周不看這片代碼后還能很快投入進入。
- 該重用的都重用了,沒重用的隨時可以重用。
- 方法都不長,都能單獨完成一項任務。
- 當你調(diào)用一個方法時不需要進去看代碼。
- 你的每個類都有一個單獨的、清晰的職責(單一職責原則)。并與其它職責不同的類分離。
- 你的方法都很簡短,大多在50行以下,全部在100行以下,而且從名稱可以清晰看出功能。
- 當你需要回去修改項目功能時并不費勁,甚至很輕松。
- 你的try/catch代碼塊很小。
- 單元測試很好寫。
好代碼是模塊化的
假設你的項目中有三層:內(nèi)層,中層和外層。那么內(nèi)層不應該依賴中層和外層,而中層不應該依賴外層。這樣,你的內(nèi)層就可以被單獨測試了。
在此再次奉上Bob大叔的Clean架構。
好代碼是最好的文檔。 —— SteveMcConnell
|