最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Clean Code 無瑕的程式碼 第5章 編排

2021-06-13 22:36 作者:tkchenhaha  | 我要投稿

??? ? 第五章介紹編排程式碼,讓程式碼增加可讀性。

編排的目的

程式的編排是一種溝通方式,影響程式碼的可讀性。

垂直的編排

想建造重要的大型系統(tǒng),只使用200到500行的程式碼可以做到。

簡短的程式檔案比大型的程式檔案更容易理解。

報紙的啟發(fā)

閱讀報紙由上而下閱讀,每個段落會有大標(biāo)題,讀者會先看大標(biāo)題之後,才會決定要不要繼續(xù)閱讀小細節(jié)。

原始檔內(nèi)容就像報紙,程式名稱簡單易懂,原始檔上層提供高階的概念和演算法,下層描述細節(jié)。

概念間的垂直空白區(qū)隔

每一段程式碼都代表一個完整的思緒,應(yīng)該用空白行分隔這些思緒。

5-1範(fàn)例有加空白行,5-2範(fàn)例沒有加空白行,明顯5-1可讀性較佳。

垂直密度

5-3插入過多無意義的註解,可讀性反而不如5-4高,因為人的眼睛有固定的視野範(fàn)圍。

垂直距離

變數(shù)宣告(Variable Declarations)

變數(shù)宣告盡可能靠近變數(shù)被使用的地方

區(qū)域變數(shù)應(yīng)該在每個函式的最上方進行宣告

private static void readPreference(){

????InputStream is = null;

迴圈的控制變數(shù)應(yīng)該在迴圈敘述裡宣告

for (Test each; tests)

部分情況變數(shù)會宣在程式區(qū)塊的上方

for(){

????TestRunner tr =? …….

實體變數(shù)(Instance variables)

Java實體變數(shù)放在類別的最上方

C++根據(jù) scissors rule 放到類別的最下方

文中的範(fàn)例是錯誤示範(fàn),中間突然出現(xiàn)兩個實體變數(shù)。

相依的函式(Dependent Functions)

某個函式呼叫了另一個函式,兩個函式之間垂直編排要盡量靠近。

概念相似性(Conceptual Affinity)

就算函數(shù)之間沒有互相呼叫,命名規(guī)則相似、做的事情相似還是可以放在一起。

垂直的順序

一個被呼叫的函式,應(yīng)該要出現(xiàn)在執(zhí)行呼叫的函式的下方。

由上而下閱讀可以先發(fā)現(xiàn)高層模組,再找到低層模組。

水平的編排

依據(jù)統(tǒng)計資料,程式設(shè)計師偏愛短寬度的程式碼。

作者Bob大叔的寬度上限是120個字元。

水平的空白間隔和密度

範(fàn)例中作者在運算子 (assignment operators) 例如? = 符號 左右兩邊都加入空白,增加可讀性。

空白可以用來表示相關(guān),函式與參數(shù)高度相關(guān),函式與小左括號之間不加入空白。

函式中的參數(shù)用逗號空白將參數(shù)分開。

空白可以表達先乘除後加減,可參考範(fàn)例。

水平的對齊

兩個範(fàn)例比較結(jié)果,作者不追求水平的對齊。

縮排

從範(fàn)例可看出縮排可增加程式的可讀性

以下情況要縮排

類別裡的方法

方法內(nèi)部的實作

子程式區(qū)塊的內(nèi)容

違反縮排的規(guī)則

有時候if敘述或是while敘述短,會想要違反縮排原則。作者不建議這樣做。

空視野範(fàn)圍

作者不喜歡這種結(jié)構(gòu)

while(....)

{

???程式區(qū)塊是空白

}

團隊的共同準(zhǔn)則

一個團隊要有共同的編排準(zhǔn)則



Clean Code 無瑕的程式碼 第5章 編排的評論 (共 條)

分享到微博請遵守國家法律
册亨县| 昌宁县| 尼木县| 木里| 万安县| 洮南市| 青岛市| 施秉县| 府谷县| 望谟县| 南城县| 凤翔县| 元阳县| 余庆县| 如东县| 普定县| 平陆县| 腾冲县| 固安县| 榆中县| 高密市| 保德县| 丁青县| 西和县| 谷城县| 阜宁县| 唐河县| 类乌齐县| 柳江县| 克拉玛依市| 霍山县| 保靖县| 荔波县| 凤台县| 法库县| 涞水县| 洛宁县| 聂荣县| 梁平县| 白玉县| 临西县|