# architect 結構良好的工具 (well-architected-tools) - Full Documentation
# ⚡️ 防模式探索器
常見的陷阱會破壞 Salesforce 的 Trust、易用性和適應性。
## 信任
降低安全性、規範或可靠性的作法,以及如何避免這些作法。
## 簡單
增加複雜度、降低自動化或影響使用者體驗的作法。
## 可調整
降低彈性、限制可組合性或使變更難以變更的作法。
# ✅ 模式探索器
在 Salesforce 上建立可信任、簡單且可調整的解決方案的經證模式。
## 信任
保護系統和資料、符合法律與道德標準,並提供可用的效能解決方案。
## 簡單
針對清晰度、自動化和吸引人的使用者體驗而設計。
## 可調整
使用彈性作業和可組合結構為變更建立。
# 保護 - 資料安全性
### 共用與可視性模式
深入瞭解 Well-Architected [Trusted](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [Secure](/docs/architect/zh-tw/well-architected/guide/secure) → [Data Security](/docs/architect/zh-tw/well-architected/guide/secure#資料安全性) → [Comparting & Visibility](/docs/architect/zh-tw/well-architected/guide/secure#sharing-visibility)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Data 360 \| 組織 | ✅ 使用「資料空間」強制執行資料分隔,「資料空間」存在於區隔,並確保 Data 360 資料的適當可視性 |
| Einstein \| 機器人 | ✅ 由機器人起始的流程會在機器人使用者環境中執行。由機器人起始的流程會使用與機器人相關聯的使用者設定檔和權限集,以決定「流程」的物件權限和欄位級存取權。 |
| 平台 \| Apex | ✅ 所有程式碼存取資料 (SOQL/SOSL) 或執行資料作業 (DML/資料庫類別方法) 的使用與共用關鍵字 |
| 平台 \| 設計標準 | ✅ 外部使用者和內部使用者會使用不同的資料存取標準 (若適用) |
| 平台 \| 文件 | ✅ 安全性矩陣概述每個使用者角色獲授權存取的資料 |
| 平台 \| 流程 | ✅ 盡可能在使用者環境中畫面流程 避免在系統環境中執行畫面流程。如果無法避免,請使用「子流程」元素啟動僅包含超出執行中使用者所擁有權限之權限之動作的子流程,而非將整個「畫面流程」設定為在系統環境中執行 |
| 平台 \| 流程 | ✅ 指定流程在系統環境中執行的「取得記錄」元素時,一律指定要儲存的欄位 |
| 平台 \| 組織 | ✅ 生成式 AI 僅會在使用者模式中運作,或為系統存取所選取的使用具有明確的業務理由 |
| 平台 \| 組織 | ✅ 由於合規性需求,內部使用者的組織範圍預設值 (OWD) 為「公用讀取」,內部使用者的 OWD 為「專用」 |
| 平台 \| 組織 | ✅ 外部使用者的 OWD 為專用 |
### 使用加密模式
深入瞭解 Well-Architected [Trusted](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [Secure](/docs/architect/zh-tw/well-architected/guide/secure) → [Data Security](/docs/architect/zh-tw/well-architected/guide/secure#資料安全性) → [Use of Encryption](/docs/architect/zh-tw/well-architected/guide/secure#加密的使用)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| Apex | ✅ 如果業務需求在傳輸中需要更高的資料保護,則整合涉及的所有程式碼都會使用「加密類別」方法來執行邏輯,以在傳輸前加密資料,或在接收時解密資料 |
| 平台 \| 設計標準 | ✅ 傳輸中和 (若有需要) 靜態中資料加密的使用個案清楚且可探索 |
| 平台 \| 設計標準 | ✅ 已批准的加密通訊協定會清楚列出 |
| 平台 \| 文件 | ✅ 程式碼文件會清楚指出使用加密的位置以及使用哪些通訊協定 |
| 平台 \| 組織 | ✅ 如果偵測到安全性風險需要更高的靜態資料保護,則 Hyperforce 或 Salesforce Shield 會提供靜態加密 |
---
### 共用與可視性反模式
深入瞭解 Well-Architected [Trusted](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [Secure](/docs/architect/zh-tw/well-architected/guide/secure) → [Data Security](/docs/architect/zh-tw/well-architected/guide/secure#資料安全性) → [Comparting & Visibility](/docs/architect/zh-tw/well-architected/guide/secure#sharing-visibility)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Einstein \| 機器人 | ⚡️ 機器人起始的流程會在系統環境中執行 機器人起始的流程會在系統模式中執行。如果您尚未在設定的版本更新區段中啟用「機器人使用者內容中執行流程」更新,則可能會發生此情況。 |
| 平台 \| Apex | ⚡️ 共用關鍵字會不一致使用 |
| 平台 \| 文件 | ⚡️ 文件不存在或不包含安全性矩陣 |
| 平台 \| 文件 | ⚡️ 如果安全性矩陣存在,則不會概述使用者角色的資料存取權 |
| 平台 \| 流程 | ⚡️ 系統內容用於呈現給外部使用者的畫面流程 整個畫面流程使用系統內容來呈現外部使用者沒有透過共用模式存取權限的資料 |
| 平台 \| 流程 | ⚡️ 在系統環境中使用「取得記錄」元素時儲存所有欄位 設定要在系統環境中執行的「取得記錄」元素時選擇「自動儲存所有欄位」選項 |
| 平台 \| 組織 | ⚡️ 內部使用者的 OWD 設定為「專用」,但沒有業務理由,或內部使用者的 OWD 設定為「公用讀/寫」 |
| 平台 \| 組織 | ⚡️ 生成式 AI 在系統模式中運作,沒有業務理由 |
| 平台 \| 組織 | ⚡️ 外部使用者的 OWD 設定為「專用」以外的任何項目,無須業務理由 |
### 使用加密防模式
深入瞭解 Well-Architected [Trusted](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [Secure](/docs/architect/zh-tw/well-architected/guide/secure) → [Data Security](/docs/architect/zh-tw/well-architected/guide/secure#資料安全性) → [Use of Encryption](/docs/architect/zh-tw/well-architected/guide/secure#加密的使用)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| Apex | ⚡️ 業務需求在傳輸時需要更高的資料保護,但整合中涉及的程式碼會執行邏輯,而不會在傳輸前或收到時加密資料,或者會臨時使用「加密類別」方法 |
| 平台 \| 設計標準 | ⚡️ 批准的加密通訊協定未清楚或未列出 |
| 平台 \| 設計標準 | ⚡️ 程式碼未記錄,或文件不清楚程式碼中加密的使用位置與方式 |
| 平台 \| 組織 | ⚡️ 業務需求需要更大的靜態資料保護,但不使用 Hyperforce 或 Salesforce Shield |
---
# 信任模式與反模式探索器
保護系統和資料、符合法律與道德標準,並提供可用的效能解決方案。
降低安全性、規範或可靠性的作法,以及如何避免這些作法。
# 參與 - 已簡化
### 應用程式複雜性模式
深入瞭解「結構良好」 「[簡單](/docs/architect/zh-tw/well-architected/guide/easy-overview)」 → [參與](/docs/architect/zh-tw/well-architected/guide/engaging) > [簡化](/docs/architect/zh-tw/well-architected/guide/engaging#已簡化) > [應用程式複雜性](/docs/architect/zh-tw/well-architected/guide/engaging#應用程式複雜性)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------ |
| 平台 \| 組織 | ✅ 應用程式在管理員提供的預設組態中有少於 10 個索引標籤 |
| 平台 \| 組織 | ✅ 沒有任何應用程式的「停用此應用程式中瀏覽項目的一般使用者個人化」設定為 true |
### 尺寸規格模式
深入瞭解「結構良好」 「[簡單](/docs/architect/zh-tw/well-architected/guide/easy-overview)」 → [參與](/docs/architect/zh-tw/well-architected/guide/engaging) > [簡化](/docs/architect/zh-tw/well-architected/guide/engaging#已簡化) > [尺寸規格](/docs/architect/zh-tw/well-architected/guide/engaging#尺寸規格)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| 平台 \| Aura | ✅ 應用程式產生器中提供的自訂 Aura 元件會在其個別設計檔案中宣告支援的尺寸規格 |
| 平台 \| Aura | ✅ 應用程式產生器中提供的自訂 Aura 元件實作寬度認知樣式模式 |
| 平台 \| Aura | ✅ 自訂 Lightning 頁面範本使用 Aura 元件設計檔案中的 `design:supportedFormFactors` 和 `design:supportedFormFactor` |
| 平台 \| 桌面 | ✅ 資料輸入欄位和瀏覽控制項適合畫面,且可以依預期與其互動 |
| 平台 \| 桌面 | ✅ 記錄與應用程式頁面會根據頁面啟用指派規則正確顯示 |
| 平台 \| Lightning Web 元件 (LWC) | ✅ 應用程式產生器中提供的自訂 LWC 實作寬度認知樣式模式 |
| 平台 \| Lightning Web 元件 (LWC) | ✅ 應用程式產生器中提供的自訂 LWC 會在其個別設計檔案中宣告支援的尺寸規格 |
| 平台 \| 行動裝置 | ✅ 顯示針對較小的尺寸規格最佳化的行動瀏覽功能表 |
| 平台 \| 行動裝置 | ✅ 資料輸入與瀏覽控制會正確顯示 |
| 平台 \| 行動裝置 | ✅ 使用者可以輕鬆地輸入資料 |
| 平台 \| 行動裝置 | ✅ 精簡版面配置會顯示在記錄層級 |
| 平台 \| 組織 | ✅ Salesforce 提供的 Lightning 頁面範本會用於所有或大多數的頁面 |
### 表單模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [參與](/docs/architect/zh-tw/well-architected/guide/engaging) → [簡化](/docs/architect/zh-tw/well-architected/guide/engaging#已簡化) → [表單](/docs/architect/zh-tw/well-architected/guide/engaging#表單)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------- |
| 平台 \| 應用程式 | ✅ 資料輸入錯誤會在使用者離開或提交資料前出現 |
| 平台 \| 應用程式 | ✅ 欄位遵循邏輯分組 |
| 平台 \| 應用程式 | ✅ 資料提交發生一次 |
| 平台 \| 應用程式 | ✅ 動作與瀏覽的標籤清楚 |
| 平台 \| 應用程式 | ✅ 提供即時且視覺化的回饋意見以確認使用者動作,例如按一下按鈕 |
| 平台 \| 應用程式 | ✅ 瀏覽按鈕 (例如「前往」、「下一步」和「返回」) 會一致地放置在整個 UI 中 |
| 平台 \| 應用程式 | ✅ 資料輸入欄位會以五個以下的群組顯示 |
| 平台 \| 應用程式 | ✅ 資料輸入錯誤顯示在欄位級 |
| 平台 \| 應用程式 | ✅ 分頁控制項可啟用步驟之間的移動 |
| 平台 \| 表單邏輯 | ✅ 欄位會盡可能預先填入或自動完成 |
| 平台 \| 表單邏輯 | ✅ 使用者不需要等待長時間執行的伺服器端動作完成 |
| 平台 \| 表單邏輯 | ✅ 資料作業執行一次 |
| 平台 \| 表單邏輯 | ✅ 自訂元件針對不涉及資料作業的伺服器型動作使用 `cacheable=true` |
| 平台 \| Lightning Web 元件 (LWC) | ✅ 在 LWC `@wire` 轉接器中,會處理所有不涉及資料作業的動作 |
---
### 應用程式複雜性反模式
深入瞭解「結構良好」 「[簡單](/docs/architect/zh-tw/well-architected/guide/easy-overview)」 → [參與](/docs/architect/zh-tw/well-architected/guide/engaging) > [簡化](/docs/architect/zh-tw/well-architected/guide/engaging#已簡化) > [應用程式複雜性](/docs/architect/zh-tw/well-architected/guide/engaging#應用程式複雜性)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| 平台 \| 組織 | ⚡️ 許多應用程式的「停用此應用程式中使用者瀏覽項目的個人化」設定為 true,或在組織範圍內停用自訂瀏覽項目的權限 |
| 平台 \| 組織 | ⚡️ 管理員提供的預設組態中應用程式通常有 10 個以上的索引標籤 |
### 尺寸規格反模式
深入瞭解「結構良好」 「[簡單](/docs/architect/zh-tw/well-architected/guide/easy-overview)」 → [參與](/docs/architect/zh-tw/well-architected/guide/engaging) > [簡化](/docs/architect/zh-tw/well-architected/guide/engaging#已簡化) > [尺寸規格](/docs/architect/zh-tw/well-architected/guide/engaging#尺寸規格)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| Aura | ⚡️ 自訂 Lightning 頁面範本不會統一地在 Aura 元件設計檔案中使用 `design:supportedFormFactors` 和 `design:supportedFormFactor` |
| 平台 \| Aura | ⚡️ 應用程式產生器中提供的自訂 Aura 元件不會一致在各自的設計檔案中宣告支援的尺寸規格 |
| 平台 \| Aura | 在自訂 Aura 元件中,不同尺寸的樣式完全由 CSS 中的硬式編碼 `px` 或 `%` 值所驅動 |
| 平台 \| Aura | ⚡️ 在自訂 Aura 元件中,Salesforce 提供的介面不會實作寬度認知樣式。 |
| 平台 \| 桌面 | ⚡️ 資料輸入欄位和瀏覽控制項不會顯示在畫面上的預期位置 |
| 平台 \| 桌面 | ⚡️ 與資料輸入欄位和瀏覽控制項的互動不符合必要行為 |
| 平台 \| 桌面 | ⚡️ 缺少頁面啟用指派規則表示所有使用者都會看見相同的記錄和應用程式頁面 |
| 平台 \| Lightning Web 元件 (LWC) | ⚡️ 在自訂 LWC 中,Salesforce 提供的介面不會實作寬度認知樣式 |
| 平台 \| Lightning Web 元件 (LWC) | 在自訂 LWC 中,不同尺寸規格的樣式完全由 CSS 中的硬式編碼 `px` 或 `%` 值所驅動 |
| 平台 \| Lightning Web 元件 (LWC) | ⚡️ 應用程式產生器中提供的自訂 LWC 不會一直在各自的設計檔案中宣告支援的尺寸規格 |
| 平台 \| 行動裝置 | ⚡️ 資料輸入與瀏覽控制項無法一致或正確地呈現 |
| 平台 \| 行動裝置 | ⚡️ 使用者無法輕鬆輸入資料 |
| 平台 \| 行動裝置 | ⚡️ 未在記錄層級設定精簡版面配置 |
| 平台 \| 行動裝置 | ⚡️ 行動瀏覽功能表與桌面瀏覽不同 |
| 平台 \| 組織 | ⚡️ Classic 仍啟用 |
### 表單反模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [參與](/docs/architect/zh-tw/well-architected/guide/engaging) → [簡化](/docs/architect/zh-tw/well-architected/guide/engaging#已簡化) → [表單](/docs/architect/zh-tw/well-architected/guide/engaging#表單)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------------------------- |
| 平台 \| 應用程式 | ⚡️ 資料輸入欄位會顯示在大於五個的群組中 |
| 平台 \| 應用程式 | ⚡️ 資料輸入欄位未依邏輯方式分組,因此需要大量的內容切換,讓使用者填寫表單 |
| 平台 \| 應用程式 | ⚡️ 步驟與分組未清楚定義,因此難以瀏覽 |
| 平台 \| 應用程式 | ⚡️ 只有在按一下表單的提交按鈕時,才會顯示資料輸入錯誤 |
| 平台 \| 應用程式 | ⚡️ 動作與瀏覽的標籤會讓不熟悉基本系統功能的使用者感到困惑 |
| 平台 \| 應用程式 | ⚡️ 不提供使用者動作的視覺確認 |
| 平台 \| 應用程式 | ⚡️ 瀏覽按鈕會顯示在整個 UI 中的任意位置 |
| 平台 \| 應用程式 | ⚡️ 資料輸入錯誤包含密碼資訊,只有瞭解系統內部運作的使用者才能解譯這些資訊 |
| 平台 \| 應用程式 | ⚡️ 在整個資料輸入流程中多次發生資料提交 |
| 平台 \| 表單邏輯 | ⚡️ 可預先填入或自動完成的欄位需要手動輸入 |
| 平台 \| 表單邏輯 | ⚡️ 使用者必須在提交流程期間停止工作,才能等待伺服器端動作完成 |
| 平台 \| 表單邏輯 | ⚡️ 自訂元件集 `cacheable=false` |
---
# 參與 - 有幫助
### 應用程式內導覽模式
深入瞭解「結構好」 「[簡單](/docs/architect/zh-tw/well-architected/guide/easy-overview)」 → [參與](/docs/architect/zh-tw/well-architected/guide/engaging) → [實用](/docs/architect/zh-tw/well-architected/guide/engaging#實用) → [應用程式內導覽](/docs/architect/zh-tw/well-architected/guide/engaging#應用程式內導覽)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------------ |
| 平台 \| 設計標準 | ✅ 提示與逐步解說的設計模式 |
| 平台 \| 設計標準 | ✅ 應用程式內導覽的已批准使用個案 |
| 平台 \| 文件 | ✅ 使用者、應用程式和已啟用應用程式內導覽的明確矩陣 |
| 平台 \| 組織 | ✅ 「應用程式內導覽之間延遲」設定會使用預設值或超過 Salesforce 所提供預設 (24 小時) 期間的自訂值 |
| 平台 \| 組織 | ✅ 沒有任何應用程式擁有多個啟用的逐步解說 |
| 平台 \| 組織 | ✅ 沒有逐步解說的「顯示時間」設定高於 10 |
| 平台 \| 組織 | ✅ 系統不會針對「任何頁面、任何應用程式」或「此頁面、任何應用程式」啟用任何提示 |
### 通知與訊息模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [參與](/docs/architect/zh-tw/well-architected/guide/engaging) → [實用](/docs/architect/zh-tw/well-architected/guide/engaging#實用) → [通知和訊息](/docs/architect/zh-tw/well-architected/guide/engaging#通知與訊息)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------ |
| Einstein \| 工作人員 | ✅ 您的工作人員歡迎訊息將工作人員介紹為 AI 助理 您的歡迎訊息應告知使用者他們並未與人類交談 |
| Einstein \| 公司 | ✅ 要求員工提供產生輸出的回饋意見 要求員工提供產生輸出的回饋意見 |
| 平台 \| 應用程式 | ✅ 沒有直接傳送生成回應給一般使用者,但沒有人類參與的點數 |
| 平台 \| 設計標準 | ✅ 通知、快顯和通知的已批准使用個案 |
| 平台 \| 設計標準 | ✅ 試用變體和通知的設計模式 |
| 平台 \| 設計標準 | ✅ 錯誤傳訊的設計模式 |
| 平台 \| 組織 | ✅ AI 免責聲明為使用者清楚且易懂的語言 |
| 平台 \| 組織 | ✅ 機器人在第一次與使用者互動前清楚識別自己 |
| 平台 \| 組織 | ✅ 生成回應一律可識別使用的資料來源 |
| 平台 \| 組織 | ✅ 在第一次互動之前,會向使用者顯示與生成式 AI 相關聯風險的免責聲明 |
| 平台 \| 組織 | ✅ 通知是主要的傳訊格式 |
| 平台 \| 組織 | ✅ 快顯訊息使用變體 |
| 平台 \| 組織 | ✅ 設定為「`sticky`」之 `mode` 的快顯訊息不存在 |
| 平台 \| 組織 | ✅ 通知很少使用 (若有) |
### 認可與獎勵模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Engaging](/docs/architect/zh-tw/well-architected/guide/engaging) → [Helpful](/docs/architect/zh-tw/well-architected/guide/engaging#實用) → [Recognition & Rewards](/docs/architect/zh-tw/well-architected/guide/engaging#recognition-rewards)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ----------------------------------------------------------------------------- |
| 平台 \| 組織 | ✅ 應用程式使用內嵌分析向使用者顯示相關的目標進度與生產力統計資料 |
| 平台 \| 組織 | ✅ 只有在使用者同意的情況下才能啟用路徑慶祝 |
| 平台 \| 組織 | ✅ 通知與傳訊包含使用者辨識,並反映使用者偏好設定,設計通知對象與觸發通知的項目 |
---
### 應用程式內導覽防模式
深入瞭解「結構好」 「[簡單](/docs/architect/zh-tw/well-architected/guide/easy-overview)」 → [參與](/docs/architect/zh-tw/well-architected/guide/engaging) → [實用](/docs/architect/zh-tw/well-architected/guide/engaging#實用) → [應用程式內導覽](/docs/architect/zh-tw/well-architected/guide/engaging#應用程式內導覽)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------------------------------------------- |
| 平台 \| 設計標準 | ⚡️ 文件不包含顯示使用者、應用程式、已啟用應用程式內導覽的明確矩陣 |
| 平台 \| 設計標準 | ⚡️ 請勿處理應用程式內導覽 |
| 平台 \| 組織 | ⚡️ 「應用程式內導覽之間延遲」設定為短於 Salesforce 所提供預設 (24 小時) 的期間 |
| 平台 \| 組織 | ⚡️ 應用程式擁有多個啟用的逐步解說 |
| 平台 \| 組織 | ⚡️ 許多逐步解說的「顯示時間」設定大於 10 (有些逐步解說的最大值為 30) |
| 平台 \| 組織 | ⚡️ 系統會臨時啟用提示,許多提示具有「任何頁面、任何應用程式」或「此頁面、任何應用程式」設定 |
### 通知與訊息反模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [參與](/docs/architect/zh-tw/well-architected/guide/engaging) → [實用](/docs/architect/zh-tw/well-architected/guide/engaging#實用) → [通知和訊息](/docs/architect/zh-tw/well-architected/guide/engaging#通知與訊息)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------- |
| 平台 \| 應用程式 | ⚡️ 生成回應會直接傳送給一般使用者,但沒有人類參與的點數 |
| 平台 \| 設計標準 | ⚡️ 如果已定義設計標準,則不會解決錯誤與通知 |
| 平台 \| 組織 | ⚡️ 已將 `mode` 設為 `sticky` 的快顯訊息 |
| 平台 \| 組織 | ⚡️ 快顯訊息不會一直使用變體 |
| 平台 \| 組織 | ⚡️ 生成回應不會識別使用的資料來源 |
| 平台 \| 組織 | ⚡️ 不會向使用者顯示生成式 AI 風險的免責聲明 |
| 平台 \| 組織 | ⚡️ AI 免責聲明並非使用者能清楚且易懂的語言 |
| 平台 \| 組織 | ⚡️ 機器人在第一次與使用者互動之前無法清楚識別自己 |
| 平台 \| 組織 | ⚡️ 電子郵件是主要的傳訊格式 |
| 平台 \| 組織 | ⚡️ 對於訊息類型沒有一致的方法 |
| 平台 \| 組織 | ⚡️ 特別使用通知 |
### 認可與獎勵反模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Engaging](/docs/architect/zh-tw/well-architected/guide/engaging) → [Helpful](/docs/architect/zh-tw/well-architected/guide/engaging#實用) → [Recognition & Rewards](/docs/architect/zh-tw/well-architected/guide/engaging#recognition-rewards)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------------------------------- |
| 平台 \| 組織 | ⚡️ 與目標進度和生產力統計資料相關的分析僅適用於報告或經理顯示面板 |
| 平台 \| 組織 | ⚡️ 啟用路徑慶祝,無須檢查使用者同意 |
| 平台 \| 組織 | ⚡️ 通知與傳訊不包含任何類型的使用者識別,也不會反映使用者的偏好設定,並且感到雜訊或煩惱 |
---
# 可組合 - 互通性
### API 管理模式
深入瞭解良好結構的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [可組合](/docs/architect/zh-tw/well-architected/guide/composable) → [互通性](/docs/architect/zh-tw/well-architected/guide/composable#互通性) → [API 管理](/docs/architect/zh-tw/well-architected/guide/composable#api-管理)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| 公司 | ✅ 用戶端應用程式使用最新 API 版本來呼叫呼叫 Salesforce Platform API 的 Salesforce 用戶端應用程式定期更新其使用的 API 版本 |
| 平台 \| 設計標準 | ✅ 已存在跨元件通訊 (亦即 API) 的清除通訊協定 |
| 平台 \| 設計標準 | ✅ 通訊協定/API 概述在建立者可搜尋及尋找的邏輯群組中 |
| 平台 \| 設計標準 | ✅ 通訊協定/API 會定義變數資料類型、變數名稱、必要或選用項目,並提供使用時機的明確描述 |
| 平台 \| 文件 | ✅ 您可以搜尋特定的 API 或通訊協定,並識別實作的元件 |
| 平台 \| 文件 | ✅ 每個元件的文件會清楚列出已實作的 API/通訊通訊協定 |
| 平台 \| 組織 | ✅ 使用自訂中繼資料類型定義內部通訊的 API 訊息格式和變數 |
| 平台 \| 組織 | ✅ 使用平台事件定義內部通訊的 API 訊息格式和變數 |
| 平台 \| 組織 | ✅ 程式碼和陳述式自訂項目會參照適當的自訂中繼資料類型 (或平台事件),以傳送或接收資訊 |
### 傳訊和事件模式
深入瞭解良好結構的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [可組合](/docs/architect/zh-tw/well-architected/guide/composable) → [互通性](/docs/architect/zh-tw/well-architected/guide/composable#互通性) → [傳訊和事件](/docs/architect/zh-tw/well-architected/guide/composable#傳訊和事件)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Data 360 \| 組織 | ✅ 將「資料動作」與「平台事件」搭配使用,以重複使用現有的整合模式「利用平台事件」讓「資料動作」可供外部系統使用,以利用現有的「Pub Sub API」和「事件轉送」整合 |
| 平台 \| Apex | ✅ 自訂事件定義的範圍受到限制 (系統範圍的事件或訊息未在程式碼中定義) |
| 平台 \| Apex | ✅ Apex 中的全系統傳訊或結案服務會以可在 Salesforce 流程工具中使用的方式註釋 |
| 平台 \| 設計標準 | ✅ 使用同步模式 (傳訊) 和非同步模式 (事件) 的時機存在明確的標準 |
| 平台 \| 設計標準 | ✅ 事件與訊息結構存在清楚的標準 |
| 平台 \| 流程 | ✅ Salesforce 流程工具參照全系統傳訊或事件服務 |
| 平台 \| Lightning Web 元件 (LWC) | ✅ 自訂事件定義的範圍受到限制 (系統範圍的事件或訊息未在程式碼中定義) |
| 平台 \| 組織 | ✅ 一致的傳訊和事件模式會顯示在流程和程式碼中 |
| 平台 \| 平台事件 | ✅ 用於內部系統傳訊的平台事件會清楚標記 |
---
### API 管理防模式
深入瞭解良好結構的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [可組合](/docs/architect/zh-tw/well-architected/guide/composable) → [互通性](/docs/architect/zh-tw/well-architected/guide/composable#互通性) → [API 管理](/docs/architect/zh-tw/well-architected/guide/composable#api-管理)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| 公司 | ⚡️ 用戶端應用程式使用過期的 API 版本來呼叫呼叫 Salesforce Platform API 的 Salesforce 用戶端應用程式,需要定期將其使用的 API 版本更新為最新版本 |
| 平台 \| 設計標準 | ⚡️ 設計標準不存在或不定義 API 和使用個案 |
| 平台 \| 文件 | ⚡️ 不存在元件文件 |
| 平台 \| 文件 | ⚡️ 元件文件描述在元件內實作的 API,但這是 API 定義唯一顯示的位置 |
| 平台 \| 文件 | ⚡️ 無法搜尋特定的 API 或通訊協定,且/或搜尋無法識別已實作 API 或通訊協定的元件 |
| 平台 \| 組織 | ⚡️ API 專為 Salesforce 與外部系統之間的通訊而定義 |
| 平台 \| 組織 | ⚡️ 系統元件之間的通訊 (程式碼和陳述性自訂項目) 為臨時 |
### 傳訊與事件防模式
深入瞭解良好結構的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [可組合](/docs/architect/zh-tw/well-architected/guide/composable) → [互通性](/docs/architect/zh-tw/well-architected/guide/composable#互通性) → [傳訊和事件](/docs/architect/zh-tw/well-architected/guide/composable#傳訊和事件)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------------------------- |
| 平台 \| Apex | ⚡️ 系統範圍訊息和/或事件結構是在程式碼中定義的 |
| 平台 \| Apex | ⚡️ 在 Apex 中定義的全系統事件或訊息結構無法在如流程等工具中使用 |
| 平台 \| 設計標準 | ⚡️ 設計標準不存在,或缺乏同步與非同步模式的明確標準,以及訊息或事件結構的明確標準 |
| 平台 \| Lightning Web 元件 (LWC) | ⚡️ 系統範圍訊息和/或事件結構是在程式碼中定義的 |
| 平台 \| 組織 | ⚡️ 傳訊和事件模式的不同策略會顯示在流程和程式碼之間 |
| 平台 \| 平台事件 | ⚡️ 用於內部系統傳訊的平台事件未清楚標記或不存在 |
---
# 可組合 - 可封裝性
### 相依性管理模式
深入瞭解良好結構的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [可組合](/docs/architect/zh-tw/well-architected/guide/composable) → [可封裝性](/docs/architect/zh-tw/well-architected/guide/composable#可封裝性) → [相依性管理](/docs/architect/zh-tw/well-architected/guide/composable#相依性管理)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | -------------------------------------------------------------------------------------------- |
| 平台 \| 設計標準 | ✅ 已存在導入或修改相依性的標準 |
| 平台 \| 設計標準 | ✅ 已存在宣告相依性的標準 |
| 平台 \| 封裝 | ✅ 封裝之間沒有重複的中繼資料 |
| 平台 \| 封裝 | ✅ 針對封裝開發,所有早期階段開發工作都會在臨時組織中發生 |
| 平台 \| 來源控制 | ✅ 開發人員可以從來源控制建立臨時組織並成功部署封裝中繼資料 |
| 平台 \| 來源控制 | ✅ 已解除鎖定的封裝版本使用別名符號 (`LATEST`) 以在 `sfdx-project.json` 資訊清單中宣告相依性 |
### 寬鬆配對模式
深入瞭解良好結構的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [可組合](/docs/architect/zh-tw/well-architected/guide/composable) → [可封裝性](/docs/architect/zh-tw/well-architected/guide/composable#可封裝性) → [寬鬆配對](/docs/architect/zh-tw/well-architected/guide/composable#寬鬆配對)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------ |
| 平台 \| Apex | ✅ 依據動態執行階段資訊參照適當自訂中繼資料類型的方法 |
| 平台 \| Apex | ✅ 使用抽象或虛擬 Apex 類別定義通用服務和板碼 |
| 平台 \| 設計標準 | ✅ (選擇性) 自訂設定的所有已批准使用個案都會清楚列出 (若有) |
| 平台 \| 設計標準 | ✅ 命名慣例說明如何標記封裝單位 |
| 平台 \| 設計標準 | ✅ 您可以搜尋並尋找所有目前定義的封裝單位清單 (以及相關的命名慣例) |
| 平台 \| 設計標準 | ✅ 已存在建議封裝單位新增或變更的標準 |
| 平台 \| 組織 | ✅ 自訂中繼資料類型提供程式碼和陳述式自訂的動態執行階段資訊 |
| 平台 \| 組織 | ✅ 沒有任何自訂物件可提供程式碼或陳述式自訂的動態執行階段資訊 |
| 平台 \| 組織 | ✅ 沒有任何自訂設定,或有少數自訂設定,且沒有與封裝功能相關的設定 |
| 平台 \| 封裝 | ✅ 在生產或 Sandbox 中未定義未受管理的封裝 |
| 平台 \| 封裝 | ✅ 組織相依的解除鎖定封裝僅用於早期階段或概念證明實驗 |
| 平台 \| 來源控制 | ✅ `package.xml` 檔案只會顯示在早期階段或概念證明專案資訊清單中 |
---
### 相依性管理防模式
深入瞭解良好結構的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [可組合](/docs/architect/zh-tw/well-architected/guide/composable) → [可封裝性](/docs/architect/zh-tw/well-architected/guide/composable#可封裝性) → [相依性管理](/docs/architect/zh-tw/well-architected/guide/composable#相依性管理)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------------------------------------- |
| 平台 \| 設計標準 | ⚡️ 設計標準不存在或不處理如何宣告相依性 |
| 平台 \| 封裝 | ⚡️ 透過在不同封裝中重複中繼資料來略過相依性 |
| 平台 \| 封裝 | ⚡️ 早期封裝開發會在開發人員 Sandbox 中發生,或早期封裝開發無法在臨時組織中發生 |
| 平台 \| 來源控制 | ⚡️ 開發人員無法使用來源控制來成功使用臨時組織 |
| 平台 \| 來源控制 | ⚡️ 已解除鎖定封裝的封裝版本會在 `sfdx-project.json` 資訊清單中明確宣告 (沒有 `LATEST` 別名) |
### 寬鬆配對防模式
深入瞭解良好結構的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [可組合](/docs/architect/zh-tw/well-architected/guide/composable) → [可封裝性](/docs/architect/zh-tw/well-architected/guide/composable#可封裝性) → [寬鬆配對](/docs/architect/zh-tw/well-architected/guide/composable#寬鬆配對)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| 平台 \| Apex | ⚡️ 一般服務與板碼與其他類別不易區分 |
| 平台 \| Apex | ⚡️ 方法不使用一致的方法來存取動態、執行階段資訊,或方法查詢自訂物件以取得執行階段行為資訊,或程式碼參照自訂設定 |
| 平台 \| Apex | ⚡️ 類別與方法之間的內部參照難以遵循,且在整個程式碼庫中不一致 |
| 平台 \| 設計標準 | ⚡️ 設計標準不存在或不處理封裝單位與使用個案 |
| 平台 \| 組織 | ⚡️ 使用自訂設定 |
| 平台 \| 組織 | ⚡️ 自訂物件存在於提供動態執行階段資訊,以用於程式碼或陳述式自訂 |
| 平台 \| 組織 | ⚡️ 未使用 (或未一直使用) 自訂中繼資料類型來提供動態的程式碼和陳述式自訂執行階段資訊 |
| 平台 \| 封裝 | ⚡️ 在生產環境或 Sandbox 中定義未受管理的封裝 |
| 平台 \| 封裝 | ⚡️ 所有封裝皆為組織相依的已解除鎖定封裝 |
| 平台 \| 來源控制 | ⚡️ `package.xml` 檔案用於控制中繼資料部署 |
---
# 可組合 - 疑慮分隔
### 功能單位模式
深入瞭解結構正確的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [可組合](/docs/architect/zh-tw/well-architected/guide/composable) → [關注分隔](/docs/architect/zh-tw/well-architected/guide/composable#分離疑慮) → [功能單位](/docs/architect/zh-tw/well-architected/guide/composable#功能單位)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ---------------------------------------------------------------------------------- |
| Einstein \| 組織 | ✅ 重複提示範本以瞭解哪些輸入會影響回應 重複提示範本以瞭解組件如何影響模型的回應 |
| 平台 \| 設計標準 | ✅ 存在所有目前定義的功能單位清單 (以及相關命名慣例) |
| 平台 \| 設計標準 | ✅ 已存在建議功能單位新增或變更的標準 |
| 平台 \| 設計標準 | ✅ 命名慣例說明如何標記功能單位 |
| 平台 \| 文件 | ✅ 所有文件與實作圖表都清楚顯示元件的功能單位 |
| 平台 \| 文件 | ✅ 功能單位內的所有元件皆可搜尋且易於尋找 |
| 平台 \| 文件 | ✅ 系統橫向圖清楚顯示組織中的功能單位 |
| 平台 \| 文件 | ✅ 個別元件的文件包含元件的功能單位對應 |
| 平台 \| 組織 | ✅ 可快速識別指定中繼資料的功能單位對齊方式 (例如流程、Apex 類別或 Lightning 頁面) |
| 平台 \| 組織 | ✅ 功能單位以業務易用的詞彙標記 |
### 州/省管理模式
深入瞭解結構正確的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [可組合](/docs/architect/zh-tw/well-architected/guide/composable) → [關注分隔](/docs/architect/zh-tw/well-architected/guide/composable#分離疑慮) → [狀態管理](/docs/architect/zh-tw/well-architected/guide/composable#州省管理)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | -------------------------------------------------------- |
| 平台 \| Apex | ✅ 儲存點與回復行為用於所有資料作業 |
| 平台 \| 設計標準 | ✅ 狀態與無狀態設計的使用個案很明確 |
| 平台 \| 設計標準 | ✅ 存在狀態通訊的已批准模式 |
| 平台 \| 設計標準 | ✅ 無狀態通訊的已批准模式存在 |
| 平台 \| 設計標準 | ✅ 清除狀態存在的種類 |
| 平台 \| 文件 | ✅ 處理狀態和/或無狀態通訊的每個元件都會指出已實作的模式 |
| 平台 \| 文件 | ✅ 流程與互動圖提供關於狀態種類與處理的詳細資料 |
| 平台 \| 文件 | ✅ 您可以搜尋並尋找已實作特定州/省模式的所有元件 |
| 平台 \| 流程 | ✅ 使用錯誤路徑和「回復記錄」元素 |
---
### 功能單位反模式
深入瞭解結構正確的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [可組合](/docs/architect/zh-tw/well-architected/guide/composable) → [關注分隔](/docs/architect/zh-tw/well-architected/guide/composable#分離疑慮) → [功能單位](/docs/architect/zh-tw/well-architected/guide/composable#功能單位)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ----------------------------------------------------------------- |
| 平台 \| 設計標準 | ⚡️ 設計標準不存在或不處理功能單位和使用個案 |
| 平台 \| 文件 | ⚡️ 您無法搜尋特定功能單位,且/或搜尋無法識別功能單位內的所有元件 |
| 平台 \| 文件 | ⚡️ 元件文件描述元件所屬的功能單位,但它是該功能單位的唯一顯示位置 |
| 平台 \| 文件 | ⚡️ 不存在元件文件 |
| 平台 \| 組織 | ⚡️ 無法識別任何中繼資料的功能單位對齊方式 |
| 平台 \| 組織 | ⚡️ 功能單位資訊不一致或不準確 |
| 平台 \| 組織 | ⚡️ 功能單位資訊會以針對業務使用者沒有意義的工程專注詞彙標記 |
### 州管理反模式
深入瞭解結構正確的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [可組合](/docs/architect/zh-tw/well-architected/guide/composable) → [關注分隔](/docs/architect/zh-tw/well-architected/guide/composable#分離疑慮) → [狀態管理](/docs/architect/zh-tw/well-architected/guide/composable#州省管理)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------- |
| 平台 \| Apex | ⚡️ 不使用 Savepoints 和回復行為 |
| 平台 \| 設計標準 | ⚡️ 設計標準不存在或不處理狀態/無狀態模式和使用個案 |
| 平台 \| 文件 | ⚡️ 不存在元件文件 |
| 平台 \| 文件 | ⚡️ 元件文件描述實作的狀態/無狀態模式,但這是定義唯一顯示的位置 |
| 平台 \| 文件 | ⚡️ 無法搜尋特定模式,且/或搜尋無法協助識別使用該模式的所有元件 |
| 平台 \| 流程 | ⚡️ 不使用「回復記錄」元素 |
---
# 可調整模式與防模式探索器
使用彈性作業和可組合結構為變更建立。
降低彈性、限制可組合性或使變更難以變更的作法。
# 可靠 - 可用性
### 失敗緩解模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [可靠](/docs/architect/zh-tw/well-architected/guide/reliable) → [可用性](/docs/architect/zh-tw/well-architected/guide/reliable#可用性) → [故障緩解](/docs/architect/zh-tw/well-architected/guide/reliable#失敗緩解)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| 公司 | ✅ 會經常測試失敗緩解計畫 系統會定期測試失敗緩解計畫 (每 1-2 年一次)、在重大事件發生後反應地進行測試 (作為死亡後的一部分),並主動地在主要業務或 IT 事件發生之前進行測試 |
| 平台 \| 組織 | ✅ 立即實作緩解控制,隨著時間成熟,並盡早納入自動化 |
| 平台 \| 組織 | ✅ 監視非同步程序 使用 Proactive Monitoring 或查詢由外部排程工作執行的 AsyncApexJob 監視非同步程序。警示已準備就緒,可及早找出問題,進而加快「偵測時間」(TTD) 和「參與時間」(TTE) |
| 平台 \| 組織 | ✅ 訓練的一般使用者子集建立清單檢視、報告和顯示面板 訓練的一般使用者建立報告、清單檢視和顯示面板,作為組織範圍報告策略的一部分,其中包含已記錄的原則和定期審查 |
| 平台 \| 組織 | ✅ 失敗點觸發及其對應的緩解計畫會依人員、程序和技術分類 |
### 風險管理模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [可靠](/docs/architect/zh-tw/well-architected/guide/reliable) → [可用性](/docs/architect/zh-tw/well-architected/guide/reliable#可用性) → [風險管理](/docs/architect/zh-tw/well-architected/guide/reliable#風險管理)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 平台 \| 公司 | ✅ 已建立的風險評估架構正在使用中 |
| 平台 \| 公司 | ✅ 各種利害關係人群組簽署風險評估 各種業務和技術利害關係人檢閱風險評估並簽署 |
| 平台 \| 公司 | ✅ 風險評估架構遵循產業與公司標準。您的風險評估架構遵循公司標準,並遵循下列任何產業與法規標準:ISO/IEC 27001、「NIST 網路安全架構」(CSF)、COBIT (資訊和相關技術的控制目標)、ISO/IEC 27005、GDPR (一般資料保護規範)、OWASP (開放式 Web 應用程式安全性專案)、CSA Cloud Controls Matrix (CCM)、PCI DSS (支付卡產業資料安全性標準) 或 SOC 2 (系統和組織控制) |
| 平台 \| 公司 | ✅ 在導入主要變更前評估風險 系統會在業務或實作中的任何重大變更之前主動評估風險。「簽章成功」客戶利用「關鍵事件管理」。 |
| 平台 \| 公司 | ✅ 預計季節性高峰會提前計畫「高峰用量事件」(例如當季性高峰的交通) 會提前計畫。「簽章成功」客戶利用「關鍵事件管理」。 |
| 平台 \| 公司 | ✅ 經常檢閱風險評估 風險評估會在重大事件或結束通話後反應性檢閱、在新產品、功能首展或新業務單位上線前主動、主要業務事件 (季節性高峰、主要業務變更) 之前主動檢閱,以及定期檢閱 (每 1-2 年) |
| 平台 \| 公司 | ✅ 風險會分類為人員、流程和技術領域 |
| 平台 \| 文件 | ✅ 系統會根據客戶影響分類和評估風險嚴重性 |
| 平台 \| 文件 | ✅ 降低風險和回應計畫的優先順序,專注於優先順序最高的風險 |
---
### 失敗緩解防模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [可靠](/docs/architect/zh-tw/well-architected/guide/reliable) → [可用性](/docs/architect/zh-tw/well-architected/guide/reliable#可用性) → [故障緩解](/docs/architect/zh-tw/well-architected/guide/reliable#失敗緩解)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| 公司 | ⚡️ 失敗緩解計畫未經足夠測試 失敗緩解從未經測試或僅在初始設計/建立階段之後進行測試 |
| 平台 \| 公司 | ⚡️ 季節性高峰不會計入提前的使用狀況 「高峰」事件 (例如當季性高峰的交通狀況) 不會提前計畫 |
| 平台 \| 組織 | ⚡️ 自動化未用於緩解措施 |
| 平台 \| 組織 | ⚡️ 無法分類失敗點數的觸發;緩解措施為臨時或不存在 |
| 平台 \| 組織 | ⚡️ 未重新檢視或演進緩解控制 |
| 平台 \| 組織 | ⚡️ 非同步程序不會主動監視 非同步程序依賴為非同步程序本身的一部分的自訂錯誤記錄機制,或完全不會監視 |
| 平台 \| 組織 | ⚡️ 一般使用者對清單檢視、報告和顯示面板負責,一般使用者可以自由建立公用報告、清單檢視和顯示面板,且這些中繼資料項目的定期效能檢閱不存在 |
### 風險管理防模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [可靠](/docs/architect/zh-tw/well-architected/guide/reliable) → [可用性](/docs/architect/zh-tw/well-architected/guide/reliable#可用性) → [風險管理](/docs/architect/zh-tw/well-architected/guide/reliable#風險管理)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ---------------------------------------------------------------------------------------------------- |
| 平台 \| 公司 | ⚡️ 未清楚識別風險 |
| 平台 \| 公司 | ⚡️ Salesforce 的風險評估架構為臨時 |
| 平台 \| 公司 | ⚡️ 風險評估架構是在單機中開發的 您的風險評估架構是由一個小組獨立開發,且不符合公司指導方針或產業標準 |
| 平台 \| 公司 | ⚡️ 風險管理視為「一次性」活動 風險評估執行一次且/或您的風險評估架構未定期更新 |
| 平台 \| 文件 | ⚡️ 評估風險嚴重性或種類時,不會考量客戶觀點 |
| 平台 \| 文件 | ⚡️ 風險風險降低和回應計畫會嘗試捕捉所有可想像的風險 |
---
# 可靠 - 延展性
### 資料建模模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [可靠](/docs/architect/zh-tw/well-architected/guide/reliable) → [延展性](/docs/architect/zh-tw/well-architected/guide/reliable#延展性) → [資料建模](/docs/architect/zh-tw/well-architected/guide/reliable#資料建模)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| Data 360 \| 組織 | ✅ 在「資料轉換」存在對應以轉換來源資料之前,資料轉換可用於反正規化資料,因此所有連絡點皆可個別將其新增至標準連絡點物件 |
| 平台 \| 公司 | ✅ 低程式碼產生器會瞭解 Salesforce 支援的不同欄位類型,並在選取欄位資料類型之前評估報告和加密需求 |
| 平台 \| 公司 | ✅ 在選擇建立物件之間「主要 - 詳細資料」關係之前,會評估共用與資料誤差的涵義 |
| 平台 \| 資料模型 | ✅ 表格已針對刻度反正規化 |
| 平台 \| 資料模型 | ✅ 盡可能使用標準物件 |
| 平台 \| 設計標準 | ✅ 商業理由保證自訂物件存在的標準與指引 |
### 資料量模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [可靠](/docs/architect/zh-tw/well-architected/guide/reliable) → [延展性](/docs/architect/zh-tw/well-architected/guide/reliable#延展性) → [資料量](/docs/architect/zh-tw/well-architected/guide/reliable#資料量)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Data 360 \| 測試計畫 | ✅ 針對第 0 天資料載入的大量負載計算帳戶 您已規劃在解決方案上線前經常需要移轉的大量資料 (也稱為第 0 天),並確認您不會同時接近每個排程執行的檔案大小上限和檔案上限 |
| 平台 \| Apex | ✅ 邏輯存在於資料誤差是疑慮的情況下,在多個父系記錄之間散佈子系記錄數目 |
| 平台 \| Apex | ✅ 邏輯存在於匯入或透過整合複製時,將所有記錄指派給適當的人類使用者 |
| 平台 \| 公司 | ✅ 您已記錄並實作資料歸檔和清除策略 |
| 平台 \| 公司 | ✅ 大量資料載入策略已最佳化以最佳化伺服器耗用 載入時間、資料序列、記錄鎖定、自動化和大量共用流程會納入大量載入策略中,以提高伺服器耗用效率 |
| 平台 \| 資料 | ✅ 沒有父系記錄超過 10,000 個子系記錄 |
| 平台 \| 資料 | ✅ 未將使用者指派給相同物件類型的超過 10,000 個記錄 |
| 平台 \| 資料 | ✅ 沒有超過 10,000 筆記錄具有指向相同記錄之對應欄位的例項存在 |
| 平台 \| 資料 | ✅ 大量資料載入至生產環境不會在營業時間高峰期間發生 |
| 平台 \| 資料 | ✅ 大量資料載入會根據 `ParentId` 欄位值排序為批次 |
| 平台 \| 資料 | ✅ 大量資料載入僅包含業務決策所需的最少資料 |
| 平台 \| 流程 | ✅ 邏輯存在於資料誤差是疑慮的情況下,在多個父系記錄之間散佈子系記錄數目 |
| 平台 \| 流程 | ✅ 邏輯存在於匯入或透過整合複製時,將所有記錄指派給適當的人類使用者 |
| 平台 \| 組織 | ✅ 資料後續處理會在大型資料載入期間延後。後續處理自動化會延後,直到大型資料載入結束為止。 |
| 平台 \| 測試計畫 | ✅ 在完整複製 Sandbox 中使用大量 API 規劃資料載入時,可識別模式、載入順序,以及可能發生的任何鎖定問題。 |
---
### 資料建模反模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [可靠](/docs/architect/zh-tw/well-architected/guide/reliable) → [延展性](/docs/architect/zh-tw/well-architected/guide/reliable#延展性) → [資料建模](/docs/architect/zh-tw/well-architected/guide/reliable#資料建模)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------------- |
| 平台 \| 公司 | ⚡️ 低程式碼產生器選取資料類型,而不評估下游報告和加密需求 |
| 平台 \| 公司 | ⚡️ 在物件之間建立「主要 - 詳細資料」關係之前,不會考量共用與資料誤差 |
| 平台 \| 資料模型 | ⚡️ 表格已正規化以避免冗餘 |
| 平台 \| 資料模型 | ⚡️ 您已複製標準物件 |
| 平台 \| 設計標準 | ⚡️ 沒有建立自訂物件的標準存在 |
### 資料量防模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [可靠](/docs/architect/zh-tw/well-architected/guide/reliable) → [延展性](/docs/architect/zh-tw/well-architected/guide/reliable#延展性) → [資料量](/docs/architect/zh-tw/well-architected/guide/reliable#資料量)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| Data 360 \| 測試計畫 | ⚡️ 您的大量載入計算不包含「第 0 天」資料載入「第 0 天」載入計算不會執行,或者如果已記錄,則會同時接近檔案大小與每個執行的檔案上限值 |
| 平台 \| Apex | ⚡️ 透過資料載入或整合建立的記錄會指派給一般「整合使用者」 |
| 平台 \| Apex | ⚡️ 無論已指派的現有子系記錄數目為何,都會將子系記錄任意指派給父系記錄 |
| 平台 \| 公司 | ⚡️ 您沒有資料歸檔和清除策略,或者您的策略已記錄但未實作 |
| 平台 \| 公司 | ⚡️ 大量資料載入在不規劃規模的情況下執行。在執行大量資料載入之前,不會考量載入時間、資料序列、記錄鎖定、自動化和大量共用流程 |
| 平台 \| 資料 | ⚡️ 大量資料載入至生產環境會在營業時間高峰期間發生 |
| 平台 \| 資料 | ⚡️ 大量資料載入不限於業務決策所需的最少資料 |
| 平台 \| 資料 | ⚡️ 存在超過 10,000 個子系記錄的記錄 |
| 平台 \| 資料 | ⚡️ 系統會將使用者指派給超過 10,000 個相同類型的記錄 |
| 平台 \| 資料 | ⚡️ 存在超過 10,000 筆記錄具有指向相同記錄之對應欄位的例項 |
| 平台 \| 資料 | ⚡️ 大量資料載入不會根據 `ParentId` 欄位值排序為批次 |
| 平台 \| 流程 | ⚡️ 透過資料載入或整合建立的記錄會指派給一般「整合使用者」 |
| 平台 \| 流程 | ⚡️ 無論已指派的現有子系記錄數目為何,都會將子系記錄任意指派給父系記錄 |
| 平台 \| 組織 | ⚡️ 在部分複製 Sandbox 中測試「大量 API 載入測試」,以判斷在部分複製 Sandbox 中對資料子集執行批次載入時間。 |
| 平台 \| 組織 | ⚡️ 與鎖定記錄的其他作業並行執行大量資料載入 並行執行批次 Apex 與資料載入 |
| 平台 \| 組織 | ⚡️ 不考量資料集大小而選擇 API SOAP API 用於超過 500,000 筆記錄的資料載入 |
| 平台 \| 組織 | ⚡️ 報告需求會驅動角色階層設計 使用報告需求來決定您需要的角色階層層級或數量 |
| 平台 \| 組織 | ⚡️ 角色階層具有空白的角色 系統會為未來建立空白的預留位置角色 |
| 平台 \| 組織 | ⚡️ 角色階層模擬您的組織圖 您在角色階層中複製組織結構,為公司中的每個職稱建立個別角色 |
---
# 可靠 - 效能
### 延遲模式
深入瞭解結構良好、[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [可靠](/docs/architect/zh-tw/well-architected/guide/reliable) → [效能](/docs/architect/zh-tw/well-architected/guide/reliable#績效) → [延遲](/docs/architect/zh-tw/well-architected/guide/reliable#延遲性)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Data 360 \| 組織 | ✅ 資料串流的利用插入更新插入,而非完整重新整理 (若有可能) 完整重新整理會完全清除表格,然後重新填入資料。除非您真的需要完整重新整理,否則請選擇更新插入以僅取得新的和/或更新的記錄。這會改善處理時間並降低信用額度使用量。 |
| Einstein \| 工作人員 | ✅ 工作人員指派給指定主題的動作不超過 15 個。在「工作人員產生器」的「此主題的動作」索引標籤中會列出 15 個或更少的動作 |
| Einstein \| 搜尋索引 | ✅ 將低基數的欄位從「搜尋索引」中省略,以減少工作人員延遲 將具有非常低基數 (清單中不同元素的數目) 或低 entropy 的欄位 (列出項目集中於幾個值) 會影響相關性和延遲 使用搜尋索引產生器中的進階設定,僅選取要切分的相關欄位。這會減少搜尋索引的大小,減少工作人員的延遲 |
| 平台 \| 流程 | ✅ 指定「取得記錄」中的欄位以改善效能 當您指定要在「取得記錄」元素中儲存的欄位時,您會減少從伺服器傳回並傳送至用戶端的資料量。如果「資料表」耗用此元素的輸出,您可能會在元件中看見顯著的效能改善 |
| 平台 \| 組織 | ✅ 報告用於單一特定目的 |
| 平台 \| 組織 | ✅ 報告包含決策所需的最少列和欄數 |
| 平台 \| 組織 | ✅ 篩選條件使用 equals/not equal |
| 平台 \| 組織 | ✅ 篩選條件不包含公式欄位 |
| 平台 \| 組織 | ✅ 共用模式會盡可能簡化 |
| 平台 \| 組織 | ✅ 自訂 UI 元件使用 Lightning Web 元件 |
| 平台 \| 組織 | ✅ LWC 使用 Lightning Data Service 進行資料作業 |
| 平台 \| 組織 | ✅ 在 JavaScript 的用戶端處理排序和篩選清單資料 |
| 平台 \| 組織 | ✅ 針對效能稽核清單檢視、報告和顯示面板 定期檢閱會識別效能問題 (高執行階段/DB CPU 耗用),且會更新或移除效能不佳的清單檢視、報告和顯示面板 |
| 平台 \| 組織 | ✅ Salesforce Edge 已啟用 |
### 輸出模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [可靠](/docs/architect/zh-tw/well-architected/guide/reliable) → [效能](/docs/architect/zh-tw/well-architected/guide/reliable#績效) → [輸出量](/docs/architect/zh-tw/well-architected/guide/reliable#輸出)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 平台 \| Apex | ✅ 大量 API 批次大小已仔細調整 根據物件的性質、作業和物件基礎的自動化,工作之間的批次大小可能會有所不同。批次大小是藝術品,而非科學品,因此調整批次大小十分重要,以盡可能執行許多工作,但執行時間不得超過 10 分鐘 |
| 平台 \| 設計標準 | ✅ 如何使用平台快取的指引遵循平台快取最佳作法 |
| 平台 \| 組織 | ✅ DML 或資料庫方法一律會針對 Apex 中的集合運作 |
| 平台 \| 組織 | ✅ SOQL 陳述式是選擇性的 SOQL 中不使用 `LIKE` 比較或部分文字比較 |
| 平台 \| 組織 | ✅ SOQL 陳述式是選擇性的比較運算子使用正邏輯 (即 `INCLUDES`、`IN`) 作為 SOQL 陳述式中的主要或唯一邏輯 |
| 平台 \| 組織 | ✅ SOQL 陳述式是選擇性的 `= NULL` 使用狀況、`!= NULL` 罕見且/或一律遵循 SOQL 陳述式中的正比較運算子 |
| 平台 \| 組織 | ✅ SOQL 陳述式是選擇性的 SOQL 中不會出現任何 `LIMIT 1` 陳述式 |
| 平台 \| 組織 | ✅ 迴圈內沒有 SOQL 顯示 |
| 平台 \| 組織 | ✅ 所有萬用字元條件都會顯示在 SOSL 中 |
| 平台 \| 組織 | ✅ 大量化用於資料和系統作業 |
| 平台 \| 組織 | ✅ 盡可能偏好非同步處理 |
| 平台 \| 組織 | ✅ 已設定平台快取分割 |
| 平台 \| 組織 | ✅ SOQL 陳述式為選擇性 |
| 平台 \| 組織 | ✅ SOQL 陳述式是選擇性的 `ALL ROWS` 關鍵字的使用狀況不會出現在 SOQL 陳述式中 |
---
### 延遲反模式
深入瞭解結構良好、[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [可靠](/docs/architect/zh-tw/well-architected/guide/reliable) → [效能](/docs/architect/zh-tw/well-architected/guide/reliable#績效) → [延遲](/docs/architect/zh-tw/well-architected/guide/reliable#延遲性)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Data 360 \| 組織 | ⚡️ 依預設,「資料串流」重新整理模式設為「完整重新整理」。所有或大多數資料串流的重新整理模式為「完整重新整理」 |
| Einstein \| 工作人員 | ⚡️ 工作人員已將超過 15 個動作指派給指定的主題 工作人員產生器中「此主題的動作」索引標籤中會列出超過 15 個動作 |
| 平台 \| Lightning Web 元件 (LWC) | ⚡️ 假設應用程式事件僅在使用元件時執行 在 Lightning 主控台中,未聚焦索引標籤中包含的元件仍可聆聽應用程式事件,即使這些元件不可見 |
| 平台 \| 組織 | ⚡️ 共用模式很複雜 |
| 平台 \| 組織 | ⚡️ 自訂 UI 元件使用 Aura 或 Visualforce |
| 平台 \| 組織 | ⚡️ LWC 使用 Apex 進行資料作業 |
| 平台 \| 組織 | ⚡️ 使用 Apex 在伺服器端處理排序和篩選清單資料 |
| 平台 \| 組織 | ⚡️ 使用篩選條件包含/不包含 |
| 平台 \| 組織 | ⚡️ 篩選條件包含公式欄位 |
| 平台 \| 組織 | ⚡️ Salesforce Edge 未啟用 |
| 平台 \| 組織 | ⚡️ 報告適用於多種用途 |
| 平台 \| 組織 | ⚡️ 報告包含決策不需要的額外列與欄 |
### 輸出反模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [可靠](/docs/architect/zh-tw/well-architected/guide/reliable) → [效能](/docs/architect/zh-tw/well-architected/guide/reliable#績效) → [輸出量](/docs/architect/zh-tw/well-architected/guide/reliable#輸出)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------------------------------------------------------ |
| 平台 \| Apex | ⚡️ 從單一同步動作中將多個 Future 或 Queueable 方法配套 從單一同步動作中建立多個非同步方法 |
| 平台 \| Apex | ⚡️ 父系/子系配對分割在「大量 API」批次之間 多個批次包含與相同父系相關的子系記錄 |
| 平台 \| 設計標準 | ⚡️ 如果有平台快取使用指引,則其不明確或不符合建議的最佳作法 |
| 平台 \| 組織 | ⚡️ SOQL 陳述式為非選擇性 `= NULL`,`!= NULL` 條件會作為 SOQL 陳述式中的主要或唯一比較運算子使用 |
| 平台 \| 組織 | ⚡️ SOQL 陳述式為非選擇性 `LIMIT 1` 陳述式會顯示在 SOQL 中 |
| 平台 \| 組織 | ⚡️ SOQL 陳述式為非選擇性 `ALL ROWS` 關鍵字會用於 SOQL 陳述式 |
| 平台 \| 組織 | ⚡️ DML 陳述式未大量處理 |
| 平台 \| 組織 | ⚡️ 偏好使用同步流程 |
| 平台 \| 組織 | ⚡️ SOQL 會顯示在迴圈內 |
| 平台 \| 組織 | ⚡️ 規劃非同步作業在特定時間結束 設計假設非同步作業會在特定時間或指定 SLA 內結束的程序或解決方案。 |
| 平台 \| 組織 | ⚡️ 從同步作業啟動批次工作 批次 Apex 工作是從同步一般使用者活動或整合 API 呼叫啟動 |
| 平台 \| 組織 | DML 或資料庫方法會針對 Apex 中的單一記錄作業 |
| 平台 \| 組織 | ⚡️ SOQL 陳述式為非選擇性 `LIKE`,萬用字元篩選條件會顯示在 SOQL 陳述式中 |
| 平台 \| 組織 | ⚡️ SOQL 陳述式為非選擇性 使用 `NOT` 的比較,使用 `NOT IN` 條件作為 SOQL 陳述式中的主要或唯一比較運算子 |
| 平台 \| 組織 | ⚡️ Visualforce 檢視狀態用於應用程式快取 |
| 平台 \| 組織 | ⚡️ SOSL 很少或不一致用於萬用字元選取條件 |
| 平台 \| Visualforce | ⚡️ Visualforce 遠端期間過度輪詢 高流量 Visualforce 頁面輪詢資料庫的頻率高於每五分鐘一次 |
---
# 合規 - 法律符合度
### 資料隱私權模式
深入瞭解結構正確的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [合規性](/docs/architect/zh-tw/well-architected/guide/compliant) → [合規性](/docs/architect/zh-tw/well-architected/guide/compliant#法律符合度) → [資料隱私權](/docs/architect/zh-tw/well-architected/guide/compliant#資料隱私權)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| Einstein \| Einstein Trust 圖層 | ✅ 依合規性種類遮蔽欄位 Einstein Trust 圖層已自訂,以根據您的業務規則和欄位的合規性種類遮蔽欄位 |
| Einstein \| Einstein Trust 圖層 | ✅ 依敏感度層級遮蔽欄位 Einstein Trust 層級已自訂,以根據您的業務規則和欄位的敏感度層級遮蔽欄位 |
| 平台 \| 文件 | ✅ 您擁有包含欄位層級名稱、描述和分類的最新資料字典 |
| 平台 \| 文件 | ✅ 您擁有可識別哪些使用者可存取哪些資料的最新安全性矩陣 |
| 平台 \| 文件 | ✅ 您擁有最新的設計文件,包括針對建立以滿足法規需求的任何自動化之標準和圖表 |
| 平台 \| 組織 | ✅ 所有包含敏感資訊或受資料隱私權法規約束的物件和欄位都已設定「合規性種類」、「資料擁有者」、「資料敏感度等級」和「欄位用量」 |
### 本地化模式
深入瞭解結構正確的 [信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [合規](/docs/architect/zh-tw/well-architected/guide/compliant) → [法律符合度](/docs/architect/zh-tw/well-architected/guide/compliant#法律符合度) → [本地化](/docs/architect/zh-tw/well-architected/guide/compliant#本地化)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | --------------------------------------------------------------------------- |
| 平台 \| 文件 | ✅ 您擁有概述資料儲存和維護位置的組織策略,以符合所有適用的資料落地需求 |
| 平台 \| 文件 | ✅ 您擁有整合策略,概述跨境複製資料的可接受案例與流程 |
| 平台 \| 文件 | ✅ 您擁有概述報告和顯示面板在區域、國家和全球層級可包含的細微性層級分析策略 |
---
### 資料隱私性防模式
深入瞭解結構正確的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [合規性](/docs/architect/zh-tw/well-architected/guide/compliant) → [合規性](/docs/architect/zh-tw/well-architected/guide/compliant#法律符合度) → [資料隱私權](/docs/architect/zh-tw/well-architected/guide/compliant#資料隱私權)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| 文件 | ⚡️ 資料字典不存在或尚未保持最新狀態 |
| 平台 \| 文件 | ⚡️ 共用與可視性文件不存在或尚未保持最新狀態 |
| 平台 \| 文件 | ⚡️ 解決法規需求的自動化設計標準、圖表和文件不存在或尚未保持最新狀態 |
| 平台 \| 組織 | ⚡️ 包含敏感資訊或受資料隱私權法規約束的物件和欄位缺少「合規性種類」、「資料擁有者」、「資料敏感度等級」或「欄位用量」的組態 |
### 本地化防模式
深入瞭解結構正確的 [信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [合規](/docs/architect/zh-tw/well-architected/guide/compliant) → [法律符合度](/docs/architect/zh-tw/well-architected/guide/compliant#法律符合度) → [本地化](/docs/architect/zh-tw/well-architected/guide/compliant#本地化)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ----------------------------------------------------------------- |
| 平台 \| 文件 | ⚡️ 您沒有分析策略,或者您的分析策略未滿足資料當地語系化與落地需求 |
| 平台 \| 文件 | ⚡️ 您沒有組織策略,或您的組織策略未滿足資料當地語系化與落地需求 |
| 平台 \| 文件 | ⚡️ 您沒有整合策略,或您的整合策略未滿足資料當地語系化與落地需求 |
---
# 合規 - 道德標準
### 人工智慧模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [符合](/docs/architect/zh-tw/well-architected/guide/compliant) → [道德標準](/docs/architect/zh-tw/well-architected/guide/compliant#道德標準) → [人工智慧](/docs/architect/zh-tw/well-architected/guide/compliant#人工智慧)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Einstein \| 設計標準 | ✅ 生成回應一律識別 AI 模型所使用的資料來源 |
| Einstein \| 設計標準 | ✅ 已記錄可/無法用於提示工程的資料集 |
| Einstein \| 設計標準 | ✅ 使用者可以清楚識別機器人和生成式 AI 回應 |
| Einstein \| 設計標準 | ✅ 必須明確定義使用者 AI 的點數 |
| Einstein \| 設計標準 | ✅ 清楚定義生成式 AI 何時及如何使用免責聲明的標準 |
| Einstein \| 設計標準 | ✅ 存在如何記錄人類參與 AI 解決方案設計的明確需求 |
| Einstein \| 設計標準 | ✅ 沒有直接傳送生成回應給一般使用者,但沒有人類參與的點數 |
| Einstein \| 設計標準 | ✅ 已存在記錄 AI 解決方案設計中直接與間接回饋意見路徑的標準 |
| Einstein \| 設計標準 | ✅ AI 應用程式的原則和已批准使用個案清楚且容易找到 |
| Einstein \| 設計標準 | ✅ 已記錄聊天機器人傳訊和交談流程的標準 |
| Einstein \| 文件 | ✅ 涉及 AI 功能的組態和自訂文件包含所有程序邏輯的完整描述,並儲存在由法律小組或稽核員可存取的集中位置中 |
| Einstein \| 文件 | ✅ 系統會清楚記錄驅動預估和建議的模型,包括任何適用的資料區段 |
| Einstein \| 文件 | ✅ 已完整記錄對話邏輯和聊天機器人訊息 |
| Einstein \| 文件 | ✅ 已有程序可監視您組織的 AI 模型,以瞭解資料漂移、公平性和偏差分數的變化、準確性和穩定性 |
| Einstein \| 文件 | ✅ 系統會針對用於所有 AI 流程的訓練、評估和測試資料維護描述 |
| Einstein \| 文件 | ✅ 系統會維護任何 AI 相關資料清除的描述,以及偏差測試、相關聯的結果和效能/準確度分數 (例如 F1 分數) |
| Einstein \| 組織 | ✅ 系統會針對品質測試提示範本 系統會測試提示範本,這些測試的結果會記錄提示範本回應的相關性、完整性、樣式/語調、實際準確性、一致性、毒性與偏差 |
| Einstein \| 組織 | ✅ 生成式 AI 可作為人類的助理。當開始使用生成式 AI 時,請確保有一位「現成的人」可以檢閱回應的準確性和實用性。 |
| Einstein \| 組織 | ✅ AI 模型使用您 Trust 的資料 本內容使用零對象 (由客戶直接提供) 或第一方 (根據客戶與貴公司互動收集) 資料提供給 Gen AI |
### 公司原則模式
深入瞭解結構正確的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [符合](/docs/architect/zh-tw/well-architected/guide/compliant) → [道德標準](/docs/architect/zh-tw/well-architected/guide/compliant#道德標準) → [公司原則](/docs/architect/zh-tw/well-architected/guide/compliant#公司原則)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| 平台 \| 設計標準 | ✅ 標準包含受到公司原則影響之區域的明確指引 |
| 平台 \| 文件 | ✅ 組態和自訂的文件包含對支援公司值的參照 |
| 平台 \| 組織 | ✅ 所有受公司原則相關合規性的物件和欄位皆已設定「合規性種類」、「資料擁有者」、「資料敏感度等級」和「欄位用量」 |
---
### 人工智慧反模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [符合](/docs/architect/zh-tw/well-architected/guide/compliant) → [道德標準](/docs/architect/zh-tw/well-architected/guide/compliant#道德標準) → [人工智慧](/docs/architect/zh-tw/well-architected/guide/compliant#人工智慧)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------------------------ |
| Einstein \| 設計標準 | ⚡️ 生成回應不會識別 AI 模型使用的資料來源 |
| Einstein \| 設計標準 | ⚡️ 使用者無法識別機器人和生成式 AI 回應 |
| Einstein \| 設計標準 | ⚡️ 生成回應會直接傳送給一般使用者,但沒有人類參與的點數 |
| Einstein \| 設計標準 | ⚡️ 未記錄用於提示工程的資料集 |
| Einstein \| 設計標準 | ⚡️ 不存在記錄人類參與 AI 解決方案設計點的需求 |
| Einstein \| 設計標準 | ⚡️ 設計標準無法指出必須向使用者識別 AI 的點數 |
| Einstein \| 設計標準 | ⚡️ 缺少有關生成回應的免責聲明 |
| Einstein \| 設計標準 | ⚡️ 沒有記錄 AI 解決方案設計直接與間接回饋意見路徑的標準 |
| Einstein \| 設計標準 | ⚡️ 設計標準不存在或不包含 AI 應用程式的明確原則和已批准使用個案 |
| Einstein \| 設計標準 | ⚡️ 聊天機器人傳訊和對話設計不存在明確的標準 (但正在使用聊天機器人) |
| Einstein \| 文件 | ⚡️ AI 監視流程不存在或未記錄 |
| Einstein \| 文件 | ⚡️ 涉及 AI 功能的組態和自訂文件遺失、不完整或儲存在無法存取的位置 |
| Einstein \| 文件 | ⚡️ 預估或建議在您的組織中實作,但沒有其模型的文件 |
| Einstein \| 文件 | ⚡️ 關於所有 AI 流程所使用訓練、評估和測試資料的資訊不明確或無法使用 |
| Einstein \| 文件 | ⚡️ AI 相關資料清除、偏差測試和結果的相關資訊不明確或無法使用 |
| Einstein \| 文件 | ⚡️ 聊天機器人在您的組織中實作,沒有訊息和對話流程的文件 |
| Einstein \| 提示範本 | ⚡️ AI 依賴第三方資料您的提示範本僅依賴第三方資料,不含任何零或第一方資料 |
### 公司原則反模式
深入瞭解結構正確的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [符合](/docs/architect/zh-tw/well-architected/guide/compliant) → [道德標準](/docs/architect/zh-tw/well-architected/guide/compliant#道德標準) → [公司原則](/docs/architect/zh-tw/well-architected/guide/compliant#公司原則)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| 平台 \| 設計標準 | ⚡️ 設計標準不存在或不提供關於受公司原則約束之區域的明確指引 |
| 平台 \| 文件 | ⚡️ 組態和自訂的文件不會參照公司值或原則 |
| 平台 \| 組織 | ⚡️ 物件及受公司原則相關合規性的物件缺少「合規性種類」、「資料擁有者」、「資料敏感度等級」或「欄位用量」的組態 |
---
# 安全 - 工作階段安全性
### 裝置存取模式
深入瞭解 Well-Architected [Trusted](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [Secure](/docs/architect/zh-tw/well-architected/guide/secure) → [Session Security](/docs/architect/zh-tw/well-architected/guide/secure#工作階段安全性) → [Device Access](/docs/architect/zh-tw/well-architected/guide/secure#裝置存取權)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| 文件 | ✅ 安全性角色會清楚對應至適當的裝置用量與原則 |
| 平台 \| 文件 | ✅ 裝置原則清楚且可探索 |
| 平台 \| 組織 | ✅ 閒置後,Salesforce 行動連線應用程式組態需要 PIN/密碼解除鎖定 |
| 平台 \| 組織 | ✅ 如果業務需求需要嚴格控制可存取 Salesforce 行動裝置的使用者,則會啟用「API 存取控制」,並將權限集指派給 Salesforce 行動應用程式的所有使用者 |
### 工作階段管理模式
深入瞭解 Well-Architected [Trusted](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [Secure](/docs/architect/zh-tw/well-architected/guide/secure) → [Session Security](/docs/architect/zh-tw/well-architected/guide/secure#工作階段安全性) → [Session Management](/docs/architect/zh-tw/well-architected/guide/secure#工作階段管理)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| Apex | ✅ 如果存在自訂登入流程,所有相關的自訂程式碼都會使用適當的 SessionManagement 方法來指派工作階段級安全性 |
| 平台 \| Aura | ✅ 如果存在自訂登入流程,請使用具有必要 `SessionManagement` 方法的 Apex 控制項來指派工作階段層級安全性 |
| 平台 \| 設計標準 | ✅ 安全性角色會明確列出每個角色已批准的工作階段類型與逾時/持續時間設定 |
| 平台 \| 設計標準 | ✅ 針對需要提升工作階段層級安全性的活動定義標準 |
| 平台 \| 設計標準 | ✅ 系統會為需要指派權限較高的活動定義標準 |
| 平台 \| 設計標準 | ✅ 連線應用程式範圍與權杖管理原則清楚且可探索 |
| 平台 \| 文件 | ✅ 連線應用程式範圍與權杖管理原則清楚且可探索 |
| 平台 \| 文件 | ✅ 已指定登入時間 (或識別為非必要) |
| 平台 \| Lightning Web 元件 (LWC) | ✅ 如果存在自訂登入流程,請使用具有必要 `SessionManagement` 方法的 Apex 控制項來指派工作階段層級安全性 |
| 平台 \| 組織 | ✅ 如果使用者從防火牆後方存取 Salesforce,防火牆會使用必要網域的允許清單,而非 IP 位址,以保護 Salesforce 的通訊安全 |
| 平台 \| 組織 | ✅ 未啟用工作階段逾時間隔不超過預設值 (2 小時) |
| 平台 \| 組織 | ✅ 已啟用下列所有設定: -「設定」頁面的點閱綁架保護 - 未設定 Salesforce 頁面的點閱綁架保護 - 跨站台要求偽造 (CSRF) 保護 - 跨站台指令檔 (XSS) 保護 - 啟用內容探查保護 - 推薦者 URL 保護 - 在使用者重新導向至 Salesforce 之外之前警告使用者 |
| 平台 \| 組織 | ✅ 工作階段稽核顯示使用者僅透過預期的工作階段類型存取 Salesforce |
| 平台 \| 組織 | ✅ 有「僅 API 使用者」存取權的清楚且啟用權限集 (且「僅 API」權限設為 TRUE),且所有整合與自動化使用者都已指派 |
### 威脅偵測與回應模式
深入瞭解結構正確的 [信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [安全](/docs/architect/zh-tw/well-architected/guide/secure) → [工作階段安全性](/docs/architect/zh-tw/well-architected/guide/secure#工作階段安全性) → [威脅偵測和回應](/docs/architect/zh-tw/well-architected/guide/secure#threat-detection-response)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| Einstein \| 工作人員 | ✅ 工作人員事件記錄包含對話資料 啟用增強型事件記錄的設定,除非有重要原因應該遮蔽對話資料 |
| Einstein \| Einstein Trust 圖層 | ✅ 生成式 AI 功能會定期稽核 Einstein 生成式 AI 稽核資料會從「Einstein 回饋意見」設定頁面啟用。生成式 AI 對話 (包括提示及其回應) 會定期稽核與檢閱 |
| 平台 \| 公司 | ✅ 稽核資料可在業務專案關係人可瞭解和存取的報告中使用 |
| 平台 \| 公司 | ✅ 定期審核稽核歷程記錄與報告 |
| 平台 \| 文件 | ✅ 系統會清楚記錄所有自動回應 |
| 平台 \| 文件 | ✅ 記錄可在 Salesforce 中檢閱可用記錄的步驟 |
| 平台 \| 文件 | ✅ 已為資料模型中的所有物件指定稽核層級 |
| 平台 \| 文件 | ✅ 安全性原則包含應觸發回應的事件清單以及適當的回應類型 |
| 平台 \| 組織 | ✅ 如果偵測到異常使用狀況,則可透過停用使用者帳戶或即時封鎖對資源的存取權來進行自動化,以回應威脅 |
| 平台 \| 組織 | ✅ 通知和警示設定為通知適當的使用者有關異常活動 |
| 平台 \| 組織 | ✅ 欄位歷程記錄追蹤已針對包含私人或敏感資料的所有欄位啟用 |
---
### 裝置存取防模式
深入瞭解 Well-Architected [Trusted](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [Secure](/docs/architect/zh-tw/well-architected/guide/secure) → [Session Security](/docs/architect/zh-tw/well-architected/guide/secure#工作階段安全性) → [Device Access](/docs/architect/zh-tw/well-architected/guide/secure#裝置存取權)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| 文件 | ⚡️ 安全性原則不存在或不包含裝置存取的相關資訊 |
| 平台 \| 組織 | ⚡️ 未將 Salesforce 行動連線應用程式設定為需要 PIN/密碼解除鎖定以進行閒置 |
| 平台 \| 組織 | ⚡️ 業務需求需要嚴格控制可存取 Salesforce 行動裝置的使用者,但未啟用「API 存取控制」或未使用權限集來控制對 Salesforce 行動應用程式的存取權 |
### 工作階段管理防模式
深入瞭解 Well-Architected [Trusted](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [Secure](/docs/architect/zh-tw/well-architected/guide/secure) → [Session Security](/docs/architect/zh-tw/well-architected/guide/secure#工作階段安全性) → [Session Management](/docs/architect/zh-tw/well-architected/guide/secure#工作階段管理)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| Apex | ⚡️ 如果存在自訂登入流程,則沒有指派工作階段層級安全性的邏輯 |
| 平台 \| Aura | ⚡️ 如果存在自訂登入流程,則沒有指派工作階段層級安全性的邏輯 |
| 平台 \| 設計標準 | ⚡️ 未針對需要提升工作階段層級安全性的活動定義標準 |
| 平台 \| 設計標準 | ⚡️ 未針對需要指派增權限的活動定義標準 |
| 平台 \| 設計標準 | ⚡️ 安全性原則不包含連線應用程式範圍或權杖管理的相關資訊 |
| 平台 \| 設計標準 | ⚡️ 安全性角色不存在或缺少工作階段類型和逾時/持續時間設定的相關資訊 |
| 平台 \| 文件 | ⚡️ 未記錄連線應用程式範圍與權杖管理原則 |
| 平台 \| Lightning Web 元件 (LWC) | ⚡️ 如果存在自訂登入流程,則沒有指派工作階段層級安全性的邏輯 |
| 平台 \| 組織 | ⚡️ 沒有使用者應擁有的工作階段類型定義 |
| 平台 \| 組織 | ⚡️ 整合與自動化使用者無法清楚或遺失「僅 API」權限 |
| 平台 \| 組織 | ⚡️ 沒有一般工作階段稽核 |
| 平台 \| 組織 | ⚡️ 如果使用者從防火牆後面存取 Salesforce,防火牆會使用硬式編碼的 IP 位址來保護對 Salesforce 的通訊。 |
| 平台 \| 組織 | ⚡️ 未啟用工作階段逾時間隔超出預設值 (2 小時) |
| 平台 \| 組織 | ⚡️ 停用下列任一設定: -「設定」頁面的點閱綁架保護 - 未設定 Salesforce 頁面的點閱綁架保護 - 跨站台要求偽造 (CSRF) 保護 - 跨站台指令檔 (XSS) 保護 - 啟用內容探究保護 - 推薦者 URL 保護 - 在使用者重新導向至 Salesforce 之外之前警告使用者 |
### 威脅偵測與回應防模式
深入瞭解結構正確的 [信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [安全](/docs/architect/zh-tw/well-architected/guide/secure) → [工作階段安全性](/docs/architect/zh-tw/well-architected/guide/secure#工作階段安全性) → [威脅偵測和回應](/docs/architect/zh-tw/well-architected/guide/secure#threat-detection-response)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------------------------------------------------- |
| Einstein \| 組織 | ⚡️ 不會稽核生成式 AI 功能 生成式 AI 對話 (包括提示與回應) 不會定期稽核與檢閱 |
| 平台 \| 公司 | ⚡️ 稽核資料僅可透過需要主題專業知識的記錄檔存取與解譯 |
| 平台 \| 公司 | ⚡️ 沒有可檢閱稽核資訊的流程 |
| 平台 \| 文件 | ⚡️ 安全性原則不存在或不包含威脅偵測和警示的相關資訊 |
| 平台 \| 文件 | ⚡️ 自動回應的文件不存在或不明確 |
| 平台 \| 組織 | ⚡️ 沒有自動化功能可回應威脅 |
| 平台 \| 組織 | ⚡️ 通知和警示未設定為通知適當的使用者有關異常活動,或者存在與異常活動相關的一些通知和警示,但它們是臨時的 |
| 平台 \| 組織 | ⚡️ 針對包含私人或敏感資料的欄位,不會一直啟用欄位歷程記錄追蹤 |
---
# 安全 - 組織安全性
### 驗證模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [安全](/docs/architect/zh-tw/well-architected/guide/secure) → [組織安全性](/docs/architect/zh-tw/well-architected/guide/secure#組織安全性) → [驗證](/docs/architect/zh-tw/well-architected/guide/secure#驗證)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | -------------------------------------------------------------------------------------------------------- |
| 平台 \| Apex | ✅ 執行驗證的方法會使用已命名認證來處理使用者名稱/密碼流程 |
| 平台 \| Apex | ✅ 沒有使用者名稱或密碼會以可讀的程式碼顯示 (沒有硬式編碼值或字串) |
| 平台 \| Apex | ✅ 如果存在自訂登入流程,則所有相關的自訂 Apex 都會使用適當的 `SessionManagement` 方法 |
| 平台 \| Aura | ✅ 沒有使用者名稱或密碼會以可讀的程式碼顯示 (沒有硬式編碼值或字串) |
| 平台 \| Aura | ✅ 執行驗證的方法會使用已命名認證來處理使用者名稱/密碼流程 |
| 平台 \| 文件 | ✅ 已批准的安全性角色已清楚定義並列出 |
| 平台 \| 文件 | ✅ 在安全性矩陣中存在的安全性角色與允許的驗證結構描述 (UI、API) 之間的對應 |
| 平台 \| Lightning Web 元件 (LWC) | ✅ 執行驗證的方法會使用已命名認證來處理使用者名稱/密碼流程 |
| 平台 \| Lightning Web 元件 (LWC) | ✅ 沒有使用者名稱或密碼會以可讀的程式碼顯示 (沒有硬式編碼值或字串) |
| 平台 \| 組織 | ✅ API 存取控制可防止使用者透過未經授權的連線應用程式進行驗證 |
| 平台 \| 組織 | ✅ 登入 Salesforce 的使用者與實體之間的關係為 1:1 (無共用使用者) |
| 平台 \| 組織 | ✅ 登入組態符合 Salesforce MFA 檢查 |
| 平台 \| 組織 | ✅ 如果 SSO 已啟用,則批准的管理員使用者擁有直接登入存取權 |
| 平台 \| 組織 | ✅ 登入鑑識會在必須儲存超過 6 個月的登入歷程記錄時使用 登入鑑識會在需要儲存 6 個月至 10 年時使用登入鑑識 |
### 授權模式
深入瞭解結構正確的 [信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [安全](/docs/architect/zh-tw/well-architected/guide/secure) → [組織安全性](/docs/architect/zh-tw/well-architected/guide/secure#組織安全性) → [授權](/docs/architect/zh-tw/well-architected/guide/secure#授權)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Einstein \| 機器人 | ✅ 為每個業務使用個案設定唯一的機器人使用者 在機器人組態的「Einstein 機器人產生器概觀」區段中,所選的機器人使用者僅會依照最低權限原則,提供執行機器人所設計為達成的業務目的所需的最低存取權量 |
| 平台 \| Apex | ✅ 資料庫作業會適當執行欄位級和物件級存取檢查 DML 和資料庫 DML 陳述式宣告資料作業的使用者或系統模式及/或 DML 和資料庫 DML 陳述式在資料作業之前使用 `stripInaccessible` 方法 |
| 平台 \| Apex | ✅ 資料庫作業會適當執行欄位級和物件級存取檢查 SOQL 和 SOSL 陳述式使用 `WITH USER_MODE` 和 `WITH SYSTEM_MODE` 關鍵字及/或 `stripInaccessible` 方法用於篩選查詢和子查詢結果 |
| 平台 \| Apex | ✅ 資料庫作業會適當執行欄位級和物件級存取檢查,且 sObject 描述結果方法 (亦即 `isAccessible`、`isCreateable`、`isUpdateable` 和/或 `isDeletable`) 會很少使用 |
| 平台 \| 設計標準 | ✅ 會清楚列出授與增強權限的使用個案,其中包括: - 修改所有資料權限 - 檢視所有資料權限 |
| 平台 \| 文件 | ✅ 擁有 Salesforce 存取權的每個使用者和系統都會對應至安全性矩陣中的一或多個角色 |
| 平台 \| 文件 | ✅ 安全性矩陣會清楚列出中繼資料權限和指派的使用者角色 |
| 平台 \| 組織 | ✅ 權限集和權限集群組用於控制中繼資料的存取權 |
| 平台 \| 組織 | ✅ 符合業務功能的權限集和權限集群組 |
| 平台 \| 組織 | ✅ 針對每個整合設定唯一的 API 僅限整合使用者 |
| 平台 \| 組織 | ✅ 設定檔最少使用,僅用於控制登入 IP 範圍和登入時間 |
| 平台 \| 組織 | ✅ 指派給使用者遵循安全性矩陣定義的權限 |
---
### 驗證防模式
深入瞭解結構良好的[信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [安全](/docs/architect/zh-tw/well-architected/guide/secure) → [組織安全性](/docs/architect/zh-tw/well-architected/guide/secure#組織安全性) → [驗證](/docs/architect/zh-tw/well-architected/guide/secure#驗證)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ---------------------------------------------------------------------------------------------------- |
| 平台 \| Apex | ⚡️ 使用者名稱和密碼會顯示在程式碼中 |
| 平台 \| Apex | ⚡️ 如果存在自訂登入流程,則沒有指派工作階段層級安全性的邏輯 |
| 平台 \| Apex | ⚡️ 驗證為臨時處理 |
| 平台 \| Aura | ⚡️ 驗證為臨時處理 |
| 平台 \| Aura | ⚡️ 使用者名稱和密碼會顯示在程式碼中 |
| 平台 \| 公司 | ⚡️ 不存在使用者提供和取消佈建的 SLA 與需求 |
| 平台 \| 文件 | ⚡️ 不包含安全性角色 |
| 平台 \| 文件 | ⚡️ 安全性矩陣沒有安全性角色和允許驗證方式的明確對應 |
| 平台 \| Lightning Web 元件 (LWC) | ⚡️ 驗證為臨時處理 |
| 平台 \| Lightning Web 元件 (LWC) | ⚡️ 使用者名稱和密碼會顯示在程式碼中 |
| 平台 \| 組織 | ⚡️ API 存取控制未啟用 |
| 平台 \| 組織 | ⚡️ 如果使用者從防火牆後面存取 Salesforce,防火牆會使用硬式編碼的 IP 位址來保護對 Salesforce 的通訊。 |
| 平台 \| 組織 | ⚡️ 登入 Salesforce 的使用者與實體之間的關係不是 1:1 (共有使用者帳戶) |
| 平台 \| 組織 | ⚡️ 如果已啟用 SSO,則沒有批准的管理員使用者擁有直接登入存取權 |
| 平台 \| 組織 | ⚡️ 登入組態不符合 Salesforce MFA 檢查 |
| 平台 \| 組織 | ⚡️ 舊版已命名認證用於向外部系統驗證 使用舊版已命名認證指定呼叫端點的 URL 及其必要驗證參數 |
### 授權防模式
深入瞭解結構正確的 [信任](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [安全](/docs/architect/zh-tw/well-architected/guide/secure) → [組織安全性](/docs/architect/zh-tw/well-architected/guide/secure#組織安全性) → [授權](/docs/architect/zh-tw/well-architected/guide/secure#授權)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Einstein \| 機器人 | ⚡️ Einstein 機器人使用「基本聊天機器人使用者」或「一般」機器人使用者 在機器人組態的「Einstein 機器人產生器概觀」區段中,選取的「機器人使用者」為「基本聊天機器人使用者」或「一般」自訂聊天機器人使用者,此使用者已在不同業務用途的機器人之間共用 |
| 平台 \| Apex | ⚡️ DML、資料庫類別方法、SOQL 和 SOSL 會在預設系統模式中執行 |
| 平台 \| Apex | ⚡️ 資料庫作業不會執行適當的存取檢查 SOQL 查詢僅使用 `WITH SECURITY_ENFORCED` 關鍵字進行存取限制 |
| 平台 \| Apex | ⚡️ 資料庫作業無法適當執行存取檢查 DML 或資料庫類別方法,僅針對 sObject 和欄位級存取權使用 `isAccessible`、`isCreateable`、`isUpdateable` 和/或 `isDeletable` 檢查 |
| 平台 \| 設計標準 | ⚡️ 未清楚列出授與增強權限的使用個案 包括: - 修改所有資料權限 - 檢視所有資料權限 |
| 平台 \| 文件 | ⚡️ 未清楚列出中繼資料權限與指派的角色 |
| 平台 \| 文件 | ⚡️ 文件不包含安全性矩陣 |
| 平台 \| 組織 | ⚡️ 指派給使用者的權限不會遵循安全性矩陣定義 |
| 平台 \| 組織 | ⚡️ 設定檔包含中繼資料的存取控制 |
| 平台 \| 組織 | ⚡️ 權限集已特殊設定 |
| 平台 \| 組織 | ⚡️ 權限集群組未設定為允許根據業務功能存取 |
| 平台 \| 組織 | ⚡️ 僅 API 使用者未設定或在多個整合之間共用 |
| 平台 \| 組織 | ⚡️ 權限集是冗餘的或重複的;難以瞭解清楚的功能邏輯和設定之間的差異 |
---
# 彈性 - 事件回應
### 能夠分級模式
深入瞭解結構良好的 [適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [事件回應](/docs/architect/zh-tw/well-architected/guide/resilient#事件回應) → [分級能力](/docs/architect/zh-tw/well-architected/guide/resilient#能夠分級)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | --------------------------------------------------------------- |
| 平台 \| 公司 | ✅ 應警示支援複雜問題的 SME 或利害關係人會在事件發生前識別 |
| 平台 \| 公司 | ✅ 交付與支援小組之間的交談是上線的一部分 |
| 平台 \| 公司 | ✅ 如有諮詢,Salesforce 結構設計師可快速回應並協助小組專注於復原 |
| 平台 \| 文件 | ✅ 支援人員可以探索並閱讀指定解決方案中使用的系統和設計模式 |
| 平台 \| 組織 | ✅ 記錄和自訂錯誤訊息會納入整個系統的執行路徑中 |
### 監視與警示模式
深入瞭解結構良好的 [適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [事件回應](/docs/architect/zh-tw/well-architected/guide/resilient#事件回應) → [監視與警示](/docs/architect/zh-tw/well-architected/guide/resilient#監視與警示)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ----------------------------------------------------------------------- |
| 平台 \| 文件 | ✅ 系統會根據直接與間接生成式 AI 回饋意見度量定義提示調整警示的項目條件 |
| 平台 \| 組織 | ✅ 警示僅用於通知使用者需要人力介入的情況;其他失敗會記錄並進行報告 |
| 平台 \| 組織 | ✅ 警示會傳送給能夠回應的使用者 |
| 平台 \| 組織 | ✅ 如果可以的話,會在可能失敗前提前傳送警示 |
### 復原時間模式
深入瞭解結構良好的 [適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [事件回應](/docs/architect/zh-tw/well-architected/guide/resilient#事件回應) → [復原時間](/docs/architect/zh-tw/well-architected/guide/resilient#復原時間)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------ |
| 平台 \| 公司 | ✅ 小組瞭解其負責擁有生產環境中的服務 |
| 平台 \| 公司 | ✅ 定期執行復原通訊協定 |
| 平台 \| 文件 | ✅ 依事件類型與觸發定義及分類復原策略 |
| 平台 \| 文件 | ✅ 事件回應的結束條件存在於您的 SLO 中且清楚明確 |
| 平台 \| 文件 | ✅ 事件期間增加權限的啟用條件和指派邏輯很明確 |
| 平台 \| 文件 | ✅ 事件回應權限集與授權會清楚列出 |
| 平台 \| 組織 | ✅ 存在以工作階段為基礎的事件回應權限集,且可在復原期間指派給支援人員 |
| 平台 \| 組織 | ✅ 設定稽核追蹤顯示指定的復原測試人員已在協議的時間登入測試環境,並遵循復原測試指令檔 |
| 平台 \| 測試計畫 | ✅ 復原測試的測試指令檔存在且可重複 |
| 平台 \| 測試計畫 | ✅ 事件模擬的環境會清楚列出 |
---
### 能夠分級反模式
深入瞭解結構良好的 [適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [事件回應](/docs/architect/zh-tw/well-architected/guide/resilient#事件回應) → [分級能力](/docs/architect/zh-tw/well-architected/guide/resilient#能夠分級)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------- |
| 平台 \| 公司 | ⚡️ 在事件發生之前,不會識別應警示的 SME 或利害關係人 |
| 平台 \| 公司 | ⚡️ 遞送小組與支援小組之間的轉送不是版本流程的一部分 |
| 平台 \| 公司 | ⚡️ Salesforce 結構設計師認為事件回應超出其工作範圍 |
| 平台 \| 文件 | ⚡️ 指定解決方案中使用的系統和設計模式無法供支援人員使用 |
| 平台 \| 組織 | ⚡️ 不使用記錄和自訂錯誤訊息 |
### 監視與警示防模式
深入瞭解結構良好的 [適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [事件回應](/docs/architect/zh-tw/well-architected/guide/resilient#事件回應) → [監視與警示](/docs/architect/zh-tw/well-architected/guide/resilient#監視與警示)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------- |
| 平台 \| 文件 | ⚡️ 沒有針對生成式 AI 應用程式觸發提示調整警示的條件定義 |
| 平台 \| 組織 | ⚡️ 當發生任何類型的失敗時,系統會傳送警示,無論是否需要後續動作 |
| 平台 \| 組織 | ⚡️ 針對需要技術解決方案的問題傳送警示給業務使用者 |
| 平台 \| 組織 | ⚡️ 警示只會作為已發生失敗的回應傳送 |
### 復原反模式的時間
深入瞭解結構良好的 [適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [事件回應](/docs/architect/zh-tw/well-architected/guide/resilient#事件回應) → [復原時間](/docs/architect/zh-tw/well-architected/guide/resilient#復原時間)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------------------- |
| 平台 \| 公司 | ⚡️ 不清楚哪些小組負責生產環境中的不同服務 |
| 平台 \| 公司 | ⚡️ 復原通訊協定不存在或未定期執行 |
| 平台 \| 文件 | ⚡️ 事件回應會臨時執行 |
| 平台 \| 文件 | ⚡️ 不存在事件回應的結束條件 |
| 平台 \| 文件 | ⚡️ 未指派或臨時指派增量權限 |
| 平台 \| 文件 | ⚡️ 事件回應權限集與授權未列出 |
| 平台 \| 組織 | ⚡️ 以工作階段為基礎的權限集不存在於事件回應,或未授權支援人員使用 |
| 平台 \| 組織 | ⚡️ 設定稽核追蹤顯示指定的復原測試人員未登入測試環境或未遵循復原測試指令檔 |
| 平台 \| 測試計畫 | ⚡️ 未針對事件模擬建立環境 |
| 平台 \| 測試計畫 | ⚡️ 回復測試不存在測試指令檔 |
---
# 彈性 - 應用程式生命週期管理
### 環境策略模式
深入瞭解結構良好的 [適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [應用程式生命週期管理](/docs/architect/zh-tw/well-architected/guide/resilient#應用程式週期管理) → [環境策略](/docs/architect/zh-tw/well-architected/guide/resilient#環境策略)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ---------------------------------------------------------------- |
| 平台 \| 組織 | ✅ 指定環境中的中繼資料獨立於您的版本成品 |
| 平台 \| 組織 | ✅ 環境不會直接對應至釋出路徑 |
| 平台 \| 組織 | ✅ 變更的發行路徑取決於變更的類型 (高度風險、中度風險、低度風險) |
| 平台 \| 組織 | ✅ 不存在擁擠的環境 |
| 平台 \| 組織 | ✅ 永遠不會直接在生產環境中進行有風險的組態變更 |
| 平台 \| 組織 | ✅ 在營業時間高峰期間不會發行版本 |
| 平台 \| 組織 | ✅ 採用來源驅動的開發和版本模型 |
| 平台 \| Sandbox | ✅ Developer 與 Developer Pro Sandbox 已啟用來源追蹤 |
### 版本管理模式
深入瞭解良好結構的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview)功能 → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [應用程式生命週期管理](/docs/architect/zh-tw/well-architected/guide/resilient#應用程式週期管理) → [發行管理](/docs/architect/zh-tw/well-architected/guide/resilient#版本管理)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------- |
| 平台 \| 設計標準 | ✅ 版本名稱為清楚 |
| 平台 \| 設計標準 | ✅ 小組可以尋找並遵循明確的原則來標記具有正確版本名稱的成品、開發項目和其他工作 |
| 平台 \| 文件 | ✅ 版本名稱可搜尋且可探索 |
| 平台 \| 文件 | ✅ 可以依版本名稱提取版本資料清單的清晰檢視 |
| 平台 \| KPI | ✅ 系統會針對不同的開發階段定義生成式 AI 應用程式的品質門槛 |
| 平台 \| 生產 | ✅ 中繼資料顯示使用穩定版本機制 透過中繼資料 API 部署使用 `source` 格式 |
| 平台 \| 生產 | ✅ 中繼資料顯示使用穩定版本機制中繼資料會組織成解除鎖定的封裝 |
| 平台 \| 生產 | ✅ 部署記錄在可用歷程記錄內不會顯示失敗的部署 |
| 平台 \| 生產 | ✅ 部署歷程記錄顯示清楚的版本步調,以及版本視窗內相當統一的部署叢集 |
| 平台 \| 生產 | ✅ DevOps Center 已啟用且已安裝 |
| 平台 \| 生產 | ✅ 中繼資料顯示使用穩定版本機制的變更集未用於釋出變更 |
| 平台 \| 藍圖 | ✅ 功能會明確繫結至特定已命名版本 |
| 平台 \| 藍圖 | ✅ 版本名稱為清楚 |
| 平台 \| 藍圖 | ✅ 版本名稱可搜尋且可探索 |
### 測試策略模式
深入瞭解結構良好的 [適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [應用程式生命週期管理](/docs/architect/zh-tw/well-architected/guide/resilient#應用程式週期管理) → [測試策略](/docs/architect/zh-tw/well-architected/guide/resilient#測試策略)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Data 360 \| Apex | ✅ Apex 測試類別包含針對 Data Cloud 物件執行的查詢涵蓋範圍。測試類別會擴充 System.SoqlStubProvider 類別,並覆寫 handleSoqlQuery() 方法。DMO 例項是使用 Test.createStubQueryRow() 或 Test.createStubQueryRows() 所建立。 |
| 平台 \| Apex | ✅ 資料工廠模式用於單元測試 |
| 平台 \| Apex | ✅ 模擬/名稱用於模擬 API 回應 |
| 平台 \| 公司 | ✅ 當您擁有 B2C 規模應用程式、大量使用者或大量資料時,您可將刻度測試納入 QA 流程的一部分 |
| 平台 \| 公司 | ✅ 您的刻度測試具有正確定義的條件 |
| 平台 \| 公司 | ✅ 您在完整 Sandbox 中執行規模測試 |
| 平台 \| 公司 | ✅ 您的刻度測試專注於系統的高優先順序層面 |
| 平台 \| 公司 | ✅ 模擬器用於複製類似生產的條件,以進行延展性和效能測試 |
| 平台 \| 公司 | ✅ 測試會在變更進入來源控制時自動執行 |
| 平台 \| 公司 | ✅ 應用程式開發週期中會以數個間隔執行耐力、壓力、效能和規模測試,並視為進行中的工作 |
| 平台 \| 公司 | ✅ 提示工程包括人類的品質檢閱 |
| 平台 \| 公司 | ✅ 可用性測試採用各種裝置和輔助技術 |
| 平台 \| 組織 | ✅ 所有測試資料都會清除敏感且可識別的資料 |
| 平台 \| 測試計畫 | ✅ 環境會依其支援的測試類型進行分類 |
| 平台 \| 測試計畫 | ✅ 根據風險、使用個案或複雜度指定適當的測試模式 |
---
### 環境策略反模式
深入瞭解結構良好的 [適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [應用程式生命週期管理](/docs/architect/zh-tw/well-architected/guide/resilient#應用程式週期管理) → [環境策略](/docs/architect/zh-tw/well-architected/guide/resilient#環境策略)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ----------------------------------------------------- |
| 平台 \| 組織 | ⚡️ 環境直接對應至發行路徑 |
| 平台 \| 組織 | ⚡️ 每個變更的版本路徑皆相同 |
| 平台 \| 組織 | ⚡️ 存在的環境過度擁塞 |
| 平台 \| 組織 | ⚡️ 直接在生產環境中進行有風險的組態變更 |
| 平台 \| 組織 | ⚡️ 採用以組織為基礎的開發和版本模型 |
| 平台 \| 組織 | ⚡️ 發行會在營業時間高峰期間發生 |
| 平台 \| 組織 | ⚡️ 指定環境中的中繼資料是您的版本成品 |
| 平台 \| Sandbox | ⚡️ Developer 與 Developer Pro Sandbox 未啟用來源追蹤 |
### 版本管理防模式
深入瞭解良好結構的可[調整](/docs/architect/zh-tw/well-architected/guide/adaptable-overview)功能 → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [應用程式生命週期管理](/docs/architect/zh-tw/well-architected/guide/resilient#應用程式週期管理) → [發行管理](/docs/architect/zh-tw/well-architected/guide/resilient#版本管理)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | --------------------------------------------------------------------------------------- |
| 平台 \| 設計標準 | ⚡️ 版本名稱缺勤 |
| 平台 \| 設計標準 | ⚡️ 小組以不同的方式參照物件、開發項目和其他工作 |
| 平台 \| 文件 | ⚡️ 版本名稱為臨時或不存在 |
| 平台 \| 文件 | ⚡️ 無法使用版本名稱來提取版本資料清單的清晰檢視 |
| 平台 \| KPI | ⚡️ 生成式 AI 應用程式的品質值未定義,或未在不同的開發階段定義 |
| 平台 \| 生產 | ⚡️ 中繼資料表示使用以組織為基礎的發行機制 透過中繼資料 API 部署使用 `package.xml` 格式 |
| 平台 \| 生產 | ⚡️ 中繼資料表示使用以組織為基礎的發行機制 啟用變更集 |
| 平台 \| 生產 | ⚡️ 部署記錄會在可用歷程記錄中顯示失敗部署的重複例項 |
| 平台 \| 生產 | ⚡️ 部署沒有可辨識的步調,或顯示不平均的部署叢集 (具有 hot-fix 與臨時回復的符號) |
| 平台 \| 生產 | ⚡️ DevOps Center 未啟用且已安裝 |
| 平台 \| 藍圖 | ⚡️ 功能未明確繫結至特定版本 |
| 平台 \| 藍圖 | ⚡️ 版本名稱缺勤 |
| 平台 \| 藍圖 | ⚡️ 版本名稱為臨時或不存在 |
### 測試策略反模式
深入瞭解結構良好的 [適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [應用程式生命週期管理](/docs/architect/zh-tw/well-architected/guide/resilient#應用程式週期管理) → [測試策略](/docs/architect/zh-tw/well-architected/guide/resilient#測試策略)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------------------------------------------------- |
| Data 360 \| Apex | ⚡️ 針對針對 Data Cloud 物件執行的 SOQL 查詢不存在測試涵蓋範圍,針對 DMO 的 SOQL 查詢不涵蓋 Apex 測試方法 |
| 平台 \| Apex | ⚡️ 您的單元測試依賴組織資料 |
| 平台 \| Apex | ⚡️ 不使用 Mocks/stubs |
| 平台 \| 公司 | ⚡️ 未排定刻度測試的優先順序 |
| 平台 \| 公司 | ⚡️ 您不會在 QA 流程中執行刻度測試,且擁有 B2C 刻度應用程式、大量使用者或大量資料 |
| 平台 \| 公司 | ⚡️ 您的刻度測試沒有正確定義的條件 |
| 平台 \| 公司 | ⚡️ 您在 Partial Copy 或 Developer Sandbox 中執行刻度測試 |
| 平台 \| 公司 | ⚡️ 未執行可用性測試,或在有限的裝置上執行。 |
| 平台 \| 公司 | ⚡️ 不會測試類似生產的使用者要求、API 流量和網路速度變化。 |
| 平台 \| 公司 | ⚡️ 測試自動化無法使用 |
| 平台 \| 公司 | ⚡️ 提示工程缺乏人類的品質評論 |
| 平台 \| 公司 | ⚡️ 耐力、壓力、效能、規模測試會視為一種開發階段。 |
| 平台 \| 組織 | ⚡️ 測試資料與生產資料相同 |
| 平台 \| 測試計畫 | ⚡️ 不清楚哪個環境支援哪種類型的測試 |
| 平台 \| 測試計畫 | ⚡️ 測試模式不會依風險、使用個案或複雜度分類 |
| 平台 \| 測試計畫 | 自訂 LWC 的效能測試是後續的考量事項 等待開發週期結束以測試自訂 Lightning 元件 |
| 平台 \| 測試計畫 | ⚡️ 測試少於預期使用者流量 50% 的整合 依賴少量使用者的結果來認為整合測試足夠 |
---
# 彈性 - 持續規劃
### 建立備份與還原功能模式
深入瞭解結構良好的 [適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [連續性計畫](/docs/architect/zh-tw/well-architected/guide/resilient#持續性規劃) → [建立備份與還原功能](/docs/architect/zh-tw/well-architected/guide/resilient#建立備份與還原功能)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | -------------------------------------------------------------------------------- |
| 平台 \| 公司 | ✅ 測試計畫和測試記錄顯示資料還原每年至少在完整或部分複製 Sandbox 中進行兩次測試 |
| 平台 \| 公司 | ✅ 備份會儲存在僅授權使用者可存取的安全位置 |
| 平台 \| 文件 | ✅ 資料與中繼資料皆有備份與還原策略 |
### 業務連續性模式
深入瞭解結構良好的[適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [持續規劃](/docs/architect/zh-tw/well-architected/guide/resilient#持續性規劃) → [業務連續性](/docs/architect/zh-tw/well-architected/guide/resilient#業務連續性)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| 公司 | ✅ 採用「復原優先」心態,專注於盡快使優先順序最高的業務功能和功能無法受到影響 |
| 平台 \| 公司 | ✅ 有維護排程可供檢閱 BCP 測試計畫 |
| 平台 \| 文件 | ✅ BCP 已存在,其中包含:如果 Salesforce 無法使用,可繼續處理或分級資料的步驟、可能觸發使用 BCP 的事件清單、BCP 測試的步驟和間隔 |
| 平台 \| 文件 | ✅ 您的 BCP 包含上游與下游系統和相依性 |
### 技術連續性模式
深入瞭解結構良好的[適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [持續規劃](/docs/architect/zh-tw/well-architected/guide/resilient#持續性規劃) → [技術持續性](/docs/architect/zh-tw/well-architected/guide/resilient#技術持續性)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ---------------------------------------------------------- |
| 平台 \| 公司 | ✅ 您已評估是否需要建立有意冗餘或失敗的系統 |
| 平台 \| 公司 | ✅ 盡可能自動化事件復原策略 |
| 平台 \| 文件 | ✅ 您 BCP 帳戶的其他資源或中斷程序小組可能需要有效回應事件 |
| 平台 \| 測試計畫 | ✅ 系統會考慮與程序和人員相關的 BCP 區域 |
---
### 建立備份與還原功能反模式
深入瞭解結構良好的 [適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [連續性計畫](/docs/architect/zh-tw/well-architected/guide/resilient#持續性規劃) → [建立備份與還原功能](/docs/architect/zh-tw/well-architected/guide/resilient#建立備份與還原功能)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | --------------------------------------------------------------------------- |
| 平台 \| 公司 | ⚡️ 沒有資料還原流程,或資料還原流程未經測試 |
| 平台 \| 公司 | ⚡️ 備份並非人類可讀 |
| 平台 \| 公司 | ⚡️ 備份會儲存在未經授權的業務使用者可存取的位置 |
| 平台 \| 文件 | ⚡️ 不存在備份與還原策略,或策略不完整 (僅適用於資料或中繼資料,不適用於兩者) |
### 業務連續性防模式
深入瞭解結構良好的[適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [持續規劃](/docs/architect/zh-tw/well-architected/guide/resilient#持續性規劃) → [業務連續性](/docs/architect/zh-tw/well-architected/guide/resilient#業務連續性)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | --------------------------------------- |
| 平台 \| 公司 | ⚡️「修正問題」心態是事件管理的唯一方法 |
| 平台 \| 公司 | ⚡️ 不會定期重新整理 BCP 測試計畫 |
| 平台 \| 文件 | ⚡️ 您的 BCP 僅包含 Salesforce |
| 平台 \| 文件 | ⚡️ 不存在或不完整的 BCP |
### 技術連續性反模式
深入瞭解結構良好的[適應性](/docs/architect/zh-tw/well-architected/guide/adaptable-overview) → [彈性](/docs/architect/zh-tw/well-architected/guide/resilient) → [持續規劃](/docs/architect/zh-tw/well-architected/guide/resilient#持續性規劃) → [技術持續性](/docs/architect/zh-tw/well-architected/guide/resilient#技術持續性)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | --------------------------------------- |
| 平台 \| 公司 | ⚡️ 您尚未評估有意冗餘或失敗系統的需求 |
| 平台 \| 公司 | ⚡️ 事件復原策略完全為手動 |
| 平台 \| 文件 | ⚡️ 您的 BCP 不包含作業支援需求 |
| 平台 \| 測試計畫 | ⚡️ 不會考慮與程序和人員相關的 BCP 區域 |
---
# 意圖 - 可持續性
### 標準與自訂功能模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Intentional](/docs/architect/zh-tw/well-architected/guide/intentional) → [Maintenability](/docs/architect/zh-tw/well-architected/guide/intentional#永續性) → [Standard vs. Custom Functionality](/docs/architect/zh-tw/well-architected/guide/intentional#standard-vs-custom-functionality)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| Data 360 \| 組織 | ✅ 盡可能利用標準連接器 如果有標準連接器可用,請仔細考量實作自訂資料串流的涵義。自訂串流將無法利用標準功能的增強功能 |
| Einstein \| 組織 | ✅ 從現有提示開始,並自訂以符合您的需求。使用範例提示範本庫中的最佳作法,而非從頭開始撰寫新提示草稿 |
| Einstein \| 提示範本 | ✅ 提示範本使用 Einstein Search Retrievers for RAG 使用 Low-code Search Retrievers 而非自訂 Apex 時,當在提示範本中使用提取擴充產生時 |
| 平台 \| Apex | ✅ 沒有可覆寫標準頁面檢視機制的程式碼 |
| 平台 \| Aura | ✅ 沒有可覆寫標準頁面檢視機制的程式碼 |
| 平台 \| Aura | ✅ 沒有程式碼嘗試覆寫或略過執行平台順序 |
| 平台 \| 資料模型 | ✅ 沒有任何物件的名稱或功能會複製標準物件 |
| 平台 \| 資料模型 | ✅ 標準物件不會用於遠超出預期範圍的用途 |
| 平台 \| 決策記錄 | ✅ 當選擇建立或購買解決方案時,決策記錄會顯示近期和長期成本的計算 |
| 平台 \| 設計標準 | ✅ 解決方案的指引原則使用下列優先順序:1\.使用內建平台服務 2。在建立自訂解決方案前,請先考量 AppExchange 應用程式。在撰寫程式碼前使用低程式碼自訂項目 |
| 平台 \| 設計標準 | ✅ 有明確的指導原則可防止解決方案不需要自訂 |
| 平台 \| Lightning Web 元件 (LWC) | ✅ 沒有可覆寫標準頁面檢視機制的程式碼 |
| 平台 \| Lightning Web 元件 (LWC) | ✅ 沒有程式碼嘗試覆寫或略過執行平台順序 |
| 平台 \| Visualforce | ✅ 沒有程式碼嘗試覆寫或略過執行平台順序 |
### 技術債務模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Intentional](/docs/architect/zh-tw/well-architected/guide/intentional) → [Maintenability](/docs/architect/zh-tw/well-architected/guide/intentional#永續性) → [Technical Debt](/docs/architect/zh-tw/well-architected/guide/intentional#技術債務)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| 決策記錄 | ✅ 清楚記錄前/後技術補償債務的 KPI |
| 平台 \| 決策記錄 | ✅ 針對動作與未動作的權衡討論,專注於業務成本或益處 |
| 平台 \| 組織 | ✅ 未支援或舊版技術已啟用 Salesforce 組織連線使用 Salesforce Connect 的跨組織轉接器 |
| 平台 \| 組織 | ✅ 未支援或舊版技術已啟用 包括: - 所有使用者都在 Lightning Experience 中工作 - 在 Apex 中沒有或非常少使用 `@future` (使用 Queueable) - 所有協力廠商 Apex 屬於 AppExchange 封裝 - 沒有啟用的工作流程規則 (使用流程) - 沒有啟用的流程產生器程序 (使用流程) - PushTopic 事件 (使用變更資料取得) - 一般事件 (使用平台事件) - 30.0 版之前的 API 版本 - 使用 Salesforce Connect 的跨組織連線 - 適用於 Salesforce Connect 的轉接器 |
| 平台 \| 組織 | ✅ 未啟用任何不支援或舊版技術 Apex 中沒有或極少使用 `@future` (使用 Queueable) |
| 平台 \| 組織 | ✅ 不支援或舊版技術已啟用 所有第三方 Apex 屬於 AppExchange 封裝 |
| 平台 \| 組織 | ✅ 沒有未支援或舊版技術已啟用 所有使用者都使用 Lightning Experience |
| 平台 \| 組織 | ✅ 沒有未支援或舊版技術已啟用 沒有啟用的工作流程規則 (使用流程) |
| 平台 \| 組織 | ✅ 沒有未支援或舊版技術已啟用 沒有啟用的流程產生器程序 (使用流程) |
| 平台 \| 組織 | ✅ 未啟用任何不受支援或舊版技術的 PushTopic 事件 (使用「變更資料擷取」) |
| 平台 \| 組織 | ✅ 沒有 30.0 之前啟用的 API 版本不支援或舊版技術 |
| 平台 \| 組織 | ✅ 沒有未支援或舊版技術已啟用一般事件 (使用平台事件) |
| 平台 \| 藍圖 | ✅ 交付與開始/結束日期是明確的 |
| 平台 \| 藍圖 | ✅ 解決技術債務的工作存在 |
---
### 標準與自訂功能反模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Intentional](/docs/architect/zh-tw/well-architected/guide/intentional) → [Maintenability](/docs/architect/zh-tw/well-architected/guide/intentional#永續性) → [Standard vs. Custom Functionality](/docs/architect/zh-tw/well-architected/guide/intentional#standard-vs-custom-functionality)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------------------------ |
| Data 360 \| 組織 | ⚡️ 不常使用標準連接器 實作含批次或串流的自訂資料串流,當標準連接器執行時 |
| Einstein \| 提示範本 | ⚡️ 提示範本是從頭開始建立 提示範本是從頭開始建立,樣式、用詞和格式不同 |
| Einstein \| 提示範本 | ⚡️ 提示範本利用 RAG 的自訂 Apex 提示範本中會使用自訂 Apex 資源實作 RAG |
| 平台 \| Apex | ⚡️ 程式碼嘗試覆寫或略過執行的平台順序 |
| 平台 \| Aura | ⚡️ 程式碼可覆寫標準頁面檢視機制,通常是單一頁面應用程式的形式 |
| 平台 \| Aura | ⚡️ 程式碼嘗試覆寫或略過執行的平台順序 |
| 平台 \| 資料模型 | ⚡️ 物件會複製標準物件的名稱和/或功能 |
| 平台 \| 資料模型 | ⚡️ 標準物件用於遠超出預期範圍的用途 |
| 平台 \| 決策記錄 | ⚡️ 當選擇建立或購買解決方案時,決策記錄不會同時考量近期與長期成本 |
| 平台 \| 設計標準 | ⚡️ 設計標準不存在或沒有避免不需要自訂和程式碼的明確理由 |
| 平台 \| Lightning Web 元件 (LWC) | ⚡️ 程式碼可覆寫標準頁面檢視機制,通常是單一頁面應用程式的形式 |
| 平台 \| Lightning Web 元件 (LWC) | ⚡️ 程式碼嘗試覆寫或略過執行的平台順序 |
| 平台 \| Visualforce | ⚡️ 程式碼可覆寫標準頁面檢視機制,通常是單一頁面應用程式的形式 |
### 技術債務反模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Intentional](/docs/architect/zh-tw/well-architected/guide/intentional) → [Maintenability](/docs/architect/zh-tw/well-architected/guide/intentional#永續性) → [Technical Debt](/docs/architect/zh-tw/well-architected/guide/intentional#技術債務)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 平台 \| 決策記錄 | ⚡️ 技術債務補償沒有可測量的 KPI |
| 平台 \| 決策記錄 | ⚡️ 技術債務會以技術或 IT 重點的術語考量,與業務無關 |
| 平台 \| 組織 | ⚡️ 不支援或舊版技術的啟用 API 版本早於 30.0 |
| 平台 \| 組織 | ⚡️ 不支援或舊技術已啟用工作流程規則 |
| 平台 \| 組織 | ⚡️ 不支援或舊版技術已啟用 PushTopic 事件 |
| 平台 \| 組織 | ⚡️ 未支援或舊版技術的流程產生器流程已啟用 |
| 平台 \| 組織 | ⚡️ 不支援或舊版技術已啟用一般事件 |
| 平台 \| 組織 | ⚡️ 不支援或舊版技術已啟用 Salesforce Classic 中的使用者 |
| 平台 \| 組織 | ⚡️ 不支援或舊版技術已啟用 Salesforce 至 Salesforce 連線 |
| 平台 \| 組織 | ⚡️ 未支援或舊版技術已啟用 包括: - Salesforce Classic 中的使用者 - Apex 中的 `@future` 使用情況 - 來自非 AppExchange 來源的第三方 Apex - 工作流程規則 - 流程產生器流程 - PushTopic 事件 - 一般事件 - 30.0 之前的 API 版本 - Salesforce 到 Salesforce 連線 |
| 平台 \| 組織 | ⚡️ Apex 中不支援或舊版技術是已啟用的 `@future` 使用狀況 |
| 平台 \| 組織 | ⚡️ 不支援或舊版技術已啟用非 AppExchange 來源的第三方 Apex |
| 平台 \| 藍圖 | ⚡️ 未計畫處理技術債務 |
| 平台 \| 藍圖 | ⚡️ 可傳送項目不明確;開始/結束日期不明確 |
---
# 意圖 - 可讀性
### 設計標準模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Intentional](/docs/architect/zh-tw/well-architected/guide/intentional) → [Readability](/docs/architect/zh-tw/well-architected/guide/intentional#可讀性) → [Design Standards](/docs/architect/zh-tw/well-architected/guide/intentional#設計標準)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Einstein \| 工作人員 | ✅ 您工作人員的語言設定符合您公司的語氣。如果您公司的語氣是正式的,例如財務機構,則您工作人員的語氣設定為「正式」。如果您的公司是非正式的,則語調設定為「偶發」。否則,您的語調設定為「中立」 |
| Einstein \| 組織 | ✅ 提示範本利用格式設定為 LLM 提供內容 單一雜湊用於將簡短的文字區塊標記為提示範本內容的單一單位 |
| Einstein \| 組織 | ✅ 提示範本使用一致的寫入樣式 您的字詞選擇、格式、表情符號和標點符號在範本之間一致 |
| Einstein \| 組織 | ✅ 提示範本簡潔、易於瞭解及使用自然語言。範本會避免產業語法或技術詞彙 |
| Einstein \| 組織 | ✅ 您的提示範本會清楚標記內容與指示。在提示中提供內容後,以文字「指示」開始新的行,後面加上三個引號的指示 (「」) |
| 平台 \| 公司 | ✅ 已核准的 AI 模型會清楚識別並包含預期用途 |
| 平台 \| 公司 | ✅ 可透過使用個案輕鬆找到並識別已批准的設計模式 |
| 平台 \| 公司 | ✅ 小組瞭解要使用 (而非使用) 哪些工具才能完成工作 |
| 平台 \| 組織 | ✅ 程式碼和陳述式自訂項目具有一致且人類可讀的名稱 |
| 平台 \| 組織 | ✅ 資料模型具有一致且統一的物件和欄位名稱 |
| 平台 \| 組織 | ✅ 稽核顯示在報告中一致填寫和參照的欄位等。 |
### 文件模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Intentional](/docs/architect/zh-tw/well-architected/guide/intentional) → [Readability](/docs/architect/zh-tw/well-architected/guide/intentional#可讀性) → [Documentation](/docs/architect/zh-tw/well-architected/guide/intentional#文件)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| Data 360 \| 文件 | ✅ 來源系統會在資料字典中進行清點 資料 360 資料來源會在解決方案設計流程中使用包含來源和目標系統,以及兩者之間欄位對應的資料字典進行記錄 |
| 平台 \| 公司 | ✅ 所有解決方案皆存在業務功能圖表與技術實作詳細資料 |
| 平台 \| 公司 | ✅ 金鑰人員/時間/資訊記錄存在於程式碼和陳述式自訂 |
| 平台 \| 公司 | ✅ 人員可搜尋並尋找相關文件 |
| 平台 \| 組織 | ✅ 程式碼和陳述式自訂項目具有明確的描述 |
---
### 設計標準反模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Intentional](/docs/architect/zh-tw/well-architected/guide/intentional) → [Readability](/docs/architect/zh-tw/well-architected/guide/intentional#可讀性) → [Design Standards](/docs/architect/zh-tw/well-architected/guide/intentional#設計標準)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------------------------------------- |
| Einstein \| 提示範本 | ⚡️ 提示範本使用語法和/或技術詞彙 提示範本包含語法、縮寫和技術詞彙,而非簡要的自然語言 |
| 平台 \| 公司 | ⚡️ 未清楚識別已批准 AI 模型,且不清楚其預期用途 |
| 平台 \| 公司 | ⚡️ 小組使用許多不同的工具完成類似的工作 |
| 平台 \| 公司 | ⚡️ 沒有已批准的設計模式 |
| 平台 \| 公司 | ⚡️ 廠商或新員工需要花費大量時間才能上線 |
| 平台 \| 組織 | ⚡️ 程式碼和陳述性自訂項目沒有一致的名稱 |
| 平台 \| 組織 | ⚡️ 資料模型名稱不一致,而許多物件和欄位似乎是冗餘的 |
| 平台 \| 組織 | ⚡️ 稽核會顯示許多未使用的欄位或各種使用層級,且報告等沒有一致的連結。 |
### 文件反模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Intentional](/docs/architect/zh-tw/well-architected/guide/intentional) → [Readability](/docs/architect/zh-tw/well-architected/guide/intentional#可讀性) → [Documentation](/docs/architect/zh-tw/well-architected/guide/intentional#文件)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| Data 360 \| 組織 | ⚡️ 目標對應的來源會記錄在資料對應畫布中。僅資料來源欄位會在 Data 360 中資料對應畫布中的組態期間,在移動中對應至資料模型物件欄位 |
| 平台 \| 公司 | ⚡️ 難以找到解決方案的什麼/如何/原因,且大多數的小組可能無法使用 |
| 平台 \| 公司 | ⚡️ 人員難以瞭解解決方案以及使用的系統 |
| 平台 \| 公司 | ⚡️ 廠商或新員工需要花費大量時間才能上線 |
| 平台 \| 組織 | ⚡️ 程式碼和陳述式自訂項目沒有描述、具有難以理解的描述,或具有描述,似乎與實際自訂功能不符 |
---
# 意圖 - 策略
### 監管模式
深入瞭解「結構良好」 「[簡單](/docs/architect/zh-tw/well-architected/guide/easy-overview)」 → 「[意圖](/docs/architect/zh-tw/well-architected/guide/intentional)」 → 「[策略」](/docs/architect/zh-tw/well-architected/guide/intentional#策略) → 「[管治」](/docs/architect/zh-tw/well-architected/guide/intentional#監管)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ----------------------------------------------------- |
| 平台 \| 公司 | ✅ 小組成員瞭解應用程式生命週期內負責的項目 |
| 平台 \| 公司 | ✅ 小組和專案僅使用已批准業務使用的 AI 模型 |
| 平台 \| 公司 | ✅ Hot-fixes 有清晰的生產路徑 |
| 平台 \| 公司 | ✅ 使用者可以輕鬆報告程式錯誤與要求功能 |
| 平台 \| 公司 | ✅ 工作項目的優先順序流程已記錄並向所有利害關係人透明 |
| 平台 \| 公司 | ✅ 已清楚記錄「環境」策略,且開發環境符合文件 |
| 平台 \| 公司 | ✅ 生產支援流程清楚 |
| 平台 \| 公司 | ✅ 發行規劃對所有遞送小組成員可預測且透明 |
| 平台 \| 公司 | ✅ 使用者和傳送/維護小組可以清楚瞭解版本 |
### 優先順序模式
深入瞭解「結構良好」 「[簡單](/docs/architect/zh-tw/well-architected/guide/easy-overview)」 → [意圖](/docs/architect/zh-tw/well-architected/guide/intentional) > [策略](/docs/architect/zh-tw/well-architected/guide/intentional#策略) → [優先順序](/docs/architect/zh-tw/well-architected/guide/intentional#優先順序)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | -------------------------------------------------------------------------------------- |
| 平台 \| 公司 | ✅ 已識別所有 KPI 的實作與維護成本 |
| 平台 \| 公司 | ✅ 系統會根據業務影響、需要提供的新工作量,以及需要維護的工作量來排定功能要求的優先順序 |
| 平台 \| 文件 | ✅ 藍圖顯示自動化會根據業務價值排定優先順序 |
| 平台 \| 文件 | ✅ 所有新工作項目都有明確的業務價值度量 (例如,收入增加、流程最佳化節省成本等) |
### 路線圖模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Intentional](/docs/architect/zh-tw/well-architected/guide/intentional) → [Strategy](/docs/architect/zh-tw/well-architected/guide/intentional#策略) → [Roadmapping](/docs/architect/zh-tw/well-architected/guide/intentional#路線圖)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | --------------------------------------------------- |
| 平台 \| 公司 | ✅ 遞送小組瞭解如何根據較長期優先順序評估待處理項目 |
| 平台 \| 公司 | ✅ 小組瞭解誰要執行哪些動作以及如何管理相依性 |
| 平台 \| 公司 | ✅ 利害關係人瞭解工作項目的「原因」 |
| 平台 \| 公司 | ✅ 工作是有意的,即使優先順序必須快速變更 |
| 平台 \| 藍圖 | ✅ 顯示先決條件與相依性 |
| 平台 \| 藍圖 | ✅ 針對受眾量身打造的資訊 (業務或技術) |
| 平台 \| 藍圖 | ✅ 以正確的詳細資料層級傳達資訊 |
| 平台 \| 藍圖 | ✅ 顯示開始與結束日期 |
---
### 治理反模式
深入瞭解「結構良好」 「[簡單](/docs/architect/zh-tw/well-architected/guide/easy-overview)」 → 「[意圖](/docs/architect/zh-tw/well-architected/guide/intentional)」 → 「[策略」](/docs/architect/zh-tw/well-architected/guide/intentional#策略) → 「[管治」](/docs/architect/zh-tw/well-architected/guide/intentional#監管)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | -------------------------------------------------------------------------------------- |
| 平台 \| 公司 | ⚡️ 小組不知道誰負責什麼 |
| 平台 \| 公司 | ⚡️ 小組臨時選取 AI 模型 |
| 平台 \| 公司 | ⚡️ 工作項目沒有明確的優先順序 |
| 平台 \| 公司 | ⚡️ 環境是臨時佈建的,且可能無法以預測的方式重新整理;開發人員通常沒有所需的環境和存取權 |
| 平台 \| 公司 | ⚡️ 無法輕鬆存取文件 |
| 平台 \| 公司 | ⚡️ 您的待處理項目已成為過時且停滯的「計畫銀行」 |
| 平台 \| 公司 | ⚡️ 傳送小組和使用者無法預期發佈 |
| 平台 \| 公司 | ⚡️ 管治機構會作為協助台來疑難排解支援要求 |
| 平台 \| 公司 | ⚡️ 臨時處理熱修復 |
| 平台 \| 公司 | ⚡️ 錯誤報告與功能要求為臨時 |
### 優先順序反模式
深入瞭解「結構良好」 「[簡單](/docs/architect/zh-tw/well-architected/guide/easy-overview)」 → [意圖](/docs/architect/zh-tw/well-architected/guide/intentional) > [策略](/docs/architect/zh-tw/well-architected/guide/intentional#策略) → [優先順序](/docs/architect/zh-tw/well-architected/guide/intentional#優先順序)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ---------------------------------------- |
| 平台 \| 公司 | ⚡️ 與實作和維護自動化相關聯的成本不明確 |
| 平台 \| 公司 | ⚡️ 要求會以臨時或先進/先出為基礎來傳送 |
| 平台 \| 文件 | ⚡️ 藍圖不存在 |
| 平台 \| 文件 | ⚡️ 與工作相關聯的業務值不明確或不存在 |
### 路線對應反模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Intentional](/docs/architect/zh-tw/well-architected/guide/intentional) → [Strategy](/docs/architect/zh-tw/well-architected/guide/intentional#策略) → [Roadmapping](/docs/architect/zh-tw/well-architected/guide/intentional#路線圖)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------------------------- |
| 平台 \| 公司 | ⚡️ 利害關係人經常對正在完成的動作感到挫折和困惑,並在提供新功能時感到自信 |
| 平台 \| 公司 | ⚡️ 工作會從待處理的任何項目提取,且沒有明確的「原因」 |
| 平台 \| 公司 | ⚡️ 小組無法協調相互相依的工作,且經常在不瞭解的情況下重複工作 |
| 平台 \| 公司 | ⚡️ 工作通常為反應性 |
| 平台 \| 藍圖 | ⚡️ 作為專案起始材料而非傳送的成品使用 |
| 平台 \| 藍圖 | ⚡️ 不要協助將利害關係人與遞送小組保持一致 |
| 平台 \| 藍圖 | ⚡️ 包含未針對受眾量身打造的資訊 (例如,相同藍圖內的業務功能與系統) |
| 平台 \| 藍圖 | ⚡️ 混合詳細資料層級 (例如,透過在相同的藍圖中包含系統和元件) |
---
# 相容 - 無障礙功能
### 資料項目模式
深入瞭解「結構良好」 「[信任」](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [合規性](/docs/architect/zh-tw/well-architected/guide/compliant) → [無障礙功能](/docs/architect/zh-tw/well-architected/guide/compliant#無障礙) → [資料項目](/docs/architect/zh-tw/well-architected/guide/compliant#資料項目)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | --------------------------------------------------- |
| 平台 \| 設計標準 | ✅ 會列出標準鍵盤與滑鼠以外可用於資料輸入的所有裝置 |
| 平台 \| 設計標準 | ✅ 系統會列出文字值及其所有支援語言的翻譯 |
| 平台 \| 組織 | ✅ 翻譯工作台中會儲存支援語言的翻譯 |
| 平台 \| 測試計畫 | ✅ 測試步驟包括使用多種類型的輸入裝置來輸入資料 |
| 平台 \| 測試計畫 | ✅ 測試步驟包含多國語言的資料輸入 |
### 瀏覽模式
深入瞭解「結構良好」 「[信任」](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [符合](/docs/architect/zh-tw/well-architected/guide/compliant) → [無障礙功能](/docs/architect/zh-tw/well-architected/guide/compliant#無障礙) → [瀏覽](/docs/architect/zh-tw/well-architected/guide/compliant#瀏覽)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | -------------------------------------------------------------------- |
| 平台 \| 設計標準 | ✅ 會清楚列出可用於瀏覽的所有裝置 (不只是標準鍵盤與滑鼠) |
| 平台 \| 設計標準 | ✅ UI/UX 標準指定所有瀏覽控制項的類型和樣式 |
| 平台 \| 設計標準 | ✅ 系統會清楚列出批准傳達意義或狀態的視覺提示類型,且色彩不是主要提示 |
| 平台 \| 測試計畫 | ✅ 測試計畫包括使用 UI/UX 測試以確保一致的瀏覽路徑 |
| 平台 \| 測試計畫 | ✅ 測試步驟包括使用多種類型的輸入裝置來瀏覽 |
---
### 資料項目反模式
深入瞭解「結構良好」 「[信任」](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [合規性](/docs/architect/zh-tw/well-architected/guide/compliant) → [無障礙功能](/docs/architect/zh-tw/well-architected/guide/compliant#無障礙) → [資料項目](/docs/architect/zh-tw/well-architected/guide/compliant#資料項目)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ----------------------------------------------------------------------- |
| 平台 \| 設計標準 | ⚡️ 僅列出可用於在標準鍵盤與滑鼠以外輸入資料的部份裝置,或未列出任何裝置 |
| 平台 \| 設計標準 | ⚡️ 系統會列出支援的語言以及要翻譯的 UI 元素 |
| 平台 \| 組織 | ⚡️ 翻譯會儲存在自訂標籤中 |
| 平台 \| 測試計畫 | ⚡️ 不包含無障礙測試,或為可存取的資料項目進行臨時測試 |
### 瀏覽防模式
深入瞭解「結構良好」 「[信任」](/docs/architect/zh-tw/well-architected/guide/trusted-overview) → [符合](/docs/architect/zh-tw/well-architected/guide/compliant) → [無障礙功能](/docs/architect/zh-tw/well-architected/guide/compliant#無障礙) → [瀏覽](/docs/architect/zh-tw/well-architected/guide/compliant#瀏覽)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ----------------------------------------------------------------------- |
| 平台 \| 設計標準 | ⚡️ 設計標準不存在或不考慮瀏覽控制項的無障礙需求 |
| 平台 \| 設計標準 | ⚡️ 瀏覽的 UI/UX 標準不一致 |
| 平台 \| 設計標準 | ⚡️ 意義或狀態的視覺提示依賴色彩,或者沒有明確的視覺提示清單供產生器使用 |
| 平台 \| 測試計畫 | ⚡️ 不包含無障礙測試,或針對無障礙瀏覽進行臨時測試 |
---
# 簡單模式與防模式探索器
針對清晰度、自動化和吸引人的使用者體驗而設計。
增加複雜度、降低自動化或影響使用者體驗的作法。
# 自動 - 效率
### KPI 模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Automated](/docs/architect/zh-tw/well-architected/guide/automated) → [Efficiency](/docs/architect/zh-tw/well-architected/guide/automated#效率) → [KPI](/docs/architect/zh-tw/well-architected/guide/automated#kpi)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------------------- |
| Einstein \| 公司 | ✅ 在啟用 Gen AI 功能之前,會識別您特定使用個案的 KPI。在啟用 Gen AI 功能之前,會識別您特定使用個案的 KPI |
| 平台 \| 顯示面板 | ✅ 與 KPI 相關的所有度量都包含在至少一個顯示面板中 |
| 平台 \| 文件 | ✅ 每個自動化的輸出皆為可測量且繫結時間 |
| 平台 \| 文件 | ✅ 會針對每個 KPI 列出負責的利害關係人 |
### 作業邏輯模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Automated](/docs/architect/zh-tw/well-architected/guide/automated) → [Efficiency](/docs/architect/zh-tw/well-architected/guide/automated#效率) → [Operational Logic](/docs/architect/zh-tw/well-architected/guide/automated#作業邏輯)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Data 360 \| 公司 | ✅ 在實作資料聯合之前,會評估區隔重新整理需求。在從外部來源聯合資料之前,請確保從 Data 360 到 Marketing Cloud Engagement 的區段重新整理和啟用標準 12 小時或 24 小時排程符合業務需求。當您使用自帶湖 (BYOL) 資料聯合時,目前不支援快速區隔和啟用 |
| Data 360 \| 文件 | ✅ 針對 Marketing Cloud 與 Data 360 之間的 1:1 或 1:1 多個連線設計 許多 CRM 例項可以連線至多個 Data 360 例項,但多個 Marketing Cloud 例項無法連線至相同的 Data 360 例項。然而,單一 Marketing Cloud 例項可以連線至不同的 Data 360 例項 |
| Data 360 \| 組織 | ✅ 最佳化區隔排程 僅針對需要區段的持續時間設定發佈排程。臨時或一次性行銷活動應使用「不重新整理」的「發佈排程」。Evergreen (也稱為「永遠開啟」) 行銷活動應使用每 12 小時發佈排程。針對 Evergreen 行銷活動,請僅在行銷活動啟用的未來設定「結束日期」 |
| Data 360 \| 組織 | ✅ 最佳化已計算洞察排程 如果「已計算洞察」只需要執行一次,請使用「未排程」選項,並僅手動發佈一次。如果需要的頻率少於每 24 小時,請考慮其他自動化選項,例如「流程」 |
| Data 360 \| 組織 | ✅ 使用「資料動作」建立「平台事件」以改善作業邏輯 使用「資料動作」發佈平台事件表示您可以將來自 Data 360 的資料動作 (發佈事件) 與您在組織中需要發生的動作 (叫用流程和 Apex 觸發) 分開。這會增加您組織可從 Data 360 回應的動作規模,並進一步控制您的作業邏輯。 |
| Einstein \| 工作人員 | ✅ 將工作人員指示定義為反覆建立/測試流程的一部分 建立必要的工作人員主題欄位 (名稱、描述、範圍),並新增相關聯的動作,然後開始測試主題。逐步新增指示以引導您的工作人員執行主題,並在反覆建立/測試迴圈中以所需的方式選取動作 |
| Einstein \| 組織 | ✅ 您的提示範本會指定個性人物和個性人物的目標。您的提示範本包含內容相關資訊,例如 LLM 應假設的個性人物,以及該個性人物的目標。例如,包含語言,例如「您是想要邀請主要客戶加入即時事件的行銷主管。」 |
| Einstein \| 搜尋索引 | ✅ 在建立結構化 DMO 的搜尋索引時省略具有低 Entropy 的欄位 若要改善相關性,請考慮排除具有非常低基數的資料點 (清單中不同元素的數目) 或低 Entropy 的資料點 (集中在幾個值的清單項目)。一般而言,這些欄位提供幾乎沒有用於使用向量搜尋找相關資料的實用資訊 |
| 平台 \| Apex | ✅ SOQL 陳述式是選擇性的比較運算子使用正邏輯 (即 `INCLUDES`、`IN`) 作為 SOQL 陳述式中的主要或唯一邏輯 |
| 平台 \| Apex | ✅ SOQL 陳述式是選擇性的 `= NULL` 使用狀況、`!= NULL` 罕見且/或一律遵循 SOQL 陳述式中的正比較運算子 |
| 平台 \| Apex | ✅ SOQL 陳述式是選擇性的 SOQL 中不會出現任何 `LIMIT 1` 陳述式 |
| 平台 \| Apex | ✅ SOQL 陳述式是選擇性的 `ALL ROWS` 關鍵字的使用狀況不會出現在 SOQL 陳述式中 |
| 平台 \| Apex | ✅ 迴圈內沒有 SOQL 顯示 |
| 平台 \| Apex | ✅ 所有萬用字元條件都會顯示在 SOSL 中 |
| 平台 \| Apex | ✅ SOQL 陳述式是選擇性的 沒有 SOQL 陳述式使用 `LIKE` 比較或部分文字比較 |
| 平台 \| Apex | ✅ SOQL 封裝在 `try-catch` 中 |
| 平台 \| Apex | ✅ 沒有變數可參照硬式編碼值 (針對記錄類型、使用者等)。 |
| 平台 \| 設計標準 | ✅ 自動化中的同步和非同步作業使用個案會清楚概述為設計標準的一部分 |
| 平台 \| 文件 | ✅ 系統會清楚概述自動化的計畫式與潛在執行路徑 |
| 平台 \| 流程 | ✅ 沒有變數可參照硬式編碼值 (針對記錄類型、使用者等) |
| 平台 \| 流程 | ✅ 流程 (包含程序) 會在大型資料量內容中將邏輯交由 Apex |
| 平台 \| 流程 | ✅ 子流程用於需要在整個業務中重複使用的流程區段 |
| 平台 \| 流程 | ✅ 所有自動啟動流程和程序都會使用決策和/或暫停元素來評估輸入條件,並防止對大型資料量執行無限迴圈或執行 |
### 流程設計模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Automated](/docs/architect/zh-tw/well-architected/guide/automated) → [Efficiency](/docs/architect/zh-tw/well-architected/guide/automated#效率) → [Process Design](/docs/architect/zh-tw/well-architected/guide/automated#流程設計)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------------- |
| Data 360 \| 組織 | ✅ 最佳化資料轉換內批次轉換中已處理的列總數,使用畫布上的篩選活動來僅隔離需要處理才能成功轉換的列 |
| Data 360 \| 組織 | ✅ 合併跨已計算洞察的維度,而不是以每個維度撰寫多個已計算洞察,盡可能將兩個維度合併為一個已計算洞察 |
| 平台 \| Apex | ✅ 每個類別都提供單一特定用途 |
| 平台 \| Apex | ✅ 每個方法都會執行特定的細微工作 |
| 平台 \| Apex | ✅ 所有輸入變數在類別中都有明確的目的 |
| 平台 \| Apex | ✅ 程式碼執行需要最少數量的資源 |
| 平台 \| 流程 | ✅ 僅在無法使用現有系統資料時要求使用者提供資料 |
| 平台 \| 流程 | ✅ 流程以包含主要流程和支援子流程的階層結構進行組織 |
| 平台 \| 流程 | ✅ 流程內所有使用者輸入都具有明確的目的 |
| 平台 \| 流程 | ✅ 每個流程都提供單一特定用途 |
| 平台 \| 流程 | ✅ 每個步驟都會執行特定的細微工作 |
---
### KPI 反模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Automated](/docs/architect/zh-tw/well-architected/guide/automated) → [Efficiency](/docs/architect/zh-tw/well-architected/guide/automated#效率) → [KPI](/docs/architect/zh-tw/well-architected/guide/automated#kpi)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------ |
| 平台 \| 顯示面板 | ⚡️ KPI 報告不存在,或顯示面板缺少與某些 KPI 相關的度量 |
| 平台 \| 文件 | ⚡️ KPI 存在於沒有負責的利害關係人的情況下 |
| 平台 \| 文件 | ⚡️ KPI 不存在於自動化,或有不明確的測量時間範圍 |
### 作業邏輯反模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Automated](/docs/architect/zh-tw/well-architected/guide/automated) → [Efficiency](/docs/architect/zh-tw/well-architected/guide/automated#效率) → [Operational Logic](/docs/architect/zh-tw/well-architected/guide/automated#作業邏輯)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Data 360 \| 文件 | ⚡️ 針對 Marketing 與 Data 360 之間的許多:1 連線設計 圖表或解決方案設計文件會指定多個透過 Marketing Cloud 連接器連線至單一 Data 360 例項的 Marketing Cloud 例項 |
| Data 360 \| 組織 | ⚡️ 資料同盟在未評估區隔重新整理需求的情況下實作 資料同盟會針對需要快速區隔和啟用的資料集利用 (1 小時或 4 小時排程傳送啟用資料),相較於標準 12 小時或 24 小時排程 |
| Data 360 \| 組織 | ⚡️ 資料聯合實作而不評估資料轉換需求外部 DLO 包含串流資料轉換所需的資料 |
| Einstein \| 工作人員 | ⚡️ 在設計流程開始時定義工作人員指示 在測試工作人員執行主題和選取適當動作前,會新增指示 |
| 平台 \| Apex | ⚡️ SOQL 陳述式為非選擇性 使用 `NOT` 的比較,使用 `NOT IN` 條件作為 SOQL 陳述式中的主要或唯一比較運算子 |
| 平台 \| Apex | ⚡️ SOQL 陳述式為非選擇性 `ALL ROWS` 關鍵字會用於 SOQL 陳述式 |
| 平台 \| Apex | ⚡️ SOQL 陳述式為非選擇性 `= NULL`,`!= NULL` 條件會作為 SOQL 陳述式中的主要或唯一比較運算子使用 |
| 平台 \| Apex | ⚡️ 變數具有硬式編碼值 |
| 平台 \| Apex | ⚡️ SOQL 會顯示在迴圈內 |
| 平台 \| Apex | ⚡️ SOQL 陳述式為非選擇性 `LIKE`,且萬用字元篩選條件經常出現在 SOQL 陳述式中的 SOQL 陳述式中 |
| 平台 \| Apex | ⚡️ SOQL 不包含在 `try-catch` 中 |
| 平台 \| Apex | ⚡️ SOQL 陳述式為非選擇性 `LIMIT 1` 陳述式會顯示在 SOQL 中 |
| 平台 \| Apex | ⚡️ SOSL 很少或不一致用於萬用字元選取條件 |
| 平台 \| 設計標準 | ⚡️ 未處理同步和非同步作業的使用個案 |
| 平台 \| 文件 | ⚡️ 自動化叫用未記錄 |
| 平台 \| 流程 | ⚡️ 變數具有硬式編碼值 |
| 平台 \| 流程 | ⚡️ 必須先手動停用流程 (包含程序),才能大量載入資料 |
| 平台 \| 流程 | ⚡️ 流程的部分會在流程之間重複,而非使用子流程 |
| 平台 \| 流程 | ⚡️ 流程 (包含程序) 會觸發「未處理例外」通知 |
| 平台 \| 流程 | ⚡️ 即使是簡單的流程也會導致與管理員限制相關的錯誤 |
### 流程設計反模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Automated](/docs/architect/zh-tw/well-architected/guide/automated) → [Efficiency](/docs/architect/zh-tw/well-architected/guide/automated#效率) → [Process Design](/docs/architect/zh-tw/well-architected/guide/automated#流程設計)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------------- |
| 平台 \| Apex | ⚡️ 課程適用於多種用途 |
| 平台 \| Apex | ⚡️ 方法執行多個工作,或方法執行不符合其所屬類別所述用途的工作 |
| 平台 \| Apex | ⚡️ 輸入變數實際不會用於方法 |
| 平台 \| Apex | ⚡️ 方法不必要地從資料庫或外部系統提取資料 |
| 平台 \| 流程 | ⚡️ 流程需要額外輸入才能提供內容 |
| 平台 \| 流程 | ⚡️ 流程可用於多種用途 |
| 平台 \| 流程 | ⚡️ 相關步驟群組包含與其他流程中步驟群組重疊的功能 |
| 平台 \| 流程 | ⚡️ 流程在儲存的資料可以改用時要求使用者輸入 |
| 平台 \| 流程 | ⚡️ 流程需要未使用資料的輸入 |
---
# 自動 - 資料完整性
### 資料處理模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Automated](/docs/architect/zh-tw/well-architected/guide/automated) → [Data Integrity](/docs/architect/zh-tw/well-architected/guide/automated#資料完整性) → [Data Handling](/docs/architect/zh-tw/well-architected/guide/automated#資料處理)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Data 360 \| 資料字典 | ✅ 存在所有資料來源和資料湖物件的欄位級資料和優先順序邏輯 |
| Data 360 \| 組織 | ✅ 複合索引鍵可在資料集中沒有唯一的單一欄位時,用於建構唯一的主要索引鍵。 |
| Data 360 \| 組織 | ✅ 使用 CRM 連接器的資料串流可利用每兩週完整重新整理。當使用 CRM 連接器進行增量負載時,系統會每兩週起始一次完整重新整理。儘管這可能會增加資料取用,但會保護中繼資料 (例如公式欄位) 的資料完整性,這些資料不會觸發 DML 交易,因此不會包含在增量負載中 |
| Data 360 \| 組織 | ✅「個人識別碼」用於將 Data 360 資料對應至其他系統,使用「個人識別碼」將 Data 360 中的個人對應至其他系統。例如,Marketing Cloud 參與訂閱者金鑰應對應至 Data 360 中的「個人識別碼」 |
| Data 360 \| 組織 | ✅ 完全合格金鑰用於精確解譯資料 組織中所有包含金鑰值的 DLO 都有金鑰限定詞欄位,且已啟用完全合格金鑰 (FQK),以確保避免多個資料串流協調為單一資料模型物件 (DMO) 時可能發生的衝突 |
| Data 360 \| 組織 | ✅ 完全標準化比對方法可在比對規則中使用時。完全標準化比對會轉換來源資料,以解決常見比對問題,例如結尾空格、格式不一致和特殊字元。在可用的欄位上運用此方法,而非使用模糊比對,除非您已設定多個規則集進行測試並確認合併率不符合業務需求 |
| Einstein \| 文件 | ✅ 資料實用性已記錄為 AI 專案設計的一部分 您的公司資料實用性的定義已記錄並操作化,以改善 AI 回應 |
| 平台 \| Apex | ✅ Future Apex 僅供呼叫或系統物件 DML 使用 |
| 平台 \| Apex | ✅ 非同步 Apex 叫用會使用在交易之間可排入至「鏈結」複雜的 DML |
| 平台 \| Apex | ✅ 批次 Apex 專為大量資料使用。批次 Apex 最適合處理大量資料。非同步 Apex 的限制高於同步 Apex,因此可以完成更多工作。盡可能避免使用非常小的批次大小,以避免「流程控制」(流程溢出)、額外開支和耗盡每日非同步 Apex 限制的後果 |
| 平台 \| Apex | ✅ 所有同步 DML 陳述式或資料庫類別方法都會在觸發執行內容之前執行 |
| 平台 \| Apex | ✅ 大量 API 僅在必須處理大量資料時使用 大量 API 會在必須處理大量資料時使用。利用原生 SOAP 和 REST API 來處理較少的資料量 |
| 平台 \| 資料字典 | ✅ 存在資料湖物件到資料模型物件的欄位對應 |
| 平台 \| 流程 | ✅ 在使用者環境中啟動的所有流程會將所有系統環境交易摘要到子流程 (會一直放在「暫停」元素之後),以建立新的交易 |
| 平台 \| 流程 | ✅ 所有記錄觸發流程都填入觸發順序值 |
| 平台 \| 流程 | ✅ 涉及外部系統呼叫或長時間執行程序的流程會使用非同步路徑 |
| 平台 \| 流程 | ✅ 使用協調器建立相關資料作業的複雜序列 (而非在單一流程內叫用多個子流程) |
| 平台 \| 組織 | ✅ 身分解析協調規則遵循資料字典中的優先順序邏輯 |
### 錯誤處理模式
深入瞭解「良好的結構」 「[簡單](/docs/architect/zh-tw/well-architected/guide/easy-overview)」 → 「[自動化」](/docs/architect/zh-tw/well-architected/guide/automated) → 「[資料完整性」](/docs/architect/zh-tw/well-architected/guide/automated#資料完整性) → [錯誤處理」](/docs/architect/zh-tw/well-architected/guide/automated#錯誤處理)
| 要在哪裡尋找?
產品區域 \| 位置 | 優良的外觀為何?
模式 |
| --------------------------------- | --------------------------------------------------------------------------------------------- |
| Einstein \| 組織 | ✅ 提示指定預期的輸出「包含 LLM 的直接指示」,以僅產生預期的內容類型。 |
| 平台 \| Apex | ✅ 自訂例外用於建立進階錯誤傳訊和邏輯 |
| 平台 \| Apex | ✅ 程式碼會將所有 DML、SOQL、呼叫和其他重要程序步驟包含在 `try-catch` 區塊中 |
| 平台 \| Apex | ✅ 資料庫類別方法只能用於所有資料作業 (而非 DML) |
| 平台 \| Apex | ✅ 在非同步與大量環境中,會使用「資料庫」類別方法而非 DML |
| 平台 \| Aura | ✅ JavaScript 會以 `try-catch` 區塊括住所有資料作業和重要程序步驟 |
| 平台 \| Aura | ✅ 在 `try-catch` 區塊內,會在 throw 陳述式中使用原生 JavaScript `Error` (不使用 `$A.error()`) |
| 平台 \| Aura | ✅ 所有可復原錯誤邏輯都會顯示在 `catch` 陳述式中,並提供清楚的使用者訊息 |
| 平台 \| 流程 | ✅ 具有資料作業、呼叫和其他重要處理邏輯的流程具有所有關鍵動作的錯誤路徑 |
| 平台 \| 流程 | ✅ 畫面流程一律使用錯誤連結向使用者顯示錯誤 |
| 平台 \| 流程 | ✅ 系統會為畫面上顯示的錯誤設定自訂錯誤訊息 |
| 平台 \| Lightning Web 元件 (LWC) | ✅ JavaScript 會以 `if ()`/`else if ()` 區塊括住所有資料作業和重要程序步驟 |
| 平台 \| Lightning Web 元件 (LWC) | ✅ 所有 `@wire` 函數都使用 API 提供的 `data` 和 `error` 內容 |
| 平台 \| Lightning Web 元件 (LWC) | ✅ 所有 `if (error)`/`else if (error)` 陳述式都包含處理錯誤的邏輯,並提供資訊豐富的訊息 |
---
### 資料處理防模式
深入瞭解 Well-Architected [Easy](/docs/architect/zh-tw/well-architected/guide/easy-overview) → [Automated](/docs/architect/zh-tw/well-architected/guide/automated) → [Data Integrity](/docs/architect/zh-tw/well-architected/guide/automated#資料完整性) → [Data Handling](/docs/architect/zh-tw/well-architected/guide/automated#資料處理)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| Data 360 \| 組織 | ⚡️ 具有支援正規化比對方法的欄位使用模糊比對 會將模糊比對套用至提供完全標準化比對方法的欄位 |
| Data 360 \| 組織 | ⚡️ 統一個人識別碼會被假設為固定的統一個人識別碼會作為主要識別碼或全域識別碼,供其他組織使用 |
| Data 360 \| 組織 | ⚡️ 事件日期對應至可變動的 DateTime 值事件日期對應至可變動的 DateTime 欄位,例如 LastUpdated 或 LastExtracted |
| Data 360 \| 組織 | ⚡️ 主要索引鍵會對應至非唯一的欄位 如果資料集中不存在任何欄位,則選擇任何欄位作為資料串流的主要索引鍵,而不先驗證所選欄位是否為唯一 |
| Data 360 \| 組織 | ⚡️ 批次載入資料,然後嘗試即時啟用資料。例如,常見但有缺陷的方法可能涉及從 Amazon S3 分類每小時載入資料,然後透過資料動作啟用資料 |
| 平台 \| Apex | ⚡️ DML 陳述式會定期顯示在觸發內容後要叫用的程式碼中 |
| 平台 \| Apex | ⚡️ 批次 Apex 工作範圍大小非常小 使用非常小的批次大小 (例如範圍大小 = 1) |
| 平台 \| Apex | ⚡️ 批次 Apex 用於外部呼叫 使用批次 Apex 將大量 Salesforce 資料推送至外部系統 |
| 平台 \| Apex | ⚡️ 使用「立即發佈平台事件」臨時發佈 (即時) 事件,而非使用「認可後發佈」(非即時),無論發佈訂單需求或記錄鎖定風險為何。 |
| 平台 \| Apex | ⚡️ 非同步 Apex 功能會以任意方式使用 Future 方法,且 Queueable Apex 會以不一致的方式或以互換方式使用 |
| 平台 \| Apex | ⚡️ 非同步 Apex 功能是以任意方式使用的;開發人員不知道何時使用 future vs. queueable Apex,何時將 DML 交付批次工作 |
| 平台 \| Apex | ⚡️ 極少使用非同步 Apex |
| 平台 \| Apex | ⚡️ 非同步 Apex 功能被任意使用 資料庫作業沒有明確且一致的邏輯,可在需要時將執行傳送至批次 Apex |
| 平台 \| 資料字典 | ⚡️ 不包含資料湖物件到資料模型物件的欄位對應 |
| 平台 \| 資料字典 | ⚡️ 不包含資料來源和資料湖物件的欄位級資料和優先順序邏輯 |
| 平台 \| 流程 | ⚡️ 使用從畫面元件輸出的集合執行 DML 當該集合是來自畫面元件的輸出時,在建立、更新或刪除元素上利用「使用記錄或記錄集合中的識別碼和所有欄位值」設定 |
| 平台 \| 流程 | ⚡️ 記錄觸發流程完全不使用觸發順序屬性,或不一致使用觸發順序值 |
| 平台 \| 流程 | ⚡️ 非同步路徑不會一直或完全使用 |
| 平台 \| 流程 | ⚡️ 大型單一流程會嘗試協調相關資料作業的複雜序列 (含或不含子流程) |
| 平台 \| 組織 | ⚡️ 身分解析協調規則不遵循資料字典中的優先順序邏輯 |
### 錯誤處理反模式
深入瞭解「良好的結構」 「[簡單](/docs/architect/zh-tw/well-architected/guide/easy-overview)」 → 「[自動化」](/docs/architect/zh-tw/well-architected/guide/automated) → 「[資料完整性」](/docs/architect/zh-tw/well-architected/guide/automated#資料完整性) → [錯誤處理」](/docs/architect/zh-tw/well-architected/guide/automated#錯誤處理)
| 要在哪裡尋找?
產品區域 \| 位置 | 要避免什麼?
Anti-Pattern |
| --------------------------------- | --------------------------------------------------------------------------------------------------- |
| 平台 \| Apex | ⚡️ DML、SOQL、呼叫或其他重要程序步驟不會一直封裝在試用點閱區塊中 |
| 平台 \| Apex | ⚡️ 未使用資料庫類別方法 |
| 平台 \| Apex | ⚡️ 資料作業僅使用 DML 進行 |
| 平台 \| Apex | ⚡️ `System.debug` 陳述式會顯示在生產程式碼中 (且不會加上註解) |
| 平台 \| Aura | ⚡️ JavaScript 不會一致將資料作業和重要程序步驟包含在 `try-catch` 區塊中 |
| 平台 \| Aura | ⚡️ 元件使用 `$A.error()` |
| 平台 \| Aura | ⚡️ 可復原錯誤邏輯不會一直顯示在 `catch` 陳述式中,且使用者的錯誤訊息不明確 |
| 平台 \| 流程 | ⚡️ 流程不會一直或完全使用錯誤路徑 |
| 平台 \| 流程 | ⚡️ 不使用自訂錯誤訊息,因此使用者會看到預設的「此流程發生未處理的錯誤」訊息 |
| 平台 \| Lightning Web 元件 (LWC) | ⚡️ `@wire` 函數不使用 API 提供的 `data` 和 `error` 內容 (或不一致使用這些內容) |
| 平台 \| Lightning Web 元件 (LWC) | ⚡️ 若完全使用,`if (error)`/`else if (error)` 陳述式實際上不包含處理錯誤的邏輯,並提供實用的錯誤訊息 |
| 平台 \| Lightning Web 元件 (LWC) | ⚡️ JavaScript 不會一律將 `if ()`/`else if ()` 區塊與資料作業或重要程序步驟搭配使用 |
---