前情提要
在前兩篇文章中鉴裹,我們已經(jīng)明確了 Clean Code 的目的是減少團(tuán)隊(duì)成員的溝通成本澳淑,今天我將根據(jù)自身的經(jīng)驗(yàn)講述怎樣才能學(xué)習(xí)編寫 Clean Code泌豆,這完全是一家之談,有不對(duì)之處溜畅,請(qǐng)不吝賜教庇楞。
如何提高代碼質(zhì)量
老人的回答
大多數(shù)情況下榜配,拿著這個(gè)問題去問有經(jīng)驗(yàn)的人,基本上都會(huì)到同樣的回答:多讀吕晌,多寫蛋褥。更具體一些,就是睛驳,多讀別人寫的好的優(yōu)秀的代碼烙心,多自己寫代碼》Ψ校可事實(shí)上淫茵,這個(gè)回答是沒有用的。很多寫不出高質(zhì)量代碼的人蹬跃,他是感受不到別人代碼的優(yōu)秀的匙瘪。舉一個(gè)例子,我曾經(jīng)在西安參加過一屆 Code Retreat 活動(dòng),會(huì)上每個(gè)人都會(huì)在迭
代完了之后展示自己寫的代碼丹喻,我看到了很多優(yōu)秀的設(shè)計(jì)薄货,收到很多啟發(fā)。但是碍论,跟我同去幾個(gè)小伙伴谅猾,有兩個(gè)都表示,不明白為什么別人的代碼好在哪里鳍悠!
看了不懂還是不懂赊瞬,死磕?
在老人向沒有經(jīng)驗(yàn)的人提出 “多寫多看” 的建議時(shí)贼涩,其實(shí)根本沒有考慮到對(duì)方感受力
的問題巧涧,這就像還沒有習(xí)得投籃基本功之前的櫻木花道完全感受不了流川楓高超的投籃技巧一樣。你看遥倦,如果你沒有看過這部漫畫谤绳,你也大概理解不了我使用這個(gè)比喻時(shí)所隱含的上下文。
感受力本質(zhì)上是對(duì)話雙方話語交集的體現(xiàn)袒哥,新人缺乏足夠的基本功(或者說上下文和背景知識(shí)缩筛,本質(zhì)上我認(rèn)為是一樣的),自然無法理解老人口中的優(yōu)秀代碼到底好在哪里堡称。
期望有一天開竅瞎抛?
事實(shí)上,這個(gè)問題不止在學(xué)習(xí)編程的過程中出現(xiàn)却紧,它遍布幾乎所有的學(xué)習(xí)活動(dòng)中桐臊。想一想,你在剛學(xué)習(xí)某一種技能的時(shí)候晓殊,是不是都會(huì)很疑惑断凶,很多東西是怎么做到的,很多東西為什么必須那樣做而不能用另外的做法巫俺。
想一想认烁,你是不是經(jīng)常聽到 “多做,慢慢你就懂了” 這樣的話介汹?事實(shí)上也真的是這樣子的却嗡,在到達(dá)某個(gè)臨界狀態(tài)之后,新人會(huì)好像 duang 地一下子開竅了嘹承,理解了之前所有不明白的東西窗价。
悟性是不可靠的
要是一直不開竅呢?那你就是沒有悟性唄赶撰,先天不行舌镶!數(shù)學(xué)學(xué)不懂,就是左腦不發(fā)達(dá)豪娜;英語學(xué)不懂餐胀,就是語言功能不發(fā)達(dá);不會(huì)畫畫瘤载,手殘唄否灾;編程學(xué)不會(huì),你是個(gè)女生嘛 -_-|| 這樣的例子太多太多了鸣奔,我想說明的是墨技,想要靠悟性來學(xué)習(xí)人,真的是可以洗洗睡了挎狸,別學(xué)了扣汪。
可是,如果不 "多看多寫"锨匆,新人們還能怎么做呢崭别?
凡事都要講方法
當(dāng)下是一個(gè)學(xué)習(xí)方法盛行的時(shí)代,是一個(gè)鼓吹知識(shí)變現(xiàn)的時(shí)代恐锣,可是不得不承認(rèn)茅主,學(xué)習(xí)這件事,本身是有方法論的土榴。只要掌握合適的學(xué)習(xí)方法诀姚,學(xué)習(xí)就不會(huì)是一個(gè)靠個(gè)人悟性的事情,學(xué)習(xí)也會(huì)變得容易的多玷禽。對(duì)于編寫整潔代碼這件事赫段,前人也早就給出了好的方法,當(dāng)然了矢赁,不是閱讀 Clean Code 這本書本身瑞佩。
這就是答案
我看過很多關(guān)于如何編寫好的代碼的書,不得不說坯台,看完之后炬丸,很多給我的感覺似懂非懂,并沒有得到多少實(shí)際的收獲蜒蕾。但是稠炬,有一本書,徹底改變我對(duì)整潔代碼的認(rèn)識(shí)咪啡,它就是《構(gòu)建之法:現(xiàn)代軟件工程》https://book.douban.com/subject/25965995/ 首启。
如果想學(xué)習(xí)提高代碼質(zhì)量,這就是我的答案撤摸。
綜上所述毅桃,Clean Code 這本書褒纲,作為新人的你,不讀也罷钥飞。認(rèn)真研讀 《構(gòu)建之法:現(xiàn)代軟件工程》 吧莺掠,你可以從這本書中得到你真正需要的。