大衛・惠勒:計算機科學中的任何問題都可以通過增加一層間接性來解決。
我越來越發現這是非常有道理的。為什麼呢?
根據我的理解:
- 最初編寫的代碼是為了解決特定問題,因此只針對特定情況。
- 隨著特定情況的種類越來越多,如果修改原有代碼,會變得越來越複雜,難以修改。
- 為了將問題範圍縮小,我們可以對最底層的代碼(最初解決特定問題的代碼)進行一些抽象,公開接口定義供上層適配。上層適配就是將不同類型的特定問題適配到下層接口,這樣就相當於增加了一層。
- 步驟 3 的好處是什麼?底層代碼修改少,上層只需進行適配邏輯,從而實現了代碼隔離,減少相互影響。如果在適配這一層中出現了步驟 2 提到的問題,那麼就繼續進行步驟 3,這樣就又增加了一層,逐步解決了一個個問題。
- 現實中和這個邏輯非常相似,最初編寫的代碼比較僵硬,修改越多越難以修改,因此將參數和配置提取出來,可以更靈活地進行配置。
這只是一點小小的感悟,但確實非常有道理。