抽象層 Abstraction Layer
抽象真正迷人的地方就在這裡,它讓人能夠在不被複雜事物搞得頭昏腦脹的情況下,慢慢理解這個世界,我們不需要先學會熬湯,才能喝到一碗肉骨茶;不需要理解 Linux 核心的每個細節,才能使用電腦;甚至不需要看見所有線條,仍然能在一幅畫裡認出一棵樹。

抽象這個詞會不會給人有模糊、不具體的意思?又或者好像抽象只會出現在藝術館、哲學課,或者工程師嘴裡那些很硬的專有名詞裡,尤其當看到抽象層(Abstraction Layer)這種詞時,更容易覺得:「這是什麼東東?」但有趣的是,其實我們日常生活中一直都在使用抽象的概念。

抽象畫

想像一下,有兩個人都在畫木棉花,第一個人畫了很多細節,每片花瓣的紋路都清清楚楚,連花蕊的細節都不放過;另一個人則只用了幾筆深淺不同的朱膘色,再加上一片片彎曲的塊狀。奇怪的是,即使第二幅畫沒有那麼細緻,我們還是一眼就知道這是一朵朵的花,那一瞬間,抽象正在我們的腦袋運作。

畫家沒有把所有細節都畫出來,而是抓住了木棉花最有特色、最能讓人辨認的部分,我們的大腦也很自然地猜出並補齊了那些沒被畫出來的細節。我們每天其實都在做類似的事,看到一藍一紅並排人形的簡單符號,就知道那是廁所;看到地圖上的小圖示,就知道那裡是餐廳、捷運站或是教會,很多時候,人們並不需要鉅細靡遺的表達出完整資訊,也能理解這是什麼事物。

(嶺南派畫家 趙少昂 《紅棉報喜》)
(嶺南派畫家 趙少昂 《紅棉報喜》)

肉骨茶的背後

抽象不只存在於畫裡,也存在於煮湯裡。

教會有個煮湯班,最近又有兄姊加入了,當他們受邀來服事煮湯時,他們的腦中一定有各式各樣的湯,只要收到煮湯的邀請,他們就會盡責的進廚房變出一鍋湯。我們6月份要來喝肉骨茶!當姊妹走進廚房,過了一陣子,一鍋熱騰騰的湯端到我們面前,我們拿起湯匙開始喝,覺得很好喝,事情似乎就這樣結束了?

但如果姊妹在煮肉骨茶的時候我們打開廚房的門一看,才會發現裡面根本像另一個世界,瓦斯爐正在燒,排骨要先川燙,藥材比例要抓好即使是包好的也是,鹽巴不能太早放,火候大小要控制否則熬不出味道…等等,可是在外面等湯煮好的大家,根本不需要知道這些過程卻也能享用到美味。

我想喝肉骨茶,然後肉骨茶就出現了。

很多時候,我們能順利享用某樣東西,並不用理解與走過全部細節才能享用,而是因為有人已經幫我們把複雜的過程處理好了。

電腦也是這樣運作的

第一次學 Linux 指令常常會有一種神奇的感覺,自己只是打了一行文字而已,然後事就這樣成了

例如輸入:

grep "error" server.log

終端機的畫面閃爍幾下,搜尋結果就出來了!我就可以找出日誌檔裡有哪些地方寫了 error,好讓我知道哪裡有錯誤。其實在那短短的一瞬間,電腦裡發生了 非常多 事情,系統要先理解輸入的內容,找到 grep 這個程式,把它載入記憶體後打開檔案,再一行一行讀取內容進行比對,更底層還有 CPU 排程、硬碟讀取、檔案系統、權限檢查等等,只是這些事情,我們在短短幾毫秒的時間內感受不到,除了時間太短,還有更關鍵的是因為這些程式被藏在更下面的地方了。

這就很像我們在點肉骨茶,而姊妹早已忙成一圈,從菜市場就開始直到廚房。

人類需要抽象的原因

我們需要抽象,因為世界真的太複雜了。

如果每次喝湯之前,都必須先進廚房學一次怎麼煮湯,我們大概會手忙腳亂,當然,對不熟悉的人是如此,在此為一群幫我們煮湯的兄姊及家裡的父母致敬;如果我們每次搜尋文字,都得先執行一連串硬碟、記憶體與 CPU 之間的合作,那大概也沒多少人能好好地使用電腦,

所以,人類很自然地會把複雜的事分層處理為可以簡單理解的東東。

有人負責處理底層細節,有人只需要使用成果去配上其它的程式,慢慢地,我們就能站在前人的基礎上,繼續往更高的地方走。我們點開手機螢幕,不必懂手機晶片也能開;我們用導航,不必懂衛星通訊也會用;我們下 grep 指令搜尋關鍵字,也不必理解 Linux 核心運作也可以下,不懂這些根本一點關係都沒有,因為,抽象層本來就是為了讓人不用一次背負了整個執行的過程。

抽象層讓操作變簡單

有時候我會覺得電腦很像一棟看不見的地下碉堡,我們平常待在最上層的地面看到的是 Line App、瀏覽器、影片播放器,再往下走,是作業系統,更下面還有核心(Kernel)、驅動程式、硬體。每一層都在幫上一層處理複雜的事情,所以我們才能輕鬆地使用電腦,而不用每次都直接面對那些密密麻麻的操作細節。

這也是為什麼,真正厲害的技術,往往操作起來都很簡單!

因為最複雜的部分,已經被好好藏起來了,抽象層就是把一堆複雜的程式封裝 encapsulate 成一個介面 interface 讓人們方便使用。

抽象真正迷人的地方就在這裡,它讓人能夠在不被複雜事物搞得頭昏腦脹的情況下,慢慢理解這個世界,我們不需要先學會熬湯,才能喝到一碗肉骨茶;不需要理解 Linux 核心的每個細節,才能使用電腦;甚至不需要看見所有線條,仍然能在一幅畫裡認出花朵。


工商服務廣告一下

很多時候,人類之所以能不斷往前是因為我們學會了先抓住最重要的輪廓,而那些被藏起來的細節,則等待著某一天,我們準備好了,再慢慢走進去挖掘。

週五的《長老教會的信仰:簡要導論》課程也是,我們把高度濃縮的抽象神學詞彙一一分析,會發現原來神學就在我們的生活中。


上次修改於 2026-05-31