抽象的力量

banq發表於2018-12-07

如果有人問我“在所有軟體開發中最重要的概念是什麼?” 我會用一個詞來回答它:“抽象”。

抽象就是將一個想法簡化為絕對本質。

讓我們看一個例子:執行這個活動,如果你仔細看看你跑步時身體實際發生了什麼,你的頭就會旋轉:無數的肌肉保持你的身體平衡,你的心臟像瘋了一樣抽血,你的肺部全速運轉以保持你的血液充氧,你的汗腺在你的皮膚上排汗,讓你保持涼爽。

但對你而言,它只是在運動。你的思維只是從這個運動概念中抽象或刪除了非必要的細節,這樣你就可以輕鬆地思考它。

讓我們看另一個例子。這是很瑣碎的程式碼:

var splitString splitString = str.split(“”);
var reverseArray = splitString.reverse();
var joinArray = reverseArray.join(“”);
return joinArray;
<p class="indent">

現在讓我們新增抽象:

function reverseString(str){
var splitString = str.split(“”);
var reverseArray = splitString.reverse();
var joinArray = reverseArray.join(“”);
return joinArray;
}
<p class="indent">

在第一個例子中,我們必須按順序讀取每行程式碼並跟蹤發生的事情以便理解它。如果這是很長程式碼,我們可能不得不在軟體的整個生命週期中反覆這樣做。

然而,在第二個例子中,我們給那段程式碼命名,讓我們忽略內部細節並記住基本概念:reverseString。啊哈!

這個想法對計算機(以及生活,真的)至關重要,你會發現你每天使用的硬體和軟體都是由軟體的“層”(或抽象)組成的。從晶片到機器程式碼,到彙編程式碼,再到作業系統,再到應用程式程式碼,每個層都可以輕鬆推理,而不會讓細節爆炸。

在軟體中建立清晰的抽象是軟體設計的本質。這是可理解的,易於維護的軟體和處理噩夢之間的區別。

相關文章