寫給想用圖解表達複雜概念的人 — 如何將複雜的事情用圖解表達清楚 ?

更新於 發佈於 閱讀時間約 6 分鐘
raw-image

知識圖解是一個非常實用的技能,但不是很好掌握。

在軟體業中,軟體架構師會用圖解表達系統之間的關聯,但傳統的軟體架構圖往往非常複雜,原本是要增進溝通效率,結果反而沒人看得懂。這篇文章分享由軟體架構師 Simon Brown 提出的 C4 模型,可以很好地讓圖解變的「見樹又見林」,最後我還會分享在軟體業之外的應用。

如果你是需要在工作場合中思考與溝通複雜事物的人,例如講師、產品規劃人員、工程師、設計師…等,就一起來看看這篇文章吧!

1. 架構的圖解好複雜怎麼辦?試試看 C4 模型

工程師喜歡用箭頭、框框來討論流程,因為清楚、簡單又好用。

然而到了討論後期,這些圖往往開始 “”長大,、最後大到已經不知道從哪裡看起的地步。例如一張軟體架構圖上將系統、伺服器、軟體、API、容器、元件…等細節一次呈現,結果只有畫圖的人自己看得懂。

怎麼辦呢?Simon Brown 提出了好解法-C4 模型。

raw-image

2. C4 模型的 4 個層級,由資訊顆粒度的粗細來區分

C4 Model 是由 Simon Brown 這位軟體架構師提出的圖解方法,他將一套系統的圖解分成 4 個層級,兼顧軟體架構的可讀性與完整性。

這4個層級依序由資訊顆粒度的大小來做區分,由大小依序是:

  • Level 1 : Context (上下文/脈絡)
  • Level 2:Containers (容器)
  • Level 3:Components (元件/組件)
  • Level 4:Code (程式碼)

Level 1 — Context

Context 是描述自家公司的「軟體系統」與「現實世界」的互動方式。

例如

  • 使用銀行軟體系統的使用者
  • 內部網路銀行系統
  • E-mail 系統
  • 銀行內部核心系統
raw-image

Level 2 — Containers

說明目標系統中的主要容器 (Containers) 組成。容器的例子有 :

  • Applications
  • client-side-single web page
  • server-side API application
  • data stores
  • microservices
raw-image

Level 3 — Components

元件(Components) 會直接對應到 1 組實際的抽象化程式碼 (例如登入相關的程式碼 — Sign-in controller)。

raw-image

Level 4 — Code

Code 是程式碼的實作細節,在圖解上會使用如 UML 表示程式 Class (類別) 的互動關係。

raw-image

3. C4 模型帶給我的啟發,不只用在軟體、還能用在生活

C4 模型很像是看一張 Google Map,從大地圖開始、不斷 Zoom in 到一個國家的馬路上。

4 Level 只是一個概念,背後可學習的關鍵是:從大到小依序圖解。

例如我若要解說「從0到1寫出一篇文章」,可以圖解成:

  • Level 1 : 先畫出寫作的每個步驟,例如發想靈感 > 寫下草稿 > 編輯文章 > 發表文章 > 歸檔文章
  • Level 2:針對想要解說的步驟進行拆解。例如想解說「編輯文章」,我會拆成「編輯內文」、「製作文章封面」這2個模組。
  • Level 3:針對特定的模組再進行拆解,例如「製作文章封面」可以再拆解成「Unsplash (抓取免費圖片)」、「Keynote (製作封面)」
  • Level 4:最底層的細部操作,例如對於「Keynote」的操作可以「加入形狀」、「加入文字」、「加入遮罩」

透過 Zoom in,除了讓讀者可以了解每一層級該關注的內容外,也可以讓講者思考自己的工作流程是否有問題、有哪些可以優化的地方。


喜歡我的文章嗎?以下是更多關於我的資訊。

▶ 關於文章

