簡介
在現代軟體架構中,高階業務需求與低階程式碼實現之間的落差,往往是專案失敗的關鍵所在。利害關係人需要情境脈絡,開發者需要結構,而架構師需要一套共享語言。C4 模型 (情境、容器、元件與程式碼已成為在不同抽象層級上視覺化軟體架構的產業標準。
本指南特別聚焦於容器圖表,即 C4 模型的第二層級,並以「網路銀行系統」作為實務案例。我們將探討如何運用Visual Paradigm,的AI 聊天機器人,以及VPasCode腳本語言,以高效地建立、維護與演進這些圖表。透過將 AI 驅動的協助與基礎設施即程式碼(Infrastructure-as-Code)原則整合,團隊能將靜態圖表轉化為具生命力的架構文件。

關鍵概念:C4 容器層級
在 C4 模型中,一個容器代表一個應用程式或資料儲存庫。它是一個執行時邊界,封裝行為與技術選擇。根據所提供的網路銀行系統圖表,以下是核心概念:
1. 容器與元件的區別
切勿將 C4 容器與 Docker 容器或 UML 元件混淆。在此圖表中:
-
使用者介面(單頁應用程式):在瀏覽器中執行的 JavaScript 單頁應用程式。
-
後端(API 應用程式):處理業務邏輯的 Java/Spring Boot 服務。
-
對帳單儲存庫與資料庫:專門的
ContainerDb分別代表 NoSQL 和 RDBMS 技術的元素。
2. 關係與協定
C4 圖中的箭頭必須同時標註 意圖 與 技術。所提供的圖例展示了此最佳實踐:
-
Rel(ui, backend, "傳送 JSON/HTTPS API 請求", "JSON/HTTPS")明確定義了合約。 -
Rel(backend, coreBanking, "進行 API 呼叫...", "XML/HTTPS")突顯了舊有整合模式。 -
Rel(ses, customer, "傳送電子郵件...", "Email")顯示非同步的出站通訊。
3. 系統邊界
The Container_Boundary(system, "網路銀行系統") 將內部容器與外部系統(System_Ext)。此視覺區分立即讓讀者了解團隊擁有什麼,以及他們依賴什麼(例如:AWS SES、核心銀行系統)。
工具協同效應:Visual Paradigm + AI 聊天機器人 + VPasCode
手動建立和維護 C4 圖容易出錯。Visual Paradigm (VP)、AI 聊天機器人和 VPasCode 的結合創造了強大的工作流程。

為何使用此技術堆疊?
| 工具 | 角色 | 在 C4 建模中的效益 |
|---|---|---|
| Visual Paradigm | 建模平台 | 原生 C4 支援、企業級儲存庫、多格式匯出,以及需求追蹤能力。 |
| AI 聊天機器人 | 智慧助理 | 從自然語言生成 VPasCode,驗證 C4 語法,建議缺失的關聯,並解釋架構決策。 |
| VPasCode | 腳本語言 | 基於文字的圖形定義(類似於 PlantUML),可進行版本控制,支援 CI/CD 整合,並允許批量編輯。 |
工具之間的關係
這些工具形成一個回饋迴圈:
-
AI 聊天機器人作為人類意圖與機器可讀取的 VPasCode 之間的翻譯器。
-
VPasCode作為單一事實來源,與應用程式程式碼一同儲存在 Git 中。

-
Visual Paradigm將 VPasCode 渲染為互動式圖形,以元數據豐富圖形,並發布給利害關係人。
當您更新 VPasCode(手動或透過 AI)時,Visual Paradigm 會自動重新整理圖形。當您要求 AI「新增快取層」時,它會直接修改 VPasCode,同時保留如 等版面指示。LAYOUT_TOP_DOWN().
實際範例:網路銀行系統
以下是網路銀行系統容器圖的完整 VPasCode 原始碼。此程式碼展示了在 Visual Paradigm 生態系統中正確使用 C4-PlantUML 標準函式庫的方式。

@startuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
skinparam vpDiagramType C4modelContainerDiagram
LAYOUT_TOP_DOWN()
LAYOUT_WITH_LEGEND()
title 網路銀行系統 - 容器圖
Person(customer, "個人銀行客戶", "使用該系統查看帳戶餘額並進行付款的銀行客戶。")
Container_Boundary(system, "網路銀行系統") {
Container(staticContent, "靜態內容", "HTML, CSS, JavaScript", "將 HTML、CSS 和 JavaScript 檔案交付給客戶的網頁瀏覽器。")
Container(ui, "使用者介面 (單頁應用程式)", "JavaScript", "在客戶瀏覽器中執行的基於 JavaScript 的網頁應用程式。提供網路銀行介面並向後端發出 API 請求。")
Container(backend, "後端 (API 應用程式)", "Java, Spring Boot", "透過 JSON/HTTPS API 提供網路銀行功能。處理業務邏輯、協調請求,並與資料儲存庫及外部系統溝通。")
ContainerDb(statementStore, "對帳單儲存庫", "NoSQL 資料庫", "儲存以 PDF 檔案呈現的銀行帳戶對帳單。後端從此儲存庫讀取和寫入資料。")
ContainerDb(database, "資料庫", "RDBMS", "儲存使用者帳戶資訊、存取日誌及其他結構化資料。後端從此資料庫讀取和寫入資料。")
}
System_Ext(ses, "Amazon Web Services Simple Email Service (SES)", "由後端用於向客戶發送電子郵件的雲端電子郵件服務提供者。")
System_Ext(coreBanking, "核心銀行系統", "一個外部單體軟體系統,處理客戶帳戶、交易管理及帳簿餘額等核心銀行功能。")
Rel(customer, staticContent, "將靜態內容載入瀏覽器")
Rel(staticContent, ui, "將使用者介面交付給瀏覽器")
Rel(customer, ui, "與使用者介面互動以查看餘額並進行付款", "HTTPS")
Rel(ui, backend, "發送 JSON/HTTPS API 請求", "JSON/HTTPS")
Rel(backend, statementStore, "讀取和寫入", "PDF")
Rel(backend, database, "讀取和寫入", "SQL")
Rel(backend, coreBanking, "呼叫 API 以處理核心交易", "XML/HTTPS")
Rel(backend, ses, "發送交易電子郵件", "HTTPS")
Rel(ses, customer, "將電子郵件交付給客戶", "電子郵件")
@enduml
結合 AI 聊天機器人使用此圖形
無需手動編寫上述程式碼,您可以使用Visual Paradigm AI 聊天機器人,並搭配以下提示:
「為網路銀行系統生成 C4 容器圖。包含客戶、JavaScript 單頁應用程式前端、Spring Boot 後端、用於帳戶的 RDBMS、用於 PDF 對帳單的 NoSQL 儲存庫、用於電子郵件的 AWS SES,以及透過 XML/HTTPS 連接的外部核心銀行系統。」
AI 將產生語法正確的VPasCode,然後將其貼上至 Visual Paradigm。對於現有的圖表,您可以詢問:
「檢視此容器圖表。是否有任何遺漏的安全邊界或未標註的通訊協定?」
這將架構師的角色從 繪圖轉變為 驗證與精進.
容器圖表的最佳實踐
-
務必指定技術:切勿僅寫「資料庫」。應寫「PostgreSQL 15」或「MongoDB Atlas」。技術選擇會驅動部署與營運考量。
-
標註每一條箭頭:未標註的箭頭會產生歧義。請使用以下格式:
"描述", "技術/通訊協定". -
使用版面配置指令:
LAYOUT_TOP_DOWN()以及LAYOUT_WITH_LEGEND()可確保團隊成員圖表的一致性。 -
對您的 VPasCode 進行版本控制:將圖表視為程式碼。使用拉取請求(pull requests)來審查架構變更。
-
將容器維持在執行時邊界:如果兩個模組一起部署並共用一個處理程序,它們可能屬於同一個容器。如果它們獨立伸縮,則應為不同的容器。
結論
「C4 容器圖表」是連結業務情境與技術實作的關鍵產出。透過採用 Visual Paradigm作為您的建模平台,VPasCode 作為您的版本控制來源格式,以及 AI 聊天機器人 作為您的智慧協作夥伴,您將架構文件從過時的交付成果轉變為動態且具協作性的資產。
網路銀行系統範例說明了此方法如何清晰地捕捉複雜的整合——從單頁應用程式(SPA)到舊版核心銀行系統——同時保持對工程師與利害關係人都易於閱讀。採用此工具鏈,以確保您的架構不僅設計精良,而且溝通清晰、維護得宜,並始終與您不斷演進的系統保持一致。











