代碼整潔之道之2舆乔、3、4章

<<代碼整潔之道 >>讀書記錄庄呈,包括:
第二章:有意義的命名
第三章:函數(shù)
第四章:注釋

2.2名副其實(shí)
使用的命令能正確明白說明發(fā)生了什么蜕煌。
2.3避免誤導(dǎo)
如:accountList派阱,只有真的是List類型诬留,才這么命名
2.4做有意義的區(qū)分
如沒意義的命名,Product贫母,ProductInfo, ProductData,無法區(qū)分意義
2.5 使用讀的出來的名稱
命名不使用自造詞文兑,使用恰當(dāng)?shù)挠⒄Z詞
2.6 使用可搜索的名稱
找WORK_DAYS_PER_WEEK很容易,但是找5很難找
2.7 避免使用編碼
2.7.1 匈牙利命名法:現(xiàn)在不適用
如:PhoneNumber phoneString腺劣,類型改變時(shí)绿贞,名稱并不會(huì)改變,對(duì)于用戶會(huì)難以理解
2.7.2 成員前綴
消除對(duì)于成員前綴的需要
2.8 避免思維映射
明確是王道橘原,應(yīng)該避免把讀者在腦中把你的名稱翻譯為他們熟知的名稱籍铁。
2.9 類名
類名應(yīng)該是名詞或者名詞短語,如:Customer趾断,WikiPage拒名,Account
避免使用Manager、Processor這樣的類名
2.10 方法名
方法名應(yīng)當(dāng)是動(dòng)詞或動(dòng)詞短語芋酌,如postPayment增显,deletePage。
屬性訪問器與斷言應(yīng)該根據(jù)其值命名脐帝,并以Javabean標(biāo)準(zhǔn)加上get同云、set、is前綴
重載構(gòu)造器
2.11 別扮可愛
2.12 每個(gè)概念對(duì)應(yīng)一個(gè)詞
2.13 別用雙關(guān)語
2.14 使用解決方案領(lǐng)域的名字
2.15 使用源自所涉領(lǐng)域的名字
2.16 添加有意義的語境
如:firstName提供語境 addFirstName
2.17不要添加沒用的語境

第三章:函數(shù)

3.1 短小
3.2只做一件事
3.3 每個(gè)函數(shù)一個(gè)抽象層級(jí)
3.4 switch語句
適時(shí)使用多態(tài)
3.5 使用描述性的語句
命名方式保持一致
如:includeTeardownPages
3.6 函數(shù)參數(shù)
參數(shù)越少越好
3.6.1 一元參數(shù)的普遍形式
3.6.2 標(biāo)識(shí)參數(shù):true堵腹、false炸站,不要使用
3.6.3 二元參數(shù)
3.6.4 三元參數(shù)
3.6.5參數(shù)對(duì)象,當(dāng)參數(shù)過多時(shí)(兩個(gè)或以上)疚顷,考慮封裝為類旱易。
3.6.6 參數(shù)列表
引入數(shù)量可變的參數(shù):void triad(String name, int count, Interger... args)
3.6.7 動(dòng)詞與關(guān)鍵字
給函數(shù)取個(gè)好名字,動(dòng)詞或名詞對(duì)
如:assertExpectedEqualsActual(expected, actual)
3.7 無副作用
函數(shù)承諾只做一件事荡含,可能會(huì)做其他被藏起來的事
3.8 分隔指令和詢問
函數(shù)要么做什么事咒唆,要么回答做什么事,兩者不要兼得
3.9 使用異常替代返回錯(cuò)誤碼
3.9.1 抽離Try/Catch代碼塊
3.9.2 錯(cuò)誤處理就是一件事
如果try在某個(gè)關(guān)鍵字中出現(xiàn)释液,他就該是這個(gè)函數(shù)的第一個(gè)單詞全释,而且catch/finally后不該有其他內(nèi)容
3.9.3 Error.java依賴磁鐵
使用異常來替換枚舉錯(cuò)誤碼
3.10 別重復(fù)自己
重復(fù)兩次的代碼可以單獨(dú)抽離出來
3.11 結(jié)構(gòu)化編程
每個(gè)函數(shù)和代碼塊都應(yīng)該有一個(gè)入口和一個(gè)出口。遵循這些規(guī)則误债,每個(gè)函數(shù)只該有一個(gè)return浸船,小函數(shù)可以根據(jù)情況另說

第四章:注釋

