clean code 是一本備受業(yè)界推崇的書,但是,你是否真的應(yīng)該閱讀這本書,以及你能夠從書中得到期望的收獲,取決你所處的階段。本文敘述我在閱讀這本書期間產(chǎn)生的一些疑惑和思考。
引子
正式上班了,我的 Buddy 推薦我看這本書并寫些閱讀心得,算是任務(wù)的產(chǎn)出。
可事實上,我很抗拒看這本書,不僅因為我在大學(xué)的時候就讀過這本書,更是因為,我發(fā)現(xiàn)它對我的影響很小的,我覺得這是一本幾乎無用的書。
兩極分化的評價
新人
大四實習(xí)的時候,一起實習(xí)的其他 15 個小伙伴都在思沃學(xué)院的林老師建議下閱讀了這本書。從他們那里,得到的評價跟我?guī)缀鯚o差。
“感覺看了跟沒看一樣!講的都是一些大白話“
“感覺寫的都是一些常識”
也就是說,這本書對他們產(chǎn)生的影響同樣很小。
老人
這次我特意上豆瓣看了這書的所有評價,下面是典型的老人的評價:
這是一本真正的好書,不過如果讀者沒有一定的經(jīng)驗,以及缺乏對編程境界的追求的話,可能認為這本書很一般,甚至認為只是說了一些大白話。
很可笑,我們的想法原來沒有錯,老人也覺得新人會認為這本書知識說了一些大白話。
一本評價兩極分化的書,到底是寫給誰看的呢?
讀者群
這同樣是一篇豆瓣評價:
說實話,我一直在琢磨 Clean Code 這本書的目標(biāo)人群到底應(yīng)該是誰。對于在校學(xué)生,甚至剛剛工作了一兩年的fresh coder,這本書的價值并沒有想象的。
原因比較簡單:clean code這本書的大部分內(nèi)容是建立在作者大量編程實踐之后的回溯和反思,類似于經(jīng)驗提煉式的總結(jié)。如果讀者沒有一定的實踐功底,很容易忽略很多看起來像常識一樣的細枝末節(jié),而往往那些細節(jié)才是寫出 clean code 的關(guān)鍵。從另一個角度上說,看書的時候講究一個悟字,悟來自于自身的經(jīng)驗與作者講述內(nèi)容的碰撞,碰撞后產(chǎn)生深層次的交流和記憶。如果只是填鴨式的說教,那么效果自然不會理想。
從上面兩篇豆瓣評價可以看出,事實上,Clean Code 這本書對新人的作用是很小的,跟我的生活經(jīng)驗一致。
疑惑
可是為什么呢?這些老人的評價讓我產(chǎn)生了疑惑: 為什么常識在新手看來是無用的大白話,而老人卻認為是寶物?
我不禁聯(lián)想到流行的一句話——聽了很多道理,可是仍然過不好這一生!
這個問題,在兩篇評價中其實也回答了,是因為新人缺少足夠的經(jīng)驗,沒有到達可以感受 Clean Code 的階段。
又一個疑惑
可是,這不就很可笑么。這樣一本意在教授程序員寫好程序的書,只能給那些已經(jīng)能把程序?qū)懞玫娜丝础?/p>
從道理到實踐,從知到行,從讀 Clean Code 到寫 Clean Code,中間到底缺失了什么呢?
是經(jīng)驗!
可是經(jīng)驗不就從實踐中來嗎?這不就無解了么?