1/ 歡迎 訂閱電子報 加入 700+ 學習愛好者的行列,每週 1 個學習行動建議!
2/ 常滑 Facebook 嗎?可以幫我的 Facebook 粉絲團 按個讚,就可以看到文章啦~
3/ 想要掌握最新文章,可以點擊「追蹤」我~
4/ 如果你覺得文章寫的不錯,可以對文章點愛心讓我知道 ❤️

▶ 關於我
Software Technical writer @ OwlTing 奧丁丁集團 我專注寫
1/ SaaS 軟體產品規劃
2/ 個人知識管理
3/ 線上寫作的文章
擁有 6+ 年的SaaS產品經理工作經驗,☕️ 歡迎講座邀約、諮詢或跟我喝杯咖啡聊聊天,我的信箱是 muhenry608@gmail.com

▶︎ 聯繫方式
• 📪 Email:muhenry608@gmail.com
• 💬 Facebook:請先加我 個人好友 並簡短說明想要諮詢的主題

▶︎ 建立人脈
歡迎使用 LinkedIn 與我交流,你可以「加我為好友」建立連結 | LinkedIn @ Chi Chu 歡迎交流

留言
avatar-img
留言分享你的想法!
avatar-img
朱騏的沙龍
217會員
129內容數
分享學習相關的技巧、工具與方法
朱騏的沙龍的其他內容
2023/01/13
網路資訊的發達加上自媒體經營的盛行,我們一天接觸到的資訊早就超過大腦能夠負荷的界線。在這麼多資訊中,如何選擇自己值得保存的資訊呢?生產力專家 Tiago Forte 提出了 4 個問題,幫助我們思考眼前的資訊是否值得儲存下來。
Thumbnail
2023/01/13
網路資訊的發達加上自媒體經營的盛行,我們一天接觸到的資訊早就超過大腦能夠負荷的界線。在這麼多資訊中,如何選擇自己值得保存的資訊呢?生產力專家 Tiago Forte 提出了 4 個問題,幫助我們思考眼前的資訊是否值得儲存下來。
Thumbnail
2022/11/15
你想在網路上快速且持續的寫文章分享觀點,建立專業形象來獲得更多合作機會嗎 ? 但是你可能碰到很多困難。我從 2019–2022 年,在經營部落格、電子報、社群的過程中,學習與精通個人知識管理、自媒體寫作的技巧,能夠幫助想經營個人品牌的你建立專業形象與變現。
Thumbnail
2022/11/15
你想在網路上快速且持續的寫文章分享觀點,建立專業形象來獲得更多合作機會嗎 ? 但是你可能碰到很多困難。我從 2019–2022 年,在經營部落格、電子報、社群的過程中,學習與精通個人知識管理、自媒體寫作的技巧,能夠幫助想經營個人品牌的你建立專業形象與變現。
Thumbnail
2022/10/18
到底什麼叫做知識管理?又或者大家期待的知識管理,究竟想獲得什麼結果?過去我把「管理好筆記」跟「個人知識量」畫上等號,但隨著「筆記數量」增多,我發現自己的知識量並沒有等比例增多,在 2019 - 2022 這 3 年持續的寫作輸出後,我發現以前的觀念錯了,我該加強的能力應該是「小輸出」。
Thumbnail
2022/10/18
到底什麼叫做知識管理?又或者大家期待的知識管理,究竟想獲得什麼結果?過去我把「管理好筆記」跟「個人知識量」畫上等號,但隨著「筆記數量」增多,我發現自己的知識量並沒有等比例增多,在 2019 - 2022 這 3 年持續的寫作輸出後,我發現以前的觀念錯了,我該加強的能力應該是「小輸出」。
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
在網路上查找可以發現有很多類別圖的 6 種關係的說明與示例,通常不太容易難取得共鳴。主要有兩個原因: 1. 對於這些關係線的定義混淆,導致無法判斷滿足條件與使用時機 2. 缺少生活相關的具體案例,很難理解這些關係所對應的抽象概念
Thumbnail
在網路上查找可以發現有很多類別圖的 6 種關係的說明與示例,通常不太容易難取得共鳴。主要有兩個原因: 1. 對於這些關係線的定義混淆,導致無法判斷滿足條件與使用時機 2. 缺少生活相關的具體案例,很難理解這些關係所對應的抽象概念
Thumbnail
在設計軟體應用程式時,為了保持模組化、可維護性和可擴展性,開發人員通常會使用多層架構。3-tier(三層)架構是其中最常見的一種,它基本上分為三個主要層次:表示層、邏輯層和數據層。
Thumbnail
在設計軟體應用程式時,為了保持模組化、可維護性和可擴展性,開發人員通常會使用多層架構。3-tier(三層)架構是其中最常見的一種,它基本上分為三個主要層次:表示層、邏輯層和數據層。
Thumbnail
在軟體開發領域,MVC(Model-View-Controller)是一種被廣泛使用的設計模式,它有助於將應用程序的不同部分進行組織、分離,以實現更好的可維護性和可擴展性。本文將深入介紹MVC模式的核心概念,以及如何在您的項目中應用這種強大的架構。
Thumbnail
在軟體開發領域,MVC(Model-View-Controller)是一種被廣泛使用的設計模式,它有助於將應用程序的不同部分進行組織、分離,以實現更好的可維護性和可擴展性。本文將深入介紹MVC模式的核心概念,以及如何在您的項目中應用這種強大的架構。
Thumbnail
在軟體開發領域中,良好的架構設計是實現可維護性、擴展性和重用性的關鍵。其中,"三層式架構"是一種常見且易於理解的架構模式。本文將介紹三層式架構的概念、優勢以及如何在你的軟體項目中應用它。
Thumbnail
在軟體開發領域中,良好的架構設計是實現可維護性、擴展性和重用性的關鍵。其中,"三層式架構"是一種常見且易於理解的架構模式。本文將介紹三層式架構的概念、優勢以及如何在你的軟體項目中應用它。
Thumbnail
養成 1px 都不差的切版練習,紀錄我的訓練過程。
Thumbnail
養成 1px 都不差的切版練習,紀錄我的訓練過程。
Thumbnail
這邊要來跟大家分享流程圖是什麼?它很重要嗎? 一、什麼是流程圖?   它可以幫我們簡化密密麻麻的程式,用圖表來說明這支程式運行的來龍去脈,包含著流程的步驟、決策、輸出/輸入的相關過程。   當我們在製作程式過程中,可以協助我們紀錄、規劃流程、甚至是介紹程式或未來自己要看的時候,流程圖就可以派上用場
Thumbnail
這邊要來跟大家分享流程圖是什麼?它很重要嗎? 一、什麼是流程圖?   它可以幫我們簡化密密麻麻的程式,用圖表來說明這支程式運行的來龍去脈,包含著流程的步驟、決策、輸出/輸入的相關過程。   當我們在製作程式過程中,可以協助我們紀錄、規劃流程、甚至是介紹程式或未來自己要看的時候,流程圖就可以派上用場
Thumbnail
這邊要來跟大家介紹C#,使用的軟體會是Visual Studio 2017版本 介紹內容架構可以分六大階段:入門級、基礎級、中低階級、中階級、中高階級、高階級 在正式開始寫程式前,要先了解一些基本概念哦! 就如同學中文前要先了解ㄅㄆㄇㄈ或羅馬拼音之類的,程式也是一樣道理,先把基本概念了解後再來開始
Thumbnail
這邊要來跟大家介紹C#,使用的軟體會是Visual Studio 2017版本 介紹內容架構可以分六大階段:入門級、基礎級、中低階級、中階級、中高階級、高階級 在正式開始寫程式前,要先了解一些基本概念哦! 就如同學中文前要先了解ㄅㄆㄇㄈ或羅馬拼音之類的,程式也是一樣道理,先把基本概念了解後再來開始
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News