編寫可讀性代碼

臟話的頻率是衡量代碼好壞的標(biāo)準(zhǔn)

一、代碼應(yīng)該易于理解

可讀性定理

別人理解它的時間最小化
并不是意味著代碼塊越小理解時間越短,有時候短的代碼可能花費更多的時間去讓被人理解月幌。

理解代碼所需要的時間是否與其他目標(biāo)沖突。

如良好的架構(gòu),易于測試彭羹。并不沖突。因為易于理解的代碼往往可以引向良好的架構(gòu)和測試泪酱。

二派殷、表面層次的改進

2.1、把信息裝進名字里

名字就是一個小小的注釋

1墓阀、選擇專業(yè)名詞

比如:getPage(url)這個方法名get就用的就比較不專業(yè)毡惜。我們無法得知他是從本地緩存取的網(wǎng)頁還是從互聯(lián)網(wǎng)。如果是從互聯(lián)網(wǎng)斯撮,可以使用fetch经伙,或者download。

再比如勿锅,在寫樹的方法時候帕膜,我們用size()表達樹的高度,但是在閱讀時人們可能會產(chǎn)生疑惑溢十,這個方法是得到樹的節(jié)點數(shù)嗎垮刹,于是得詳細(xì)閱讀代碼才能知道這個代碼是用來獲取什么。是不是使用height()的方法名表意更清楚呢张弛,如果想獲得節(jié)點數(shù)荒典,就使用NumNodes()方法名來表示酪劫。
那么,如何選擇專業(yè)名詞呢寺董。
找到更有表現(xiàn)力的詞

image.png
2覆糟、避免使用泛泛的名字
3、用具體的名字代替抽象的名字
4螃征、使用前綴或后綴給名字附加更多信息
5搪桂、決定名字長度

在小作用域里可以使用短名字

6、利用名字格式表達含義

2.2盯滚、代碼的審美

代碼采用好的審美可以提高代碼的可讀性踢械,包括

1、可以重新安排換行魄藕,讓相似的代碼看起來盡可能相似
2内列、如果換行讓代碼依舊毫無美感,可以將相似的代碼提煉到一個方法里
3背率、在需要時使用列對齊话瞧,如果不是那么費功夫的話。
4寝姿、選一個有意義的順序交排,至始至終保持他。
5饵筑、可以把代碼的聲明按邏輯分組埃篓。
6、把代碼分成段落根资,用空行隔開架专。
7、保持個人風(fēng)格的一致玄帕。

三部脚、簡化循環(huán)

3.1、讓控制流變得易讀

1裤纹、注意條件語句參數(shù)的順序委刘。

通常來說,被詢問的是放在左側(cè)

2鹰椒、最小化嵌套

方式:1.使用continue 2锡移、使用提早返回

3、減少讓可讀性變差的三目運算符吹零、goto語句

3.2罩抗、拆分超長的表達式

1拉庵、引用解釋變量
2灿椅、使用摩根定理重寫代碼

3.3、變量與可讀性

1、減少變量和中間結(jié)果
2茫蛹、縮小變量作用域
3操刀、只寫一次變量,讓代碼更容易理解

四婴洼、重新組織代碼

4.1骨坑、抽取不相干的子問題

1、創(chuàng)建通用代碼柬采、自底向上編碼
2欢唾、簡化已有接口或重塑接口

4.2、代碼只做一件事

4.3粉捻、用自然語言描述代碼

4.4礁遣、少些代碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市肩刃,隨后出現(xiàn)的幾起案子祟霍,更是在濱河造成了極大的恐慌,老刑警劉巖盈包,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沸呐,死亡現(xiàn)場離奇詭異,居然都是意外死亡呢燥,警方通過查閱死者的電腦和手機崭添,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疮茄,“玉大人滥朱,你說我怎么就攤上這事×κ裕” “怎么了徙邻?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長畸裳。 經(jīng)常有香客問我缰犁,道長,這世上最難降的妖魔是什么怖糊? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任帅容,我火速辦了婚禮,結(jié)果婚禮上伍伤,老公的妹妹穿的比我還像新娘并徘。我一直安慰自己,他們只是感情好扰魂,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布麦乞。 她就那樣靜靜地躺著蕴茴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪姐直。 梳的紋絲不亂的頭發(fā)上倦淀,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音声畏,去河邊找鬼撞叽。 笑死,一個胖子當(dāng)著我的面吹牛插龄,可吹牛的內(nèi)容都是我干的愿棋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼均牢,長吁一口氣:“原來是場噩夢啊……” “哼初斑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起膨处,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤见秤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后真椿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鹃答,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年突硝,在試婚紗的時候發(fā)現(xiàn)自己被綠了测摔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡解恰,死狀恐怖锋八,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情护盈,我是刑警寧澤挟纱,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站腐宋,受9級特大地震影響紊服,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胸竞,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一欺嗤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卫枝,春花似錦煎饼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽淤袜。三九已至,卻和暖如春衰伯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背积蔚。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工意鲸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人尽爆。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓怎顾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親漱贱。 傳聞我的和親對象是個殘疾皇子槐雾,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

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