前情提要
上一篇文章中,講到了我在閱讀這本書時的感悟,及我對身邊同伴于這本書閱讀觀感的觀察、疑惑和思考。在今天的文章中,我將說明疑惑是如何被解決的。
如果你看不懂它的話,那么你就看不懂它
前面我們說到,老人們認為,缺乏足夠經驗的新手無法領悟 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 次
這個計算當然是夸張了,但是,它說明了可讀性的代碼對于團隊生產力的巨大破
壞作用,從反面來說,也就證實了可讀性對于團隊開發的重要性。
就是在團隊開發的情況下,別人才需要閱讀你的代碼以進行增量開發和功能拓展,
也就只有在這種情況下,可讀性才顯得如此重要。
自己寫完就扔的代碼,不需要可讀性,就算寫完了只有上帝知道它做了什么,有
什么關系?大括號該放哪兒?蛇底式還是駝峰式?函數命名要用動詞?類名應該
是名詞,不能用復數?自己怎么開心怎么來好吧,管它呢~~~