Clean Code 無(wú)瑕的程式碼 第1章 無(wú)暇的程式碼
? ? ? 第一章作者請(qǐng)大師們分享自己對(duì)Clean Code的看法,作者提到的code-sense如同《聖鬥士星矢》穆先生的名言:「第七感只可意會(huì),不可言傳?!褂械娜颂焐疫\(yùn)天生就有code-sense,其餘的人就要後天努力才能有機(jī)會(huì)擁有code-sense。作者的總結(jié)寫(xiě)得很好!《Clean Code》 就像是武功秘笈,有武功秘笈之後,還要勤加練功才能成為高手高手高高手。
《Clean Code》說(shuō)出好程式與不好程式之間的差別,知道如何撰寫(xiě)好程式,也知道如何將不好的程式碼轉(zhuǎn)換成好的程式碼。
程式碼將一直存在
作者主張程式碼會(huì)一直存在,因?yàn)榧?xì)節(jié)很重要,儘管會(huì)有機(jī)器能夠?qū)懗淌?,它們做的事是programming,最後完成品依然是程式碼(code)。人工智慧無(wú)法完全取代人類。
劣質(zhì)的程式碼
作者的職場(chǎng)經(jīng)驗(yàn)好的程式碼可以節(jié)省更多時(shí)間。為何會(huì)有壞的程式碼?主要都是為了趕時(shí)間、敷衍了事只要程式能運(yùn)行就好,造成將來(lái)會(huì)浪費(fèi)更多時(shí)間。
作者遇過(guò)因?yàn)槌淌綄?xiě)不好而倒閉的軟體公司。
雜亂程式的代價(jià)
雜亂的程式碼會(huì)讓程式難以更新與維護(hù),每次更改都要花很長(zhǎng)的時(shí)間研究舊有的程式,為了解決問(wèn)題公司僱請(qǐng)新人,結(jié)果在時(shí)間壓力之下,新人們反而增加更多雜亂的程式碼,形成惡性循環(huán)。
富麗堂皇的新設(shè)計(jì)
舊有的程式碼無(wú)法改動(dòng),出現(xiàn)一種情況公司組建新的開(kāi)發(fā)團(tuán)隊(duì)開(kāi)發(fā)新的專案解決問(wèn)題,結(jié)果出現(xiàn)雙頭馬車(chē)的情況,一個(gè)專案有兩組人馬競(jìng)爭(zhēng)都是做同樣的事情,經(jīng)常會(huì)出現(xiàn)人事更替改朝換代,新專案最後也沒(méi)有完成的情況,最後變成舊專案與新專案兩個(gè)爛攤子。
態(tài)度
作者主張專業(yè)的工程師要「反求諸己」,不要整天怪東怪西抱怨環(huán)境。
面對(duì)主管與客戶無(wú)理要求,作者認(rèn)為還是要說(shuō)清楚講明白,用心力保護(hù)程式碼。
作者用看病做為比喻,病患要求醫(yī)生看病不要洗手,醫(yī)生要有專業(yè)的堅(jiān)持,不能接受病患的無(wú)理要求。
最根本的難題
為了趕時(shí)間產(chǎn)生出來(lái)的爛程式碼實(shí)際上會(huì)浪費(fèi)更多使間,節(jié)省時(shí)間的唯一方法是維持程式整潔。
Clean Code 的藝術(shù)
code-sense 是能寫(xiě)出 Clean Code 的關(guān)鍵因素。有的人天生有程式感,有的人需要依靠後天學(xué)習(xí)。
缺乏程式感的程式設(shè)計(jì)師看到雜亂的程式碼會(huì)知道有問(wèn)題,卻無(wú)法改善。有程式感的設(shè)計(jì)師能夠改良雜亂的程式碼。
什麼是Clean Code?
作者請(qǐng)大師們發(fā)表自己對(duì)Clean Code的看法。
Bjarne
「優(yōu)雅」有「效率」、降低相依性、完備處理錯(cuò)誤程式碼、避免破窗效應(yīng)、只做好一件事、注重細(xì)節(jié)。
Grady
可讀性、清楚描述問(wèn)題與設(shè)計(jì)者解決問(wèn)題的方法,程式碼如同文章。
Dave
可讀性,可讓開(kāi)發(fā)者以外的人修改、單元測(cè)試、驗(yàn)收測(cè)試、小程式、透過(guò)字面表達(dá)含意。
Michael?
被「照料」過(guò)有條不紊的程式碼。
Ron
通過(guò)所有的測(cè)試
沒(méi)有重複的程式碼
充分表達(dá)系統(tǒng)設(shè)計(jì)的構(gòu)思
最少量的類別、方法、函數(shù)
減少重複、高度的表達(dá)力、及早建立抽象概念。
Ward
程式執(zhí)行結(jié)果與自己的想法相同。
Bob
作者本人注重細(xì)節(jié),本書(shū)分成多個(gè)章節(jié)。
作者自己用武術(shù)比喻程式設(shè)計(jì),自稱自己是整潔程式碼之物件學(xué)派。
我們是作者
閱讀程式的時(shí)間比寫(xiě)程式的時(shí)間還多,因此讓程式碼容易讀也會(huì)讓程式碼容易寫(xiě)。
童子軍規(guī)則
離開(kāi)營(yíng)地前,讓營(yíng)地比使用前更加乾淨(jìng)。
前傳及原則
總結(jié)
看了武功秘笈不能保證自己一定能夠成為高手,還需要反覆思考反覆磨練。