Gary
Hsieh
2026 · taipeiloading
回到文章列表
軟體工程2026-04-04

可發現性 (Discoverability) — 設計心理學概念來看軟體工程

可發現性 (Discoverability) — 設計心理學概念來看軟體工程

可發現性 (Discoverability) — 設計心理學概念來看軟體工程

最近在閱讀UX 相關的知識(Syntax 解放之後終於…),設計心理學裡面有五個概念,想從工程師的角度來使用看看,整理一份簡單的筆記。

  • Affordance — 可不可以用:這個 UI 元素能不能被操作?按鈕可以「按」、slider 可以「拖」 (有時候看到文字標籤用按鈕樣式,結果不能按,都很想翻白眼🙄)
  • Signifier — 看不看得出來:新增/刪除/離開,這種UI 直接告訴你「這裡有東西可以互動」
  • Mapping — 符不符合期待:功能跟 UI 的方向一致嗎?音量往上推就是變大聲,scroll down 就是看更多。違反直覺的 mapping 讓使用者每次操作都要重新想一次 (讓我想到在 Windows 跟 macOS 上切換使用滑鼠滾輪)
  • Feedback — 有沒有反應:使用者做了動作,系統有回應嗎?Loading spinner、success toast、error state工程上就是做 state 管理。internal state 沒有反映到 UI 上,對使用者來說就是「沒反應」
  • Conceptual Model — 使用者怎麼理解你的系統:最抽象的一個,我們沒辦法直接「設計」它 — 它是使用者腦中自己形成的 mental model。我們能做的是透過前面四個元素去引導他建立正確的理解

工程上怎麼檢查?

把自己從「功能實作者」切成「第一次碰這個系統的人」,然後問四個問題:

  1. 看得出來這頁是幹嘛的嗎
  2. 第一步要做什麼
  3. 做完之後有發生事情嗎?符合預期嗎
  4. 整個流程好不好理解,有沒有符合「直覺」

實作時,可以:

  • 先想清楚使用者的主要路徑 — 他最重要的任務是什麼
  • 關鍵功能、高頻功能直接 show 出來(用 signifier)
  • UI 要好理解 — 按鈕就是要長得可以按的樣子,符合經驗法則(除非你是 Apple 要創造新習慣)
  • 狀態可見性 — 讀取中就顯示 loading,沒網路就顯示斷線,不把 state 藏在 code 裡
  • Edge case 要處理 — 初始狀態、錯誤狀態、大量資料
  • 「看到就會用」比「記得才會用」更重要(Recognition over Recall)— 圖示遠大於快捷鍵

怎麼驗證?用 telemetry(產品埋點 + 行為數據追蹤)。Heatmap、click tracking、funnel drop-off — GA、Mixpanel、PostHog 這些不應該是 PM 專屬的東西,工程師自己看很快,因為知道每個元素背後的實作邏輯 (PM 跟 RD 的分工就不在我們討論範疇了🤣🤣)。

可發現性(Discoverability) 讓使用者「隨便玩我們產品,都能得到他想要的結果」,不需要讀說明書、不需要猜、不需要記。

用完我們的產品,「不」「會」「火」「大」

#直覺#工程師