Skip to content

第一性原則思考

first-principle

最近經常聽到 Elon Musk 在演講中提及「First Principle(第一性原則)」這個關鍵字,讓我想進一步了解為何它被如此強調、其背後的定義究竟為何。這是否與八二法則(Pareto Principle)等思維模式有相似之處?

在深入探討前,先看一下維基百科上的簡介:

INFO

第一原理(First Principle),又稱第一性原理,是哲學與邏輯領域中的名詞,指一個最基本的命題或假設,無法被省略或刪除,也不可違反。此概念相當於數學中的公理,最早由亞里斯多德提出。

根據上述定義,第一性原則強調回歸問題的本質與不可簡化的基礎。拿前端領域作例子:即使目前已有許多前端框架,最終仍必須編譯或轉譯成 HTML、CSS、JS 這些基本的元素。無論技術如何演進,都必須回歸到這類原始基礎的檔案結構。

當我們探索某件事物的本質時,最後勢必抵達一個無法再進一步細化的核心點,而這個核心點正是該事物的「第一性原則」。

以上僅是對第一性原則的一種詮釋角度,未必是嚴格的學術定義,但也是一個有趣的方向。

接下來,將以「前端開發」為例,說明如何透過第一性原則來思考與探索。

第一性原則的應用示範(以前端為例)

1. 定義問題與目標

前端領域十分廣大,因此在實踐第一性原則前,我們需要先定義想解決的問題、目標與需求。例如:「我想建立一個快速且可在多裝置上運行的互動式網頁。」明確的目標能協助我們聚焦在前端必須實現的核心價值上。

2. 基本構成要素

前端的最核心要素是 HTML、CSS、JS

  • HTML:標記語言,用於描述與組織網頁的內容與結構。
  • CSS:宣告式的樣式語法,用來控制版面佈局、色彩、字型等視覺呈現。
  • JS:程式語言,可操作 DOM(Document Object Model)、處理事件、進行邏輯判斷並實現互動。

無論使用何種框架或工具,最終都必須依靠這三者建立一個能被瀏覽器理解並呈現的頁面。🌟

3. 原理與運作機制

前端的運作基於瀏覽器機制,因此理解瀏覽器的運作流程極其重要:
瀏覽器會從伺服器獲取 HTML、CSS、JS,解析並建立 DOM 樹與 CSSOM,接著生成 Render Tree,最後繪製於螢幕上。
網路協定(HTTP/HTTPS)及裝置特性(如解析度與互動模式)也會影響前端的呈現與效能。為了應對各種裝置需求,我們有了 RWD(Responsive Web Design,響應式網頁設計)這種設計策略。🌟

4. 回歸核心機制

在學習前端時,有些建議主張可跳過 JS 基礎,直接學習 Vue、React、Angular 等框架。但從第一性原則來看,我們應先理解 JS 的核心本質,再推敲前端框架出現的原因,以及為何需要 bundler(打包工具)這類工具。

  • 框架的由來:DOM 操作繁瑣且容易出錯,為提升開發效率與維護性,框架透過狀態管理、虛擬 DOM 或響應式系統,簡化了複雜性。
  • 打包工具的必要性:bundler 能將分散的 JS、CSS、圖片、模組組裝並優化,產出可在瀏覽器高效率執行的檔案。

理解脈絡,有助於面對新工具或框架時,不是盲從,而是可以清晰明瞭其設計初衷與適用情境🌟

5. 推演策略與選擇

當明瞭前端的本質是透過「結構(HTML)、表現(CSS)、互動(JS)」來服務使用者並展現頁面時,當我們遇到痛點時就能在繼續細分所屬的區塊,並尋求更好的解決方案。

  • 如果載入太慢:問題可能出在過多的資源載入、網路延遲、檔案體積過大。由於理解原理,我們可採取優化策略,如壓縮檔案、減少不必要的程式碼、使用 CDN 分散負載或透過 SSR(Server-Side Rendering)加速首屏呈現。
  • 如果互動不佳:檢視 JavaScript 的運行機制與 DOM 操作,可能是計算過於頻繁、DOM 操作過多。理解基礎後,我們能更精準地選擇框架、狀態管理模式或優化策略。

6. 不斷驗證與迭代

前端技術不斷演進,我們需要檢視現有的工具與流程。當我們選擇使用第一性原則思考時,能洞悉新技術所解決的核心問題,避免盲目追逐潮流及噪聲,而陷入技術的漩渦中。能保持理性判斷思考,更能清晰制定技術路線,積極應對技術變化及迭代。

參考資料

Released under the MIT License.