4.1 注釋不能美化糟糕的代碼
4.2 用代碼來闡述
讓代碼代替注釋說話
4.3 好注釋
唯一好的注釋是你想辦法不去寫的注釋
4.3.1法律信息
這類不應(yīng)是合同或法典妄迁。只要有可能,就指向標(biāo)準(zhǔn)許可和其他外部文檔李命,而不是把所有的條款放到注釋中
4.3.2 提供信息的注釋
這類有時(shí)管用登淘,但更好的是利用函數(shù)名稱來提供信息。
4.3.3 對(duì)意圖的解釋
4.3.4 闡釋
幫助解釋不能修改的代碼含義
4.3.5 警示
警告其他程序員會(huì)出現(xiàn)的后果
4.3.6 TODO注釋
應(yīng)該做封字,還沒有做的事情
4.3.7 放大
放大某種不合理之物的重要性
4.3.8 JavaDoc
編寫公共API黔州,必須
4.4 壞注釋
4.4.1 喃喃自語
保證注釋被人能夠看懂
4.4.2 多余的注釋
4.4.3 誤導(dǎo)性注釋
4.4.4 循規(guī)式注解
每個(gè)函數(shù)都要注解,每個(gè)變量都要解釋是愚蠢的
4.4.5 日志式注解阔籽,不用
4.4.6 廢話式注解
4.4.7 可怕的廢話流妻,避免JavaDoc中的廢話
4.4.8 能用函數(shù)和變量時(shí)就別用注釋
4.4.9 位置標(biāo)記,刪除
4.4.10 括號(hào)后的注釋
4.4.11 歸屬和署名
4.4.12 注釋掉的代碼
4.4.13 HTML注釋笆制,禁用
4.4.14 非本地信息
注釋應(yīng)該描述最近的代碼信息
4.4.15 信息過多
不要在注釋中添加無關(guān)的信息
4.4.16 不明顯聯(lián)系
代碼和注釋應(yīng)該相互聯(lián)系
4.4.17 函數(shù)頭
短函數(shù)不需要描述绅这,選個(gè)好名字比使用函數(shù)頭注釋有用的多
4.4.18 非公共代碼中的javadoc

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乍赫,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浑度,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡奕删,警方通過查閱死者的電腦和手機(jī)俺泣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來完残,“玉大人伏钠,你說我怎么就攤上這事〗魃瑁” “怎么了熟掂?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長扎拣。 經(jīng)常有香客問我赴肚,道長,這世上最難降的妖魔是什么二蓝? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任誉券,我火速辦了婚禮,結(jié)果婚禮上刊愚,老公的妹妹穿的比我還像新娘踊跟。我一直安慰自己,他們只是感情好鸥诽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布商玫。 她就那樣靜靜地躺著箕憾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拳昌。 梳的紋絲不亂的頭發(fā)上袭异,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音炬藤,去河邊找鬼御铃。 笑死,一個(gè)胖子當(dāng)著我的面吹牛刻像,可吹牛的內(nèi)容都是我干的畅买。 我是一名探鬼主播并闲,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼细睡,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了帝火?” 一聲冷哼從身側(cè)響起溜徙,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎犀填,沒想到半個(gè)月后蠢壹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡九巡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年图贸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冕广。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疏日,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出撒汉,到底是詐尸還是另有隱情沟优,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布睬辐,位于F島的核電站挠阁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏溯饵。R本人自食惡果不足惜侵俗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望丰刊。 院中可真熱鬧隘谣,春花似錦、人聲如沸藻三。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至熄求,卻和暖如春渣玲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背弟晚。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來泰國打工忘衍, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人卿城。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓枚钓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瑟押。 傳聞我的和親對(duì)象是個(gè)殘疾皇子搀捷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)多望,斷路器嫩舟,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • 目錄及筆記鏈接 序 丹麥諺語:小處誠實(shí)非小事。 建筑師路德維希:神在細(xì)節(jié)之中怀偷。 日本的 5S 哲學(xué): 整理(整理家厌、...
    小鐳Ra閱讀 1,496評(píng)論 3 3
  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock閱讀 3,371評(píng)論 2 36
  • 派大星遲早也會(huì)有他的海綿寶寶一起笑一起生活。我就像是章魚哥獨(dú)自關(guān)在自己的城堡獨(dú)自做著自己喜愛的事椎工,在海綿寶寶沒搬來...
    弎拾閱讀 221評(píng)論 0 0
  • 下列容量最小的是 A.主存儲(chǔ)器 B.高速緩存器 C.寄存器 D.外存儲(chǔ)器 [解析] 從寄存器饭于、高速緩存器到主存儲(chǔ)器...
    0208_鄭欣欣閱讀 223評(píng)論 0 2