Clean Code

      最近剛剛開始實習,然后第一天寫了一天代碼,晚上把代碼拿給大佬看的時候,被瘋狂diss,然后我也知道我代碼寫的很亂,其實可能就是因為我的編程習慣不好,拿到一個東西就應該思考,一定一定要先思考,但是我好多時候,一看到界面的時候,就很習慣的直接去寫代碼了,所有的代碼就純粹是為了完成任務(wù)的代碼,沒有一點可以利用的地方,昨天大佬丟了一本書給我,叫《clean code》,讓我拿下去翻翻,不看不知道,一看是嚇一跳,我的代碼真的太亂了,而且有很多的重復代碼,主要就是因為重復代碼太多,然后看著頭大,也不知道該從那看起,然后第二天差不多改了一天,然后將能封裝的地方,都封起來,代碼界面的公共區(qū)域,都封裝成單個的uiview,然后其他特殊的視圖就單獨在添加,改了一天之后 我感覺我自己看起來順眼多了,至少我看起來會順眼太多,然后呢,就簡單整理一下我之前看書的筆記,僅供個人參考

1.整潔代碼
什么是整潔的代碼呢,借用書里的原話
Ron Jeffries 對整潔代碼的理解:

1.1.能通過所有的測試。

1.2沒有重復代碼。

1.3體現(xiàn)系統(tǒng)中的全部設(shè)計理念。

1.4包含盡量少的實體、比如類、方法、函數(shù)等。

2.輪子-> 處理重復代碼,抽象代碼
重復代碼是最辣雞的代碼,沒有之一,雖然很多重復代碼你都是ctrl+c,Ctrl+V,就可能你是沒有敲第二遍,但是呢,你的代碼閱讀的時候,是非常非常頭大的,就有些代碼你在即將要復制粘貼的時候,就要開始思考,能不能封裝起來!
重復代碼問題,如果一段代碼被寫了第二次,那么你就可以想想該干些什么了
2.命名
下面三個的命名是沒有區(qū)別的,這種命名也毫無意義,
product,productInfo,productData ,
不要添加沒有意義的前綴,添加有意義的語境
類名:名詞或名詞短語
方法名:動詞或動詞短語
像Customer,Account,避免使用Manager,Processor,Data或者Info這樣的類名。類名不應當是動詞。方法名應該是動詞或動詞短語,如postPayment ,deletePage或Save,屬性訪問、修改和斷言應該根據(jù)其值來命名,并加上get,set,is這些前綴。
not add , use insert or update
命名方式保持一致
任何一個對象或者屬性的命名都應該是有意義的,一旦有好的名字之后,最好就立馬換掉
不要誤導別人,比如一個屬性不是list,就不要在名字里面添加list,

做有意的區(qū)分。

Public static void copyChars(chara1[],chara2[]){for(inti=0;i

a2[i]=a1[i];

} }

如果參數(shù)名稱改為source和destination ,這個函數(shù)就會像樣很多。廢話都是冗余的,Variable一詞 永遠不應當出現(xiàn)在變量名中。Table一詞永遠不應當出現(xiàn)在表名中。NameString 會比 Name好嗎,難道Name 會是一個浮點數(shù)不成?如有一個Customer的類,有又一個CustomerObject的類。是不是就凌亂了。

3.函數(shù)
將函數(shù)分解為更小更具體的函數(shù)
函數(shù)的第一規(guī)則是短小,第二規(guī)則是還要短?。?0行的函數(shù))
如果還是太長就應該使用類
函數(shù)應該只做一件事
函數(shù)的縮進層級不該多余一層或兩層
自頂向下讀代碼
每個函數(shù)后面都跟著位于下一抽象層級的函數(shù)
無參函數(shù)>單參函數(shù)>雙參函數(shù)>三參函數(shù)(盡量不用)
單參函數(shù),兩種輸入類型,一種是操作該參數(shù),二是轉(zhuǎn)換該參數(shù)
stringBuffer transform(StringBuffer in)優(yōu)于void transform(StringBuffer out)
函數(shù)一是做什么事,要么回答什么事

4.其他
抽離try/catch
抽象異常類
記得每天都review你的代碼,然后有新的需要修改的地方就立即修改,later equals never,好的代碼不是一次性就寫出來的,是需要慢慢修改,寫代碼就和修剪樹木是一樣的,都是要慢慢修改之后,最好的永遠是最新的,
注釋不能美化糟糕的代碼,如果你的函數(shù)命名需要注釋來解釋,那么就要想想,是不是應該給函數(shù)換一個名字
廢話,日志,誤導 注釋,位置標記,這些注釋都是毫無意義沒卵用的注釋,
空白行隔離代碼

后面書剩下的地方還沒看,看了之后會更新后面的筆記,未完待續(xù)·····

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容