1. 概念
1.1. 一個軟體,從執行於手機上的最小程式到大型的企業系統,都是由概念組成的,每個概念都是獨立的功能單元
1.2. 軟體中的可用性問題,經常可以追溯到其底層概念
- 1.2.1. 概念幫助識別軟體的不可用性
1.3. 概念都是以同樣形式在各種軟體中重複使用的
- 1.3.1. 將設計分解為最基本的概念帶來了概念重用的機會
1.4. 概念就像是分子
- 1.4.1. 雖然相互結合在一起,但無論在哪裡出現,它們的屬性和行為都是相似的
1.5. 概念沒有視覺化的形式,它們非常抽象
1.6. 任何關於設計的討論都必須圍繞基本概念,並評估概念採用的行為模式是否符合它的目的
-
1.6.1. 使用者介面也很重要,但在一定程度上使用者介面只是服務於概念,並將概念呈現給使用者
-
1.6.2. 如果我們想讓軟體更好用,就必須從概念著手
1.7. 在傳統的設計學科中,設計是從概念這個核心出發的
-
1.7.1. 當選擇好核心概念後,後續的設計決策也是不可避免的
-
1.7.2. 設計作為一個整體,需要使作品呈現出一致性,使它看起來像是一個人的作品,哪怕它是由一個大型團隊共同完成的
-
1.7.3. 使用者能夠感知到作品的完整性和統一性,而設計中潛在的複雜性要讓位於簡單的作品形象
1.8. 概念的複雜性是合理的
- 1.8.1. Photoshop軟體的圖層和蒙版就屬於複雜的概念
2. 設計的層次
2.1. 物理層次
-
2.1.1. 設計按鍵、佈局和手勢
-
2.1.2. 對應使用者的物理和認知能力
-
2.1.3. 這個層次是關於元件的物理特性的
-
2.1.3.1. 即使軟體的介面僅僅在一塊觸控式螢幕上執行,也會有物理特性,只不過可能比較有限
-
2.1.3.2. 我們有限的視覺取樣率導致了感知融合,這使我們很難區分發生在30毫秒以內的事件,所以30幀/秒的畫面就足以讓電影看起來很流暢
-
2.1.4. 菲茨定律(Fitt's Law)預測了使用者將游標移動到目標點需要的時間,並解釋了為什麼選單欄應該位於螢幕頂部,就像macOS的桌面那樣,而不是像Windows系統桌面那樣位於軟體的視窗內部
-
2.1.5. 在物理層次進行設計時,必須尊重使用者身體特點的多樣性
2.2. 語言層次
-
2.2.1. 設計與使用者交流的圖示、提示資訊和術語
-
2.2.2. 這個層次關注的是為了表達軟體的執行方式而使用的語言,以幫助使用者瀏覽軟體、瞭解可用的操作以及操作將產生的影響、軟體已經發生的行為等
-
2.2.3. 在語言層次進行設計時,必須尊重使用者在文化和語言上的差異
-
2.2.3.1. 在歐洲,紅色圓圈的路標表示任何車輛都不允許通行
-
2.2.3.2. 大多數美國司機卻可能覺得禁行標識應該是紅色的斜槓
-
2.2.4. 當使用者介面的設計師談論對一致性的需求時,他們通常指的就是語言層次上的語言使用
-
2.2.4.1. 一致性包括確保在整個使用者介面中,對相同的詞語採用了相同的使用方式
2.3. 主要關注使用者介面中的概念表達
2.4. 概念層次
-
2.4.1. 將底層行為設計為一系列概念
-
2.4.2. 它關注設計背後的行為,即關注由使用者和軟體本身執行的操作,以及這些操作對底層結構的影響
-
2.4.3. 與語言層次相比,概念層次與交流或文化無關
-
2.4.4. 在程式設計中,抽象(abstraction)和表達(representation)有著重要的區別
-
2.4.4.1. 抽象是抓住程式設計思想的本質,也可能用於對觀測到的行為進行說明
-
2.4.4.2. 表達是透過程式碼實現這個本質
3. 心智模型
3.1. 概念設計之源
3.2. 使用者知道軟體中有這些功能,卻仍然無法正確地使用它們
-
3.2.1. 最常見的原因是,使用者的心智模型不正確,或者說與軟體設計師和程式設計師的心智模型不一致
-
3.2.2. 使用者對他們使用的裝置往往有著模糊、不完整甚至是不一致的心智模型,這並不令人意外
3.3. 解決這個問題的一個糟糕辦法是培訓使用者
- 3.3.1. 大多數使用者都會拒絕花時間學習如何使用軟體,他們認為熟能生巧
3.4. 一個更好的解決辦法是設計軟體的概念,使軟體簡單、靈活並能很好地適應使用者的需要
- 3.4.1. 同時透過使用者介面向使用者傳達這些概念
3.5. 概念本身既是使用者想要的心智模型,也是軟體的規格
3.6. 使用者介面設計師的任務就是設計出類似設計大師唐納德·諾曼所說的“系統形象”
- 3.6.1. 使用者介面能夠準確地對應概念模型,這樣使用者就能夠獲得與軟體概念一致的心智模型
4. 概念可以表示單個軟體
4.1. 概念是單個軟體、一類軟體以及各類軟體的特徵
4.2. 概念可以讓你比較軟體,注意其必要的功能以及知道如何有效地使用這些功能
4.3. 簡訊和電子郵件的主要區別
-
4.3.1. 簡訊是用會話概念組織起來的,所有傳送給同一個人的訊息都會顯示在同一個介面中
-
4.3.1.1. 在一定程度上是由於簡訊的傳送者和接收者僅由電話號碼標識身份
-
4.3.1.2. 簡訊依賴會話的場景
-
4.3.2. 電子郵件通常使用“郵箱”、“資料夾”或“標籤”等概念來組織
-
4.3.2.1. 電子郵件使用者往往擁有多個通訊地址,這使得根據地址對電子郵件進行分組並不可靠
-
4.3.2.2. 電子郵件資訊往往是孤立的
5. 概念可以表示一類軟體
5.1. 概念通常是軟體差異化的因素,關注概念會讓你更關注市場的需求,並揭示軟體成功或失敗的原因
5.2. 概念不僅可以表示單個軟體,而且能表示一類軟體
-
5.2.1. 文字編輯器
-
5.2.1.1. Atom、Sublime、BBEdit和Emacs來編輯程式程式碼
-
5.2.1.2. 文字編輯器的關鍵概念是“行”和“字元”
-
5.2.1.3. 行概念包含了強大的功能,例如比較和合並,這些對程式設計師管理程式碼來說是必不可少的
-
5.2.2. 文書處理軟體
-
5.2.2.1. Word、OpenOffice和WordPerfect來建立各種文件
-
5.2.2.2. 包括“段落”,還包括“格式”,格式概念允許使用者為文字指定排版屬性
-
5.2.3. 桌面出版軟體
-
5.2.3.1. Adobe InDesign、QuarkXPress、Scribus和Microsoft Publisher將文件組織成書籍和雜誌的最終版式
-
5.2.3.2. 包括文書處理軟體的基本概念,但增加了最重要的文字流概念,這一概念允許使用者在文件的不同位置插入連結在一起的文字框
5.3. 概念可以區分軟體
6. 概念可以作為業務定義的核心
6.1. 概念可以幫助從事數字化轉型的公司規劃前進的道路
6.2. 雖然投資核心概念這件事聽起來沒有那麼花哨,但可能更有效
6.3. 只需確定業務的核心概念,就可以幫助公司專注於正在提供的服務,以及將來可能會提供的服務
6.4. 析這些核心概念可以幫助公司發現其中的衝突和機會,從而簡化業務
6.5. 對概念清單進行排序,可以反映每個概念對於客戶和公司的價值,以及實施和維護這些概念的成本,從而為公司的服務戰略提供依據
6.6. 透過整合一系列核心概念,公司可以確保客戶在技術平臺和公司各部門之間擁有一致的體驗,並可以降低因擁有多個概念變體導致的成本
6.7. 為了使利潤最大化,大多數航空公司隱藏了座位的定價策略
- 6.7.1. 只有專家才知道當前的座位價格與這架飛機上其他座位相比,或者與過去的座位價格相比,是貴了還是便宜了
7. 概念可以確定成本和收益
7.1. 概念能將功能更清晰地劃分為獨立的單元,每個功能單元都有自己的價值和成本
7.2. 概念的複雜性,即開發這個概念的成本,以及使用者混淆的成本
7.3. 概念的新穎性,以及由此帶來的風險
7.4. 根據二八法則,我們知道20%的概念將帶來80%的收益
8. 用概念分離關注點
8.1. 概念提供一種新的粒度,讓軟體設計師可以更有效地分離軟體的功能點、探索概念的重用方式,並更合理地規劃軟體工程工作
8.2. 解決問題最重要的策略是分離關注點,即分開處理關注點的不同方面,即使有些關注點並不是完全獨立的
8.3. 分離關注點是有效的,因為這樣能使設計師一次只專注於一個方面
-
8.3.1. 無須在設計稽核功能的同時考慮是否可以撤銷邀請
-
8.3.2. 每個概念都可以設計得很豐富,甚至可以單獨成為一個小系統
-
8.3.3. 如果設計師認為某個概念的成本與收益不匹配,也可以完全忽略這個概念
9. 概念可以確保設計的安全
9.1. 概念是安全設計的本質,選擇正確的概念並理解其含義至關重要
9.2. 安全是所有軟體都關注的問題
9.3. "安全設計”的流行,反映了人們逐步對軟體安全達成了一種共識,即確保安全最好的方式不是沒有安全漏洞(這幾乎是不可能的),而是透過設計保證即使存在安全漏洞,系統仍然是安全的
9.4. 系統範圍的安全設計依賴幾個關鍵的概念
-
9.4.1. 身份驗證概念,確保正確識別出請求的發出者,也就是安全領域中的“委託人”
-
9.4.2. 授權概念,確保這些請求者只能訪問某些資源
-
9.4.3. 審計概念,確保每次訪問都有真實的記錄,並且可以據此懲罰不良行為等
9.5. 概念是所有系統設計的核心
-
9.5.1. 安全(safety)領域不同於安保(security)領域,前者很少有標準的概念
-
9.5.2. 如果一個事故反覆發生,就意味著應該有一個新的概念發揮類似安保概念的作用,並採用傳統的方法實現關鍵功能
-
9.5.2.1. 醫療裝置經常發生劑量計算錯誤,那麼就應該設計一個劑量概念,用來處理各種單位、濃度和流速,從而消除很多導致患者受傷或死亡的悲劇性事故,這些事故本是可以預防的
10. 概念可以回應對設計的評論
10.1. 概念為評論設計提供了可用的原則,從而避免花很長時間才能發現問題
- 10.1.1. 掌握這些原則的軟體設計師會做出更好的設計,即使他們還沒有明確的想法
10.2. 在任何設計領域,設計師都會對彼此的作品進行分析和評論,這對設計有重要的作用
10.3. 評論並不是一種經過系統性思考的正式評價,但正是它的非正式效能夠帶來新的視角與靈感
10.4. 設計原則可以有不同的使用方式
- 10.4.1. 它們是設計評論達成共識的基礎,或者可以被系統地應用於啟發式評價,但其更重要的作用是塑造設計師的思想