內(nèi)容摘抄于【代碼整潔之道】一書
一鞋吉、為什么
軟件質(zhì)量與代碼整潔度成正比;
延長(zhǎng)產(chǎn)品生命周期励烦,可持續(xù)化開發(fā)與交付谓着;
不整潔的代碼,團(tuán)隊(duì)的生產(chǎn)力會(huì)持續(xù)下降坛掠;
便于維護(hù)赊锚,減少技術(shù)債;
二屉栓、什么算是整潔的代碼
cleancode.jpg
三舷蒲、如何寫出整潔的代碼
3.1 有意義的命名
- 名副其實(shí)
- 避免誤導(dǎo)
- 做有意義的區(qū)分
- 使用可讀得出來的名稱
- 使用可搜索的名稱
- 避免使用編碼
- 避免思維映射
- 類名
- 方法名
- 上下文中每個(gè)概念對(duì)應(yīng)一個(gè)詞
- 別用雙關(guān)語
- 使用解決方案領(lǐng)域名
- 使用源自所涉問題領(lǐng)域的名稱
- 添加有意義的語境
- 不要添加沒有意義的語境
3.2 函數(shù)
- 短小
- 只做一件事(SRP)
- 每個(gè)函數(shù)一個(gè)抽象層級(jí)
- Switch語句
- 使用描述性的名稱
- 函數(shù)參數(shù)不要大于3個(gè)
- 無副作用 別重復(fù)自己
- 分隔指令與詢問
3.3 注釋
注釋不能美化糟糕的代碼
- 好的注釋: 法律信息 對(duì)業(yè)務(wù)的注釋 警示 TODO注釋 公共API的注釋
- 壞的注釋:多余的 誤導(dǎo)性的 日志式的 廢話注釋 位置標(biāo)記 歸屬與署名 注釋掉的代碼 信息過多
3.4 格式
- 垂直格式:垂直方向上的區(qū)隔 垂直方向上的靠近 垂直方向上的距離 垂直方向上的順序
- 水平格式:水平方向上的區(qū)隔 水平對(duì)其 縮進(jìn) 空范圍
3.5 對(duì)象與數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)抽象
- 數(shù)據(jù)、對(duì)象的反對(duì)稱性
對(duì)象把數(shù)據(jù)隱藏于抽象之后友多,暴露操作數(shù)據(jù)的函數(shù)牲平。(暴露行為)
數(shù)據(jù)結(jié)構(gòu)暴露其數(shù)據(jù),沒有提供有意義的函數(shù)域滥。(暴露數(shù)據(jù)) - 得墨忒耳律——火車失事纵柿、混雜蜈抓、隱藏結(jié)構(gòu)
- 數(shù)據(jù)傳送對(duì)象(java中的DTO)
3.6 錯(cuò)誤處理
- 使用異常處理函數(shù)而非返回碼
- 不要產(chǎn)生異常鏈
- 異常信息要充分有用
- 不要返回null
- 不要傳遞null
3.7 邊界
- 了解使用的第三方程序(問題、未開放的功能等)
- 針對(duì)引入的第三方程序昂儒,未能滿足我們現(xiàn)有需求沟使,可以自定義實(shí)現(xiàn),等待第三方的完善
- 不要深入去修改引入的第三方程序
3.8 逐步改進(jìn)
- 代碼不止能工作渊跋,僅僅能工作的代碼就像一顆定時(shí)炸彈
- 不要做滿足于僅僅能讓代碼工作的程序員
- 整潔的代碼不是一次就能寫出來的腊嗡,是一個(gè)循序漸進(jìn)的過程
小結(jié):
- KISS原則:KISS=Keep It Short and Simple.(盡量保持簡(jiǎn)單。)
- SRP:Single Responsibility Principle.(單一職責(zé)原則拾酝。)
- DRY原則:Don’t Repeat Yourself.(不要寫重復(fù)的代碼燕少。)
- 健壯性,可讀性強(qiáng)
- 把握時(shí)機(jī)蒿囤,敢于無情的重構(gòu)