你是否應該讀 Clean Code 這本書 (中)

前情提要

上一篇文章中,講到了我在閱讀這本書時的感悟,及我對身邊同伴于這本書閱讀觀感的觀察、疑惑和思考。在今天的文章中,我將說明疑惑是如何被解決的。

如果你看不懂它的話,那么你就看不懂它

前面我們說到,老人們認為,缺乏足夠經驗的新手無法領悟 Clean Code。這難道不是一個很諷刺的回答嗎?一本書寫出來是為了給人指導的,如果說,只有已經具備很足夠經驗的人才能看懂它,而無法對缺乏經驗的人一點幫助,那么,這本書其實是無用的。打個比方的話,就等于幼兒園的小朋友看線性代數……

反過來想

到這個地步,基本上這個問題是無解的了。于是我想到《如何解題》中的建議——
反過來思考。

我一直在想 Clean Code 這本書該怎么看,怎樣才能從中得到收獲?可是我從來
沒有問過,為什么我要讀這本書!

是呀,為什么我需要讀這本書呢?老人們為什么想讓我讀這本書呢?他們認為讀了這本書可以習得一些編寫整潔代碼的要點,會提高代碼的質量。

為什么要讀這本書 -> 老人的建議 -> 提高代碼質量

也就是說,其實他們的 目的是讓我提高代碼質量,而不是讀這本書本身 。于是,我們成功地可以把問題從 如何閱讀 Clean Code 規約為 如何提高代碼質量

感覺好像問題變得更加明了了,但是如果我們再深入一步呢——為什么要提高代碼
質量?

高質量代碼 -> 可讀性高 

可讀性高 -> 別人能看得懂

為什么要讓別人讀得懂 -> 減少溝通成本

為什么要減少溝通成本 -> 團隊開發

這才是真正的問題,整潔代碼的目的在于減少團隊成員的溝通成本,而不在于寫出讓自己滿意的代碼。

什么是 Clean Code

深合己意?

如何每個例程都讓你感到深合己意,那就是整潔代碼 - 沃德原則

咋看之下,這說的是對的。仔細想想,會發現這句話是經不起推敲的。我寫了一
段自己滿意的代碼,那么它就是整潔代碼了。如果正如這個 沃德原則 所言的話,
那么整潔的垃圾代碼真的不少。自己滿意,但是別人看不懂的代碼多了去了,這
句話純粹是廢話,完全經不起推敲。

那么到底怎樣才算是整潔代碼?

大家好才是真的好?

如果每段代碼都讓團隊里的人一看就知道是什么意思,那就是整潔代碼。

代碼的質量不是作者自己能評定的,要由團隊來決定。能讓團隊成員一下子看懂
的,符合團隊開發風格的,才是質量高的代碼。程序員的工作,很少單獨有一個人完成的。正是因為團隊開發的原因,整潔代碼才是有必要的。

真正的問題

只有在團隊開發的情況下,別人才需要不得不大量閱讀你編寫的代碼。這個時候,
如果你寫的代碼可讀性特別差,就會大大提高成員之間的溝通成本,降低工作效
率。

兩個人的團隊中,A 和 B 每天開始工作時都得問對方寫的代碼是什么意思
三個人的團隊中,A, B 和 C 一共需要溝通 6 次
四個人的團隊中,A,B,C 和 D 需要 24 次
五個人的團隊中,A,B,C,D 和 E 需要 120 次

這個計算當然是夸張了,但是,它說明了可讀性的代碼對于團隊生產力的巨大破
壞作用,從反面來說,也就證實了可讀性對于團隊開發的重要性。

就是在團隊開發的情況下,別人才需要閱讀你的代碼以進行增量開發和功能拓展,
也就只有在這種情況下,可讀性才顯得如此重要。

自己寫完就扔的代碼,不需要可讀性,就算寫完了只有上帝知道它做了什么,有
什么關系?大括號該放哪兒?蛇底式還是駝峰式?函數命名要用動詞?類名應該
是名詞,不能用復數?自己怎么開心怎么來好吧,管它呢~~~

未完待續……

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,489評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,290評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,776評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,510評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,866評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,036評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,585評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,331評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,536評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,754評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,154評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,469評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,273評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,505評論 2 379

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,733評論 25 708
  • 前情提要 在前兩篇文章中,我們已經明確了 Clean Code 的目的是減少團隊成員的溝通成本,今天我將根據自身的...
    afaren閱讀 849評論 6 1
  • 本文把程序員所需掌握的關鍵知識總結為三大類19個關鍵概念,然后給出了掌握每個關鍵概念所需的入門書籍,必讀書籍,以及...
    dle_oxio閱讀 11,177評論 6 244
  • 最近,Gary Bernhardt 在一個簡短的演講視頻“Wat”中指出了一個有趣的 JavaScript 怪癖:...
    theCoder閱讀 483評論 0 0
  • 今夜又會夢見 那個熟悉又陌生的身影嗎 希望不會 那代表徹底的遺忘 夢是滿足愿望 弗洛伊德的聲音 穿越時空印在課本上...
    Snail蓉閱讀 280評論 0 0