# architect 適切に設計された (well-architected) - Full Documentation > 更新スケジュールについては、[こちら](/docs/architect/ja-jp/well-architected/guide/contributors)を参照してください。 ## はじめに システムは、ユーザーがアプリケーションにアクセスして簡単に使用できるようにすることで、ユーザーがより質の高い作業ができたと感じ、システムでアプリケーションを使用したくなるようにすることで、魅力的な行動を示します。 エンゲージメント行動は、ユーザーの採用だけでなく、全体的な従業員満足度や顧客満足度にも直接関連するため、ビジネスにとって重要です。エンゲージ動作は、サポート要求を減らすのにも役立ち、ユーザーからの機能要求の品質を高めるのに役立ちます。 エンゲージ行動を作成する際の課題の 1 つは、客観的な指標のみで測定することが難しいことです。代わりに、ユーザーの主観的なエクスペリエンスによって評価されます。ユーザーは、エンゲージアプリケーションが真の価値を提供すると感じています。魅力的なアプリケーションは、[アクセス可能で](/docs/architect/ja-jp/well-architected/guide/compliant#アクセシビリティ)、邪魔にならず、わかりやすくなっています。最小限のオンボーディングとトレーニングが必要です。また、明確な方法を使用して、ユーザーエラーを積極的に防止します。 もう 1 つの課題は、エンゲージメントの目標が、システムのユーザーインタラクションの種別によって異なることが多いことです。たとえば、ケースを管理する内部ユーザーと、Web サイトのフォームから情報を送信する外部ユーザーの目標を設定できます。魅力的なシステムを設計するためには、機能とページの組み立てを開始する前に、作成しようとしているエンゲージメントの種別とユーザーがエンゲージを希望する理由を慎重に検討する必要があります。 ユーザーエクスペリエンス (UX) デザイナーと連携することで、魅力的なアプリケーションの配信に関してより効果的な意思決定を行うことができます。アーキテクチャの観点からは、ユーザーの採用と保持は健全なシステムの重要な要素です。魅力的なアーキテクチャにより、ユーザーが楽しくないシステムで時間を費やすことを避けるためにプロセスを急いだり、ステップをスキップしたりすることによって発生するデータ品質の問題の可能性を低減できます。対外システムの場合、魅力的なアーキテクチャにより、システムを扱いやすくなった顧客が組織でより多くのビジネスを行うことを選択できるため、収益と顧客維持率を高めることができます。 合理化された有益な環境を提供することに集中することで、より魅力的なアプリケーションを作成できます。 ## 合理化 合理化されたアプリケーションは操作が簡単で、情報やデータ入力タスクを明確に表示でき、さまざまなフォーム要素に適応できます。合理化されたアプリケーションには、ユーザーが他の一般的なアプリケーションで使い慣れた環境パターンも含まれています。たとえば、ほとんどの Web ブラウザーでは、ユーザーがリンクを右クリックすると、最上位のオプションとして「新しいタブで開く」が表示されます。タブを含む合理化されたアプリケーションも同じパターンに従います。 非効率的なアプリケーション環境の影響は、個々のアプリケーションの範囲を超えて広がる可能性があります。アプリケーション エクスペリエンスが低いと、ユーザーの Trust が損なわれます。より多くの種類のビジネスクリティカルなアプリケーションや顧客向けアプリケーションがデジタルチャネルに移行すると、主要な関係者のロイヤルティが失われる可能性があります。 アプリケーションの複雑さ、フォーム設計、フォーム要素に意図的に取り組むことで、アプリケーションをより合理化できます。 ### アプリケーションの複雑さ アプリケーションの複雑さを最小限に抑えると、ユーザーには関連するメニュー項目、タブ、ナビゲーションコントロールのみが表示されます。ユーザーグループ、ユーザー権限、適切なアプリケーション環境間の対応付けを作成する必要があります。これらの対応付けを使用して、特定のユーザーに表示するアプリケーション環境を理解し、その環境を提供するために必要な論理的な制御をアプリケーションに提供します。 ユーザーが複雑すぎると、さまざまなエクスペリエンスが低下する可能性があります。 - ユーザーには、不要なタブや無関係なタブが表示され、空白の画面に移動し、無効またはブロックされたリンクが表示されることがよくあります。 - 「ロールが X の場合、このタブを無視...」のような不要な指示や役に立たない指示は、トレーニングやイネーブルメント資料に表示されます。 - ナビゲーションメニューが乱雑になっていると、ユーザーは作業に必要な項目を見つけるために余分な時間を費やすことになります。 これらのエクスペリエンスが低いと、採用率と満足度が低下します。 アプリケーションの適切な複雑さのレベルを判断するときは、次の点を考慮してください。 - ユーザーが実行する必要がある作業の優先度に基づいてメニュー、タブ、その他のナビゲーションコントロールを整理します。 - ユーザーがアプリケーションを使用するためだけに学習する必要がある新しい動作の導入は避けてください。 - ユーザーがユーザーインターフェースの側面をカスタマイズできるようにする機能へのアクセス権を削除しないでください。 - 権限セットを使用して、拡張または縮小されたナビゲーションオプションを提供します。 - Lightning ページの[有効化の割り当て](https://help.salesforce.com/s/articleView?id=sf.lightning_page_getting_into_salesforce1.htm)を合理化します。アプリケーションあたりのアクティブな Lightning ページ数を最小限に抑えます。動的フォーム、権限セット、条件付き表示を使用して、項目をアプリケーションの Lightning ページに追加します。これは、プロファイルによって有効化および割り当てられた複数の Lightning ページを管理する代わりに実行します。 次の[パターンとアンチパターン](/docs/architect/ja-jp/well-architected/guide/engaging#合理化されたアプリケーションパターンとアンチパターン)のリストは、Salesforce 組織でのアプリケーションの複雑さ管理が適切 (および不適切) であることを示しています。これらを使用して、アプリケーション設計を検証または改善できます。 アプリケーションの複雑さの管理に役立つ Salesforce ツールについての詳細は、「[Tools Relevant to Engaging](/docs/architect/ja-jp/well-architected/guide/engaging#エンゲージメントに関連するツール) (エンゲージメントに関連するツール)」を参照してください。 ### フォーム 合理化されたフォームでは、情報が論理シーケンスに整理され、迅速なデータ入力がサポートされ、必要なステップが最小限に抑えられます。また、[便利な](/docs/architect/ja-jp/well-architected/guide/engaging#役に立つ)クライアント側のデータ検証メッセージも使用できるため、フォームの送信サイクルを繰り返す必要がなくなります。 フォームを設計するときは、次の点を考慮してください。 - **関連フィールドをグループ化**します。プロセスまたはデータ入力タスクの同じステップに関連する項目をグループ化します。現在の ToDo に直接関連しない項目を削除します。 - **データ入力と検証を早期**に行います。ユーザーがデータを入力する必要がある項目は、フォームの早い段階で表示されます。データ書式設定やデータの欠落に関する問題を項目レベルでできるだけ早く (つまり、ユーザーが次のステップに移動したりフォームを送信したりする前に) 明らかにすることをお勧めします。また、ユーザーが項目にデータを入力する前に項目レベルのエラーを表示しないようにします。 - **データ入力タスク**を最小限に抑えます。できるだけ多くの項目を事前入力またはオートコンプリートして、データ入力エラーを最小限に抑え、効率を向上させます。必須または重要なデータの入力のみをユーザーに求めます。現在のビジネスプロセスに関連しないデータ入力を排除します。可能な場合は、自由形式のテキスト項目の代わりに選択リストを使用して、有効なオプションの選択を適用し、同じ回答のバリエーションを減らします。 - **サーバへの送信**を最小限に抑えます。複数ステップフォームでデータを複数回サーバーに送信しないでください。すべてのカスタム [LWC](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.apex_result_caching) または [Aura](https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/controllers_server_storable_actions.htm) コンポーネントでクライアント側キャッシュを使用してナビゲーションまたはページネーションアクションを処理します。(Salesforce Lightning Experience および Salesforce モバイルアプリケーションでは、デフォルトでクライアント側キャッシュが使用されます)。ユーザーがサーバーにデータを 1 回のみ送信するようにフォームを設計します。フォームを送信する前にクライアント側でユーザー入力を検証します。これにより、意図しないユーザー送信を最小限に抑え、重複またはダーティなトランザクションによってバックエンドの帯域幅が消費されることを防止し、より適切[なデータ処理](/docs/architect/ja-jp/well-architected/guide/automated#データ処理)を設計するのに役立ちます。 - **フォーム状態の管理**。クライアント側キャッシュは、ナビゲーションやページネーションなどの動作に役立つだけでなく、断続的な接続の問題によるデータ損失を最小限に抑えるのに役立ちます。また、状態を効果的に管理することで、アプリケーションはサーバーへのデータ送信を適切に調整し、トランザクションの重複を防止できます。また、サーバー側のアクションの状況に基づいて、関連性の高いメッセージをタイムリーにユーザーに表示できます。合理化されたフォームでは、データ操作は 1 回のみ送信され、ユーザーはサーバーで長時間実行されている操作が完了するまで待つ必要はありません。 - **アクセシビリティ標準に準拠**します。アプリケーションの利用者を最大化し、すべての顧客をアプリケーションの対象に含めるには、フォーム設計で[アクセシビリティ](/docs/architect/ja-jp/well-architected/guide/compliant#アクセシビリティ)の標準を適用します。 合理化されたフォームは、アプリケーションの[データの整合性](/docs/architect/ja-jp/well-architected/guide/automated#データ整合性)を高め、アプリケーションがユーザーにどれほど[役立つ](/docs/architect/ja-jp/well-architected/guide/engaging#役に立つ)かを示すのに役立ちます。また、ユーザーはエラーに対処しやすくなり、フォーム送信の状態を明確に把握できるため、サポートチケットや要求を減らすこともできます。さらに、合理化されたフォームにより、迅速かつ効率的なデータ入力が可能になり、ユーザーはより長い時間かかるプロセスが完了するまで待機することなく、さらに作業を進めることができます。 次の[パターンとアンチパターン](/docs/architect/ja-jp/well-architected/guide/engaging#合理化されたアプリケーションパターンとアンチパターン)のリストは、Salesforce 組織での適切な (および不適切な) フォーム設計を示しています。フォームデザインの検証や改善に使用できます。 より合理化されたフォームの作成に役立つ Salesforce ツールについての詳細は、「[Tools Relevant to Engaging](/docs/architect/ja-jp/well-architected/guide/engaging#エンゲージメントに関連するツール) (エンゲージメントに関連するツール)」を参照してください。使用事例に適したフォームツールの選択に関する具体的な指針については、「[Architect’s Decision](/docs/architect/ja-jp/decision-guides/guide/build-forms#重要ポイント) Guide to Building Forms with Salesforce (Salesforce を使用したフォームの作成に関するアーキテクトの決定ガイド)」を参照してください。 ### フォーム要素 エンゲージメントアプリケーションは、さまざまなデバイスやインタラクション種別、フォーム要素に適切に適応します。デバイス種別に応じて、さまざまな種類のユーザー操作が容易 (または困難) になり、フォームや項目の読みやすさも変わります。フォーム要素は、画面のサイズに加えて、ユーザーが画面を操作する方法も示します。タッチスクリーンを使用するデバイスが増加し、一部のユーザーは[アクセシビリティ](/docs/architect/ja-jp/well-architected/guide/compliant#アクセシビリティ)のために特殊なデバイスを使用することもあります。フォームを設計するときは、次の点を考慮してください。 フォーム要素のバリエーションを考慮しないと、次のようなさまざまな問題が発生する可能性があります。 - データ品質が低い - 使用できないアプリケーションインターフェース - サポートエージェントのトラブルシューティングまたは「代理注文」セッションの増加 - ユーザーの採用率が低い、有効ユーザー数が少ない、アプリケーションの「放棄」率が高い Salesforce アプリケーションのフォーム要素間の相互運用性を考慮して設計するには、次の点を考慮してください。 - **すべてのアプリケーションでサポートされているフォーム要素を特定します。** - **入力メソッドとユーザーのアクセシビリティのニーズを特定します。**詳細は、「[アクセシビリティ](/docs/architect/ja-jp/well-architected/guide/compliant#アクセシビリティ)」を参照してください。 - **可能な場合は、[標準機能](/docs/architect/ja-jp/well-architected/guide/intentional#標準機能とカスタム機能)を使用してデバイス間で適応型環境を提供します。** - Salesforce が提供する [Lightning ページテンプレート](https://help.salesforce.com/s/articleView?id=sf.lightning_page_templates.htm&type=5)では、デフォルトでさまざまなフォーム要素がサポートされます。Aura を使用してカスタム Lightning ページテンプレートを開発する場合、開発者はフォーム要素情報をコンポーネント設計ファイルに組み込む必要があります。 - Salesforce が提供する[標準ページコンポーネント](https://help.salesforce.com/s/articleView?id=sf.lightning_page_components.htm&type=5)は、サポートされるフォーム要素での表示を処理します。LWC または Aura を使用してカスタムコンポーネントを作成する場合、開発者は幅認識を処理し ([Aura](https://developer.salesforce.com/docs/atlas.en-us.238.0.lightning.meta/lightning/components_config_for_app_builder_width_aware.htm?q=width) と [LWC](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/use_width_aware) では実装が異なります)、コンポーネントの設計ファイル内でフォーム要素のサポートを宣言する必要があります。 - **すべての[デバイスでフォーム](/docs/architect/ja-jp/well-architected/guide/engaging#フォーム)**の合理化に関するガイダンスに従います。 - **主要なフォーム要素のテスト計画 (および適切なテスト) を作成します。**理想的には、すべてのアプリケーションのすべてのデバイスとフォーム要素でテストします。ただし、フォーム要素テスト用に適切なデバイス (またはデバイスシミュレーター) を設定するのは、大きな投資になる可能性があります。特定のアプリケーションまたはアプリケーションセットにモバイルまたはタブレットのユーザーセットが多数含まれることがわかっている場合は、モバイルおよびタブレットフォーム要素でそれらのアプリケーションの正確なテストを優先します。 次の[パターンとアンチパターン](/docs/architect/ja-jp/well-architected/guide/engaging#合理化されたアプリケーションパターンとアンチパターン)のリストは、Salesforce 組織でのフォーム要素の適切な (および不適切な) 認識を示しています。これらを使用して、作成前にデザインを検証したり、リファクタリングが必要なページを識別したりできます。 効果的なフォーム要素設計のための Salesforce ツールについての詳細は、「[Tools Relevant to Engaging](/docs/architect/ja-jp/well-architected/guide/engaging#エンゲージメントに関連するツール) (エンゲージメントに関連するツール)」を参照してください。 ### 合理化されたアプリケーションパターンとアンチパターン 次の表に、組織で検索 (または作成) するパターンと、回避または修正の対象となるアンチパターンの選択を示します。 ✨ [パターン & アンチパターンエクスプローラー](/docs/architect/ja-jp/well-architected-tools/guide/easy-streamlined)で合理化されたアプリケーションのより多くのパターンを検出します。
| パターン | アンチパターン | |
|---|---|---|
| アプリケーションの複雑性 | 組織内:
-管理者が指定したデフォルト設定でアプリケーションのタブ数が 10 個未満である [このアプリケーションのナビゲーション項目のエンドユーザーパーソナライズを無効化] が true に設定されているアプリケーションはありません。 |
組織内:
- システム管理者が指定したデフォルト設定で、アプリケーションのタブが 10 個を超えている - 多くのアプリケーションで [このアプリケーションのナビゲーション項目のエンドユーザーパーソナライズを無効化] が true に設定されているか、ナビゲーション項目をカスタマイズする権限が組織全体で無効になっている |
| フォーム | アプリケーション内:
- 項目は論理グルーピングに従う - データ入力項目が 5 個以下のグループでまとめて表示される - データ入力エラーが明確で、ユーザーが移動したりデータを送信したりする前に項目レベルで表示される -ページ設定コントロールでステップ間の移動が可能 - データ登録は 1 回のみ - アクションとナビゲーションの表示ラベルが明確である -ボタンクリックなどのユーザーアクションを確認するためのタイムリーで視覚的なフィードバックが提供される -ナビゲーションボタン (「戻る」、「次へ」、「戻る」など) を UI 全体に一貫して配置 |
アプリケーション内:
- データ入力項目が論理的にグループ化されていないため、ユーザーがフォームに入力する際に大量のコンテキストを切り替える必要がある - データ入力エラーには、システムの内部の仕組みを理解しているユーザーのみが解釈できる難解な情報が含まれています。 - データ入力エラーは、フォームの送信ボタンをクリックしたときにのみ表示されます。 - ステップとグルーピングが明確ではないため、ナビゲーションが困難 - データ登録はデータ入力プロセス全体で複数回行われます。 - アクションとナビゲーションの表示ラベルは、基盤となるシステム機能に精通していないユーザーに混乱を招く - ユーザーアクションの視覚的な確認が提供されない -ナビゲーションボタンが UI 全体の任意の場所に表示される |
| フォームロジック内:
- 項目は可能な限り事前入力またはオートコンプリートされる - ユーザーは、実行時間の長いサーバー側アクションの完了を待つ必要はありません。 - カスタムコンポーネントでは、データ操作を含まないサーバーベースのアクションに cacheable=true を使用します。
- データ操作は 1 回のみ実行 - LWC では、 @wire アダプターはデータ操作を含まないすべてのアクションを処理します。 |
フォームロジック内:
- 事前入力またはオートコンプリートが可能な項目は、手動で入力する必要があります。 -ユーザーは送信プロセス中に作業を停止して、サーバー側アクションが完了するまで待機する必要がある - カスタムコンポーネントが cacheable=false に設定されている |
|
| フォーム要素 | 組織内:
-Salesforce が提供する Lightning ページテンプレートが、すべてまたはほとんどのページで使用されます。 - カスタム Lightning ページテンプレートでは、Aura コンポーネント設計ファイルで design:supportedFormFactors および design:supportedFormFactor を使用します。
- アプリケーションビルダーで使用可能なカスタム LWC または Aura コンポーネントは、それぞれの設計ファイルでサポートされるフォーム要素を宣言し、幅を認識するスタイルパターンを実装します。 |
組織内:
- Classic はまだ有効 - カスタム Lightning ページテンプレートでは、Aura コンポーネント設計ファイルで design:supportedFormFactors と design:supportedFormFactor が一様に使用されません。
- アプリケーションビルダーで使用可能なカスタム LWC または Aura コンポーネントでは、サポートされるフォーム要素がそれぞれの設計ファイルで一貫して宣言されない - カスタム LWC または Aura コンポーネントでは、Salesforce が提供するインターフェースで幅を認識するスタイルは実装されません。 - カスタム LWC または Aura コンポーネントでは、さまざまなフォーム要素のスタイルは、CSS のハードコードされた px 値または % 値のみによって決まります。 |
| デスクトップの場合:
- データ入力項目とナビゲーションコントロールが画面に表示され、意図したとおりに操作できる -ページの有効化の割り当てルールに基づいて、レコードページとアプリケーションページが正しく表示される |
デスクトップの場合:
- データ入力項目とナビゲーションコントロールが画面上の意図した場所に表示されない - データ入力項目やナビゲーションコントロールとのやりとりが必須動作と一致しない -ページ有効化の割り当てルールがないため、すべてのユーザーに同じレコードページとアプリケーションページが表示される |
|
| モバイルおよびタブレットの場合:
-データ入力とナビゲーションコントロールが正しく表示される ・データ入力が簡単 小さいフォーム要素用に最適化されたモバイルナビゲーションメニューが表示される - コンパクトレイアウトがレコードレベルに表示される |
モバイルおよびタブレットの場合:
- データ入力とナビゲーションコントロールの表示が一貫していない、または正しくない -ユーザーが簡単にデータを入力できない -モバイルナビゲーションメニューはデスクトップナビゲーションと区別できない - コンパクトレイアウトがレコードレベルで設定されていない |
| パターン | アンチパターン | |
|---|---|---|
| 通知とメッセージ | 設計標準には次のものが含まれます。
- 通知、トースト、通知の承認済み使用事例 -トーストのバリエーションと通知のデザインパターン - エラーメッセージのデザインパターン |
設計標準がまったく定義されていない場合、エラーや通知に対処できない |
| 組織内:
- 通知が主要なメッセージング形式 -トーストメッセージでバリエーションを使用 - モードが [スティッキ] に設定されたトーストメッセージが存在しない
- 通知はほとんど使用されない (まったく使用されていない場合) - 生成された応答により、常に使用されるデータソースが特定されます。 -ボットはユーザーとの最初のやりとりの前に自分自身を明確に識別します。 - 生成 AI に関連するリスクの免責事項は、最初の操作の前にユーザーに表示されます。 - AI の免責事項は、ユーザーにとって明確で理解しやすい言葉で記述されている |
組織内:
- メールが主要なメッセージング形式である -メッセージ種別に一貫したアプローチがない -トーストメッセージでバリエーションが一貫して使用されていない - モードが [スティッキ] に設定されたトーストメッセージが存在する
- 通知はその場限りで使用される - 生成された応答では、使用されたデータソースが特定されない -ボットはユーザーとの最初のやりとりの前に自分自身を明確に識別しない -生成 AI リスクに関する免責事項がユーザーに表示されない - AI の免責事項がユーザーにとって明確でわかりやすい表現になっていない |
|
| アプリケーション内:
-人間が関与していないエンドユーザーには生成応答が直接送信されない |
アプリケーション内:
-生成応答は、人の関与なしでエンドユーザーに直接送信される |
|
| 関連トピック:エラーハンドリング | ||
| アプリケーション内ガイダンス | 設計標準とドキュメントには次のものが含まれます。
-アプリケーション内ガイダンスの承認済み使用事例 - プロンプトとウォークスルーのデザインパターン -ユーザー、アプリケーション、有効なアプリケーション内ガイダンスの明確なマトリックス |
設計標準とドキュメントが存在する場合、次のことを行います。
- アプリケーション内ガイダンスに対処しない -ユーザー、アプリケーション、有効なアプリケーション内ガイダンスを示す明確なマトリックスを含めない |
| 組織内:
[アプリケーション内ガイダンス間の遅延] の設定で、Salesforce によって提供されるデフォルト (24 時間) 期間より長いデフォルト値またはカスタム値が使用されている - 有効なウォークスルーが複数あるアプリケーションはありません。 - 10 より大きい [表示する時間] 設定のウォークスルーはありません。 - [任意のページ、任意のアプリケーション] または [このページ、任意のアプリケーション] でプロンプトが有効になっていない |
組織内:
- [アプリケーション内ガイダンス間の遅延] の設定が、Salesforce が提供するデフォルト (24 時間) よりも短い期間に設定されている。 -アプリケーションに複数の有効なウォークスルーがある - 多くのウォークスルーの [表示する時間] 設定が 10 より大きい (最大値が 30 のウォークスルーもある) プロンプトはアドホックに有効化され、多くは [任意のページ、任意のアプリケーション] または [このページ、任意のアプリケーション] 設定になっています。 |
|
| 評価と報奨 | 組織内:
-アプリケーションは組み込み分析を使用して、関連する目標の進行状況と生産性の統計をユーザーに表示します。 - パスのお祝いが有効になるのはユーザーの同意がある場合のみ - 通知とメッセージングにはユーザー認識が含まれ、通知を受けるユーザーと通知をトリガーするユーザーの設定が反映されます。 |
組織内:
-目標の進行状況と生産性統計に関連する分析は、レポートまたはマネージャーダッシュボードでのみ使用できます。 -パスのお祝いがユーザーの同意を確認せずに有効になっている - 通知とメッセージングにユーザー認識が含まれていない、またはユーザーの好みが反映されておらず、騒がしい、仕掛けがあると感じる |
| ツール | 説明 | 合理化 | 役に立つ |
|---|---|---|---|
| Lightning アプリケーションページの有効化 | ページの可用性、命名、表示、および配置を管理する | X | |
| Adoption Dashboards | ログイン履歴、機能の採用、生産性の確認 | X | X |
| アラート | セッションでアラートを保持し、ユーザーによる開始なしでアラートを表示する | X | |
| Apex メソッドの結果のクライアント側キャッシュ | キャッシュされたクライアント側データを使用してパフォーマンスを評価する | X | |
| 動的フォーム | 必須項目とページセクションのみをユーザーに表示 | X | |
| エンゲージメントインサイト | 最近のユーザー活動を監視し、必要に応じてアクションを実行する | X | X |
| アプリケーション内ガイダンス | トレーニングとオンボーディングにプロンプトとウォークスルーを利用する | X | |
| 学習パス | ユーザーの学習エクスペリエンスのパーソナライズ | X | |
| Lightning アプリケーションビルダー | コードなしでカスタムモバイルおよびLightningページを作成 | X | |
| Lightning Data Service | コンポーネント間でのデータのキャッシュと共有 | X | |
| VS Code の Lightning Design System 検証 | SLDS ガイドラインに対するマークアップの検証 | X | X |
| Lightning ページテンプレート | さまざまなフォーム要素用の Lightning ページの作成 | X | |
| ルックアップ検索条件 | 参照関係、主従関係、階層関係の絞り込み値 | X | |
| マルチ通貨の管理 | トランザクションでのマルチ通貨の使用 | X | |
| メッセージング | SMS、Facebook Messenger、WhatsApp メッセージの送信 | X | |
| Mobile Publisher | Lightning アプリケーションと Experience Cloud サイトのモバイルバージョンを作成する | X | |
| モバイル対応コンポーネント | モバイル環境で適切に動作するコンポーネントの作成 | X | |
| マルチ言語サイト | 異なる言語バージョンのサイトを作成する | X | X |
| 通知ビルダー | 情報を表示するカスタム通知を作成する | X | |
| パス | ビジネスプロセスを通じてユーザーをガイドし、成功を祝う | X | X |
| プラットフォームキャッシュ | データのキャッシュ時のパフォーマンスと信頼性の向上 | X | |
| Lightning アプリケーションビルダーでのモバイルアプリケーションページのプレビュー | モバイルデバイスでのレコードおよびアプリケーションページのプレビュー | X | |
| 応答画面 | システム関連の問題と更新をユーザーに通知 | X | |
| レコグニションバッジ | ユーザーの功績を認めて称賛する | X | |
| WDC での認識 | スキルを支持して感謝する | X | |
| レコードタイプ | ビジネスプロセス、選択リスト値、ページレイアウトのパーソナライズ | X | X |
| 評価の概要 | 参加とKnowledge共有の認識 | X | |
| 制限ルール | 不要なデータが含まれる可能性があるレコードにユーザーがアクセスできないようにする | X | |
| 標準ページコンポーネント | 標準のSalesforce Lightningコンポーネントについて | X | |
| 翻訳 | グローバルユーザーの翻訳の管理 | X | X |
| 入力規則 | 保存前にデータが指定された標準を満たしていることを確認する | X |
| リソース | 説明 | 合理化 | 役に立つ |
|---|---|---|---|
| Architect`s Guide to Building Forms (フォームを作成するためのアーキテクトガイド) | フォーム設計の考慮事項を評価し、最適なツールを選択する | X | |
| さまざまなフォーム要素に対するコンポーネントの設定 | デスクトップおよび携帯電話で表示するコンポーネントを設定する | X | |
| ヘルプコンテンツのカスタマイズ | 独自の実装に合わせたヘルプコンテンツの調整 | X | |
| デフォルト項目値 | デフォルト、動的、または静的項目値の定義 | X | |
| 設計ガイドライン | ベストプラクティスに沿ったユーザーインターフェースの作成 | X | X |
| 設計標準テンプレート | 組織の設計標準を作成する | X | X |
| テストスキルの設計 (Trailhead) | 設計の検証およびテスト方法の計画 | X | X |
| アプリケーション内フィードバックのガイドライン | システム内からフィードバックを収集するためのガイドラインを確認する | X | X |
| Lightning Design System Android 静的ライブラリ | Lightning ページのデザインを使用したネイティブ Android アプリケーションの構築 | X | |
| Lightning Design System iOS 静的ライブラリ | Lightningページのデザインを使用したネイティブiOSアプリケーションの構築 | X | |
| メッセージングガイドライン | 関連情報を伝え、喜びの瞬間を作り出す | X | |
| メッセージング種別 | ユーザー操作に基づいてさまざまなメッセージング種別を理解する | X | |
| ナビゲーションガイドライン | ユーザーがページ間を移動し、アプリケーション内で状況把握できるようにする | X | |
| Web アクセシビリティのテスト (Trailhead) | 自動テストと手動テストを使用してアクセシビリティを確保 | X | X |
| ユーザーエンゲージメントガイドライン | オンボーディング、採用、支援、学習に関するガイドラインを確認する | X | X |
| パターン | アンチパターン | |
|---|---|---|
| 優先順位付け | ドキュメント内:
- すべての新しい作業項目に明確なビジネス価値評価指標がある (収益の増加、プロセスの最適化によるコスト削減など) - ロードマップには、ビジネス価値に基づいて作業の優先度が示されます。 |
ドキュメント内:
- 作業に関連するビジネス価値が明確でない、または存在しない - ロードマップが存在しない |
| 社内:
- すべての作業項目で実装コストとメンテナンスコストが特定されている - 機能の要求は、ビジネスへの影響、提供に必要な新しい作業の量、メンテナンスに必要な作業の量に基づいて優先順位が付けられます。 |
社内:
- 機能の実装および管理に関連するコストが明確でない - 要求はアドホックまたは先入れ先出し方式で提供されます。 |
|
| ロードマッピング | ロードマップ:
- 利用者 (ビジネスまたは技術) に合わせて調整された情報を伝える - 正しい詳細レベルで情報を伝える - 開始日と終了日を表示 - 前提条件と連動関係を表示 |
ロードマップ (存在する場合):
- 成果物としてではなく、プロジェクトのキックオフ資料として使用される - 関係者とデリバリチームの連携をサポートしていない - 複数の詳細レベル (同じロードマップにシステムとコンポーネントを含めるなど) - 利用者に合わせて調整されていない情報 (同じロードマップ内のビジネス機能やシステムなど) が含まれている |
| ビジネス内:
- 関係者が作業項目の「理由」を理解する - 配送チームは、長期的な優先度に対してバックログ項目を評価する方法を知っている -チームは誰が何をしていて、どのように連動関係を管理するかを把握する -優先度をすぐに変更する必要がある場合でも、作業は意図的です。 |
ビジネス内:
-バックログにあるものから作業を取得し、明確な「理由」がない - チームは相互に依存する作業の調整に苦労し、多くの場合、気づかないうちに作業の複製を行っている - 作業は反応型が多い - 関係者は、現状にストレスや困惑を感じることが多く、新しい機能がいつ提供されるかわからない |
|
| ガバナンス | ビジネス内:
-ユーザーはバグの報告や機能の要求を簡単に行うことができます。 - 作業項目の優先順位付けプロセスが文書化され、すべての関係者に公開されます。 環境戦略が明確に文書化され、開発環境がドキュメントと一致している -リリース計画は予測可能で、すべてのデリバリチームメンバーに対して透過的 -チームメンバーは、アプリケーションライフサイクル全体で誰が何を担当するかを知っている - リリースがユーザーと配信/メンテナンスチームにとって明確である - 本番サポートプロセスが明確で、ホットフィックスが本番に移行するパスが明確である - チームとプロジェクトでは、ビジネス用途で承認された AI モデルのみが使用されます。 |
ビジネス内:
- バグレポートと機能要求はアドホック - 作業項目に明確な優先順位がない - 環境はその場しのぎでプロビジョニングされ、予測どおりに更新されないことがあります。多くの場合、開発者は必要な環境とアクセス権を持っていません。 - リリースは配送チームとユーザーにとって予測できない -チームは誰が何に責任を持っているかわからない - ホットフィックスはアドホックに対応 -バックログが「アイデアバンク」となり、古くなり停滞している -ガバナンス機関がサポート要請のトラブルシューティングを行うヘルプデスクとして機能する -ドキュメントに簡単にアクセスできない - チームがアドホックで AI モデルを選択 |
| パターン | アンチパターン | |
|---|---|---|
| 標準とカスタム | 設計基準では、次のようになります。
-ソリューションが不要なカスタマイズにならないようにするための明確な指針がある - ソリューションの指針では、次の優先度が使用されます。1.組み込みプラットフォームサービスの使用、2.カスタムソリューションを構築する前に AppExchange アプリケーションを考慮する 3.コードを記述する前にローコードのカスタマイズを使用する |
設計基準では、次のようになります。
- 設計標準が存在しないか、不要なカスタマイズやコードを回避するための明確な根拠がない |
| ドキュメント:
- ソリューションを構築するか購入するかを選択するときに、決定レコードに短期および長期コストの計算が表示される |
ドキュメント:
- ソリューションの構築または購入を選択するときに、意思決定レコードで短期コストと長期コストの両方が考慮されない |
|
| データモデルの場合:
- 標準オブジェクトと重複する名前または機能を持つオブジェクトがない - 標準オブジェクトは、その意図する範囲から遥かに逸脱した目的では使用されません。 |
データモデルの場合:
- オブジェクトが標準オブジェクトの名前や機能を重複する - 標準オブジェクトが意図する範囲外の目的で使用されている |
|
| LWC、Aura、または Visualforce の場合:
- 標準ページビューメカニズムを上書きするコードが存在しない |
LWC、Aura、または Visualforce の場合:
- 標準のページビューメカニズムを上書きするコードが存在する (多くの場合、単一ページアプリケーションの形式) |
|
| LWC、Aura、または Apex の場合:
- プラットフォームの実行順序を上書きまたは回避しようとするコードがない |
LWC、Aura、または Apex の場合:
- プラットフォームの実行順序を上書きまたは回避するコード試行 |
|
| 技術的負債 | ロードマップ:
- 技術的な負債に対処する作業が計画されている - 成果物と開始日/終了日が明確である |
ロードマップ:
-技術的な負債に対処する作業が計画されていない - 成果物があいまいで、開始日/終了日が明確でない |
| 決定レコード:
- テクノロジー導入前/導入後の債務修復の KPI が明確に文書化されている - アクションとアクションのトレードオフに関するディスカッションでビジネスのコストまたは利益に焦点を絞る |
決定レコード:
- テクノロジー債務の修復には測定可能な KPI がない - 技術的な負債は、ビジネスとの関連性はなく、技術的な観点またはITに焦点を絞った観点で考慮されます。 |
|
| 組織内:
- 次のようなサポート対象外のテクノロジーや従来のテクノロジーは有効ではありません。 -- すべてのユーザーが Lightning Experience で作業 -- Apex で @future が使用されていない、またはほとんど使用されていない (Queueable が使用されている)
-- すべてのサードパーティ Apex は AppExchange パッケージに属する -- 有効なワークフロールールなし (フローを使用) -- 有効なプロセスビルダープロセスなし (フローを使用) -- PushTopic イベント (変更データキャプチャを使用) -- 一般的なイベント (プラットフォームイベントが使用されます) -- 30.0 より前の API バージョン -- Salesforce 組織の接続で Salesforce Connect の組織間アダプタを使用 |
組織内:
サポートされないテクノロジーまたは従来のテクノロジーが有効: -- Salesforce Classic で作業するユーザー -- Apex での @future の利用状況
-- AppExchange 以外のソースからのサードパーティ Apex -- ワークフロールール -- プロセスビルダープロセス -- PushTopic イベント -- 一般的なイベント -- 30.0 より前の API バージョン -- Salesforce から Salesforce への接続 |
| パターン | アンチパターン | |
|---|---|---|
| 設計標準 | 組織内:
- コードおよび宣言型カスタマイズには、人間が判読可能な一貫した名前を付ける - データモデルには、オブジェクトと項目に対して一貫した統一した名前を付ける - 監査では、項目が一貫して入力され、レポートなどで参照されていることが示されます。 |
組織内:
- コードのカスタマイズと宣言型のカスタマイズの名前が統一されていない - データモデルの名前に一貫性がなく、多くのオブジェクトと項目が冗長であるように見える - 監査では、未使用の項目やさまざまなレベルの使用量が表示され、レポートなどへのリンクが一貫していない。 |
| ビジネス内:
-チームは、作業を完了するために使用すべき (使用しない) ツールを把握している -承認済みデザインパターンは、使用事例別に簡単に見つけて識別できます。 承認済みの AI モデルが明確に識別され、目的が含まれている |
ビジネス内:
-チームは多くの異なるツールを使用して同様の作業を完了 - 承認されたデザインパターンがない -ベンダーや新入社員のオンボーディングに時間がかかる ・承認済みのAIモデルが明確に識別されておらず、その使用目的が明確でない |
|
| ドキュメント | 組織内:
- コードおよび宣言型カスタマイズには明確な説明がある |
組織内:
- コードおよび宣言型カスタマイズに説明が含まれていない、説明がわかりづらい、またはカスタマイズが実際に行っていることと一致しないように見える |
| ビジネス内:
- すべてのソリューションのビジネス能力と技術的な実装の詳細を示す図が存在する - コードおよび宣言型カスタマイズで誰が/いつ/どのような情報ログが存在するかを示す鍵 - ユーザーは関連するドキュメントを検索して見つけることができます。 |
ビジネス内:
- ソリューションの内容/方法/理由が見つけにくく、ほとんどのチームが使用できない可能性がある - ソリューションと使用しているシステムを理解するのに苦労している -ベンダーや新入社員のオンボーディングに時間がかかる |
| ツール | 説明 | 戦略 | メンテナンス性 | 読みやすさ |
|---|---|---|---|---|
| ApexDoc | 静的 HTML ページを使用したドキュメント Apex | X | X | |
| 無効な選択リスト値の一括削除 | 選択リストから無効な未使用の値を削除する | X | ||
| Lightning Design System 検証 | マークアップを検証し、コードを改善する方法を確認する | X | X | |
| フローへの移行 | ワークフロールールとプロセスビルダープロセスのフローへの変換 | X | ||
| Salesforce Labs によるプロジェクト管理ツール | Salesforce 組織内のプロジェクトを管理する | X | X | |
| Visual Studio Code 向け Salesforce 拡張機能 (拡張) | Visual Studio Code 拡張機能を使用した Salesforce コードの効率的な分析 | X | X | |
| 組織チェック | 組織とその技術的負債をすばやく分析する | X | ||
| Salesforce Code Analyzer | IDE、CLI、またはCI/CDを使用してコードをスキャンし、ベストプラクティスに準拠していることを確認する | X | X | |
| Salesforce Roadmap Explorer | Salesforce 製品のイノベーションの探索 | X | ||
| Setup Audit Trail | 設定変更と監査履歴の追跡 | X | X |
| リソース | 説明 | 戦略 | メンテナンス性 | 読みやすさ |
|---|---|---|---|---|
| Salesforce 組織を改善するための 5 つのドキュメント戦略 | Salesforce 実装ドキュメントの改善 | X | ||
| 命名規則の選択 (Trailhead) | 命名規則の適用方法 | X | ||
| 技術的負債の定義、識別、および測定 | 技術的負債の定義、特定、測定 | X | X | |
| 設計標準テンプレート | 組織の設計標準を作成する | X | X | X |
| Salesforce 図の使用開始 | 使用事例に適した図の作成方法を学ぶ | X | ||
| コーディング規則の使用開始 (Trailhead) | コーディング規則の定義と準拠 | X | ||
| 技術的負債に対処する方法 (Trailhead) | Salesforce 組織での技術的負債の管理 | X | X | |
| Apex コードの改善 (Trailhead) | テスト駆動開発の基本原則の適用 | X | ||
| 組織の連携 (Trailhead) | アライメントのための V2MOM プロセス | X | ||
| 技術的負債から抜け出すための優先順位付けと計画 | 技術的負債を削減および削除する計画を形成する | X | X | |
| Salesforce 命名規則テンプレート | 命名規則の使用開始 | X | X | |
| 技術的負債:何なのか なぜ気にする必要があるのか | 組織の技術的負債の影響を理解する | X | ||
| エンタープライズアーキテクチャでのビジネスモデルキャンバスの使用 | ビジネスモデルの価値の創出、提供、確認 | X |
構成可能なシステム:
## 懸念事項の分離
ソフトウェアエンジニアリングおよびシステムアーキテクチャの基本概念であり、*懸念の分離*では、モジュール単位に分割できる大規模なシステム内でさまざまな懸念事項を特定します。システム内で懸念事項を強固に分離するには、システム全体でアプリケーションロジックと機能の意味のあるユニットを作成する必要があります。単位を小さくすると、アプリケーション配信チームとメンテナンスチームは、大規模なシステムの中断を最小限に抑えながら、変更の方法と場所を理解しやすくなります。また、ユニットを小さくすると、[技術的負債](/docs/architect/ja-jp/well-architected/guide/intentional#技術的負債)に対処するときに作業をどのようにどこに集中させるかが明確になり、システム全体の[可読性](/docs/architect/ja-jp/well-architected/guide/intentional#読みやすさ)が向上します。
ビジネス能力を重視して状態を管理することで、Salesforce 組織に懸念をより適切に分離できます。
### 機能単位
Salesforce システムの場合、懸念事項を分離するための最良のアプローチでは、ビジネス指向の視点を適用して、システム内のモジュラーユニット (または機能) を特定して整理します。これは、技術的な機能に基づいてユニットを識別するエンジニアリング重視のビューとは異なります。関心事を切り分けるビジネス指向の観点では、ビジネスユーザーとビジネスユーザーに提供するサービスに基づいてシステムのコードとカスタマイズを整理する必要があります。このアプローチは、システム内の冗長または重複する技術的機能の可能性を無視という意味ではありません。つまり、テクニカルサービスは、ビジネスにとって最終的に透明性の高い組織原則に明確に対応付けられています。
ビジネス機能を考慮すると、ビジネス分析チームとディスカバリーチーム間の受け渡しをできるだけ簡単に行うことができます。アプリケーションビルダーが作業単位をコンポーザー可能なアーキテクチャに対応付ける場所を知らない場合、コンポーザー可能なアプリケーション環境ではなく混乱が生じます。また、ビジネスで必要とされる最終状態と組織内のモジュラーユニットの対応付けが明確でない場合、開発チームやベンダーが冗長な機能をシステムに組み込む可能性が高くなります。
ビジネス機能に合わせて機能ユニットを配置するには、次の点を考慮してください。
- **Start with jobs to be done** (実行するジョブから開始)。ユーザーとビジネス自体のやるべき仕事 (JTBD) に焦点を絞ります。Tony Ulwick が先駆者となり、商品またはサービスを使用して人々が達成しようとしている「仕事」、つまり真の目的を理解することに焦点を絞りました。これは、ユーザーのロール関連の ToDo やビジネスプロセスの個々のステップよりも高い抽象レベルです。たとえば、重複チェックや住所検証などのタスクは、「顧客の 1 つのビューの確立」という高次の機能に分類されます。これらの高次のビジネス機能を明確に把握したら、システムの一部を対応付けることができます。
- **レポート構造ではなく機能指向です。**ビジネスユニットの内部階層は、意味のある機能やジョブを実行するためのプロキシではありません。ビジネスの内部階層は、プロセスとチーム構造に重大な影響を及ぼします (予算は言うまでもありません)。これらは、物流上の重要な考慮事項です。ただし、ビジネスの機能ニーズは、物流よりも抽象化レベルで実行されます。高次の関数ではなくレポート構造を提供するモジュールを作成する場合、そのモジュールがビジネス機能にどのように関連するかを特定するために追加の手順を実行する必要がある場合があります。
- **反復型**。まず、ビジネス部門と連携して、最小限の実行可能な商品 (MVP) にどのような機能が有効かを特定します。機能を特定したら、その MVP の作成を開始します。構築するときに、作成する機能単位の中心となるプロセス、メタデータ、および[イベントやメッセージ](/docs/architect/ja-jp/well-architected/guide/composable#メッセージングとイベント)を特定します。外部連動関係のプロセス、メタデータ、イベントまたはメッセージを特定します。より多くの機能ユニットを設計するときに、(サイロ化されたユニットを構築するのではなく) [API 管理](/docs/architect/ja-jp/well-architected/guide/composable#api-管理)と[連動関係管理](/docs/architect/ja-jp/well-architected/guide/composable#連動関係管理)を実装して、相互に適切に機能するユニットを構築します。
以下の[パターンとアンチパターン](/docs/architect/ja-jp/well-architected/guide/composable#懸念パターンとアンチパターンの分離)のリストは、Salesforce ソリューション内でのビジネス機能に対する適切な (および不適切な) 方向性を示しています。これらを使用して、構築前に設計を検証したり、システムのリファクタリングが必要な領域を特定したりできます。
ビジネス機能をより深く理解するために Salesforce から入手できるツールについての詳細は、「[Tools Relevant to Composable](/docs/architect/ja-jp/well-architected/guide/composable#コンポーザブルに関連するツール) (コンポーザブルに関連するツール)」を参照してください。
### 状態管理
状態管理では、さまざまな時点でのシステム全体の情報の移動に重点が置かれます。効果的な状態管理により、アプリケーションは複雑なデータフローやインタラクションを処理でき、予定外の結果が最小限に抑えられます。モジュール化された Salesforce 組織で状態を管理するには、ユニット内およびユニット間のロジックフローの明確なパスと、予定外の実行動作のグレースフルパスを作成します。状態管理により、モジュール化された Salesforce アプリケーションユニットから一貫したロジックストリームを形成できます。ほとんどの場合、ユニット間の情報フローを構造化するには[相互運用性](/docs/architect/ja-jp/well-architected/guide/composable#相互運用性)が必要です。
疎結合のユニット間で状態を管理することが困難な場合、Salesforce ではモノリス型のアプリケーション開発になることがよくあります。これは、1 つのフロー内で複雑なプロセスを調整するために構築された大規模な「モノフロー」で確認できます。もう 1 つの例として、大規模な Apex クラスがあります。これは、*スパゲッティ・コード*や長い一連の 1 回限りの方法を使用して複雑なプロセスを調整します。このようなアプリケーションアーキテクチャでは、リファクタリングとデバッグが難しくなり、新しいチームメンバーやベンダーのオンボーディング時間が長くなります。また、機能は再利用できないため、ビジネスに提供されるアプリケーションの価値も低下します。
モジュラー型の Salesforce 組織全体で状態を管理するには、次の点を考慮してください。
- **ステートフルパターンとステートレスパターンのどちらを使用するかを決定します。**ステートフルパターンでは実行パス全体で情報が保持されますが、ステートレスパターンでは保持されません。疎結合システムでは、ステートレスパターンにより、コンポーネントをより迅速にリファクタリングでき、副作用を減らすことができます。ただし、ステートレスパターンがすべての使用事例に適しているわけではありません。データ操作のコンポーネントを作成する場合、ステートフルパターンはシステム全体のデータの整合性と一貫性を保つのに役立ちます。コンポーネントが次のいずれかの条件を満たしている場合、ステートフルパターンを使用します。
- より大きな実行パス内の配置を認識することはコンポーネントの動作に不可欠
- 下流のアクションの結果に基づいてコンポーネントの動作を変更する必要がある (たとえば、下流のコンポーネントからのロールバック/エラー/成功メッセージに基づいて実行を変更する必要がある)
- コンポーネントは、外部システムまたはダウンストリームシステムからの応答を待って作業を完了する必要があります。
- **ステートフルな情報の有意義なカテゴリを作成します。\***状態と*はあいまいな用語であり、Salesforce 組織内 (およびそれ以降) のこのような深く幅広い情報に適用でき、単独ではほとんど意味がありません。したがって、ステートフルパターンを作成するために必要な最初のステップは、システム内で最も重要なステートフル実行パス (またはステートフル動作の種類) の*有意義\*なカテゴリを作成することです。考慮すべきカテゴリ:
- ナビゲーションとフォーム
- データベース操作
- 一括処理および一括処理
- エラー
- ** [データベーストランザクション](/docs/architect/ja-jp/fundamentals/guide/architecture-basics#データベース操作)の観点からデータ関連の状態を定義し**ます。プラットフォームの組み込み動作では、Salesforce のデータに関するほとんどの状態の考慮事項が考慮されません。この動作に対して、またはこの動作を回避して管理しようとしないでください。それに合わせて設計します。分散トランザクションロジックを最小化または排除するソリューションを設計します。(詳細については、「[データ処理](/docs/architect/ja-jp/well-architected/guide/automated#データ処理)」を参照してください)。
- **機能単位内 (および機能単位全体) で発生する状態を特定します。**機能ユニットをより大きなシステムに組み立てるときは、ステートレスコンポーネントとステートフルコンポーネントの動作を混在させることに留意し、無限ループや処理のギャップが生じる可能性のある組み合わせを回避します。
- **ハンドオフを定義**します。コンポーネントが状態関連のデータをシステムの別の部分に転送するために使用する[メッセージングまたはイベント](/docs/architect/ja-jp/well-architected/guide/composable#メッセージングとイベント)パターンを検討します。トランザクション認識と[処理](/docs/architect/ja-jp/well-architected/guide/automated#データ処理)をコンポーネントに組み込んでいることを確認します。ハンドオフには分散トランザクションロジックを含めないでください。
- プロセス図と状態の**対応付けを作成**します。プロセス図には、さまざまな時点で情報をシステム内を移動する手順が詳しく説明されています。状態ダイアグラムは、情報 (状態) の実際の変化を示します。[Salesforce Diagrams](/docs/architect/ja-jp/reference-diagrams/guide/kit-of-parts) 図形のメタデータフッター部分を使用して、プロセスの各ステップで変化する情報の状態を取得します。プロセス図と状態図を分ける場合は、必ずリンクしてください。この概念は、設計および実装中にプロセスやシステムランドスケープの現在および将来の状態を取得することと混同しないでください。これは、システム内を移動する情報に関するものではないためです。
次の[パターンとアンチパターン](/docs/architect/ja-jp/well-architected/guide/composable#懸念パターンとアンチパターンの分離)のリストは、Salesforce ソリューション内の適切な (および不適切な) 状態管理を示しています。これらを使用して、構築前に設計を検証したり、システム内でリファクタリングが必要な場所を特定したりできます。
状態を管理するための Salesforce ツールについての詳細は、「[Tools Relevant to Composable](/docs/architect/ja-jp/well-architected/guide/composable#コンポーザブルに関連するツール) (コンポーザブルに関連するツール)」を参照してください。
### 懸念パターンとアンチパターンの分離
次の表に、組織で検索 (または作成) するパターンと、回避または修正の対象となるアンチパターンの選択を示します。
✨ [パターン & アンチパターンエクスプローラー](/docs/architect/ja-jp/well-architected-tools/guide/adaptable-separation-of-concerns)で、懸念事項を分離するためのより多くのパターンを見つけます。
| パターン | アンチパターン | |
|---|---|---|
| 機能単位 | 設計基準では、次のようになります。
- 命名規則では、機能単位を示す方法について説明しています。 現在定義されているすべての機能単位 (および関連する命名規則) のリストが存在する ・機能単位の追加や変更の提案基準が存在する |
設計基準では、次のようになります。
- 設計標準が存在しないか、機能単位と使用事例を扱っていない |
| ドキュメント:
- 組織の機能単位を明確に示すシステムランドスケープダイアグラム - すべてのドキュメントと実装図にコンポーネントの機能単位が明確に示されている - 個々のコンポーネントのドキュメントには、コンポーネントの機能単位の対応付けが含まれます。 -機能単位内のすべてのコンポーネントが検索可能で、見つけやすい |
ドキュメント:
- コンポーネントのドキュメントが存在しない - コンポーネントドキュメントにはコンポーネントが属する機能単位が記述されていますが、その機能単位の定義が表示されるのはコンポーネントドキュメントのみです。 -特定の機能単位を検索できない、または検索が機能単位内のすべてのコンポーネントの識別に役立たない |
|
| 組織内:
-特定のメタデータ(フロー、Apexクラス、Lightningページなど)の機能単位の配置をすばやく特定できます。 - 機能単位にはビジネスにわかりやすい表示ラベルを付ける |
組織内:
-メタデータの機能単位の配置を特定できない - 機能単位情報に一貫性がないか、不正確である - 機能単位情報の表示ラベルが、ビジネスユーザーにとって無意味なエンジニアリング関連の用語で付けられている |
|
| 状態管理 | 設計基準では、次のようになります。
-ステートフル設計とステートレス設計の使用事例が明確である - ステートレス通信の承認済みパターンが存在する - ステートフルなコミュニケーションの承認済みパターンが存在する - 状態のカテゴリをクリア |
設計基準では、次のようになります。
- 設計標準が存在しないか、状態/ステートレスパターンと使用事例を扱っていない |
| ドキュメント:
- ステートフルまたはステートレス通信を処理するすべてのコンポーネントは、実装されたパターンを示します。 -特定のステートフル/ステートレスパターンを実装しているすべてのコンポーネントを検索して見つけることができます。 - プロセス図とインタラクション図には、状態カテゴリと引き継ぎに関する詳細が表示されます。 |
ドキュメント:
- コンポーネントのドキュメントが存在しない - コンポーネントのドキュメントには実装されたステートフル/ステートレスパターンが説明されていますが、定義が表示されるのはここのみです。 -特定のパターンを検索できない、または検索がそのパターンを使用するすべてのコンポーネントの識別に役立つとは限らない |
|
| Apex: - すべてのデータ操作でセーブポイントとロールバック動作が使用される |
Apex: - セーブポイントとロールバック動作が使用されない |
|
| フロー内: - 障害パスがあり、レコードのロールバック要素が使用されている |
フロー内: - [レコードをロールバック] 要素が使用されていない |
| パターン | アンチパターン | |
|---|---|---|
| メッセージングとイベント | 設計基準では、次のようになります。
- 同期パターン (メッセージング) と非同期パターン (イベント) を使用する状況に関する明確な標準が存在する - イベントおよびメッセージ構造には明確な標準がある |
設計基準では、次のようになります。
- 設計標準が存在しないか、同期パターンと非同期パターンの明確な標準やメッセージまたはイベント構造の明確な標準がない |
| 組織内:
- 内部システムメッセージングに使用されるプラットフォームイベントの表示ラベルが明確である - Salesforce フローツールでシステム全体のメッセージングまたはイベントサービスを参照する -一貫したメッセージングとイベントパターンがフローとコードに表示される |
組織内:
- 内部システムメッセージングに使用されるプラットフォームイベントの表示ラベルが明確でない、または存在しない - メッセージングパターンとイベントパターンのさまざまな戦略がフローとコードで表示される |
|
| Apex または LWC の場合:
- カスタムイベント定義の範囲が制限される (システム全体のイベントやメッセージがコードで定義されない) - Apex のシステム全体のメッセージングサービスまたはイベントサービスは、Salesforce フローツールで使用できるようにアノテーションが付けられます。 |
Apex または LWC の場合:
-システム全体のメッセージおよび/またはイベント構造がApexまたはJavaScriptで定義されている - Apex で定義されたシステム全体のイベント構造またはメッセージ構造をフローなどのツールで使用できない |
|
| API 管理 | 設計基準では、次のようになります。
- クロスコンポーネント通信用の明確なプロトコル (API) が存在する - プロトコル/API は、ビルダーが検索および検索できる論理グループにまとめられています。 -プロトコル/API により、変数のデータ型、変数名、必須または省略可能を定義し、使用する状況を明確に説明 |
設計基準では、次のようになります。
- 設計標準が存在しないか、API と使用事例を定義していない |
| ドキュメント:
- すべてのコンポーネントのドキュメントに、実装済みの API/通信プロトコルが明記されている -特定の API またはプロトコルを検索し、それが実装されているコンポーネントを識別できる |
ドキュメント:
- コンポーネントのドキュメントが存在しない - コンポーネントドキュメントにはコンポーネント内に実装された API が記載されていますが、API 定義が表示されるのはここのみです。 -特定の API またはプロトコルを検索できない、または API またはプロトコルが実装されたコンポーネントを特定できない |
|
| 組織内:
- 内部コミュニケーション用の API メッセージ形式と変数がカスタムメタデータ型で定義されている - 内部コミュニケーション用の API メッセージ形式と変数がプラットフォームイベントで定義されている - コードおよび宣言型カスタマイズでは、情報を送受信するために適切なカスタムメタデータ型 (またはプラットフォームイベント) を参照します。 |
組織内:
- システムのコンポーネント間 (コードおよび宣言型カスタマイズ) の通信がアドホックである - API は、Salesforce と外部システム間の通信専用に定義されています。 |
選択するパッケージ整理パラダイムに関係なく、次の点に留意してください。
- **パッケージ間でメタデータを複製しないでください。**複数のパッケージで必要なメタデータは、連動関係として宣言された 1 つ以上のパッケージに抽象化する必要があります。
- **Salesforce Platform メタデータの組み込み連動関係を活用します。**アプリケーションビルダーの場合、Salesforce Platform が提供する組み込みサービスでは、すばやく設定できる多くの機能が提供されます。これらのサービスの多くには組み込み連動関係があり、下位レベルの機能単位に抽象化することは困難です。特定のメタデータ型の場合、それが組み込み[連動関係](https://developer.salesforce.com/blogs/2018/06/lets-talk-deployment-and-reasons-why-they-succeed-or-fail)のどこに当てはまるかを理解し、その理解に基づいて[パッケージ連動関係チェーンを](https://developer.salesforce.com/blogs/2018/06/working-with-modular-development-and-unlocked-packages-part-2)定義する必要があります。多くの組み込み連動関係を持つ標準プラットフォーム機能に無理に疎結合を組み込むことで、パッケージの採用を開始しないでください。高次の機能に到達するにつれて (値ではなく) 複雑さが増します。また、[標準対カスタム](/docs/architect/ja-jp/well-architected/guide/intentional#標準機能とカスタム機能)[のアンチパターン](/docs/architect/ja-jp/well-architected/guide/intentional#メンテナンス性パターンとアンチパターン)に分類される別の方法もあります。メタデータを下から (連動関係が最も少ない) 上にパッケージ化し、経時的に反復します。
- **連動関係チェーン**に注意してください。開発者が一度に多くの異なるパッケージに変更を分割する必要があるパッケージ連動関係チェーンの作成は避けてください。
- **ソース制御**に何が適しているかを考えます。ソース制御でパッケージを管理する基本的な方法は 2 つあります。1 つ目は、パッケージがフォルダ内で分離されている 1 つの*独占*リポジトリです。2 つ目は、パッケージが独自のリポジトリに隔離されている複数のリポジトリです。各種ソース戦略の長期的な管理には複雑さがあります。開発者のオンボーディングの観点では、複数のリポジトリパラダイムで縦方向の境界がより効率的です。横方向の境界は、独占情報でよりわかりやすくなります。ここでも、アーキテクチャの成熟に合わせて戦略を組み合わせることができます。
次の[パターンとアンチパターン](/docs/architect/ja-jp/well-architected/guide/composable#パッケージ化可能性パターンとアンチパターン)のリストは、Salesforce パッケージでの適切な (および不適切な) 連動関係管理を示しています。これらを使用して、構築前に設計を検証したり、システムのリファクタリングが必要な領域を特定したりできます。
連動関係管理用の Salesforce ツールについての詳細は、「[Tools Relevant to Composable](/docs/architect/ja-jp/well-architected/guide/composable#コンポーザブルに関連するツール)」を参照してください。
### パッケージ化可能性パターンとアンチパターン
次の表に、組織で検索 (または作成) するパターンと、回避または修正の対象となるアンチパターンの選択を示します。
✨ [パターン & アンチパターンエクスプローラー](/docs/architect/ja-jp/well-architected-tools/guide/adaptable-packageability)でパッケージ化可能なパターンをさらに見つけます。
| パターン | アンチパターン | |
|---|---|---|
| 疎結合 | 設計基準では、次のようになります。
- 命名規則では、パッケージ単位の表記方法を指定します。 現在定義されているすべてのパッケージ単位 (および関連する命名規則) のリストを検索して見つけることができます。 ・パッケージ単位の追加や変更の提案基準が存在する - (省略可能) カスタム設定の承認済み使用事例がすべて明確にリストされている (ある場合) |
設計基準では、次のようになります。
- 設計標準が存在しないか、パッケージ単位と使用事例を扱っていない |
| 組織内:
- カスタムメタデータ型により、コードおよび宣言型カスタマイズの動的な実行時情報が提供されます。 - カスタム設定が存在しないか、カスタム設定がほとんど存在せず、パッケージ化された機能に関連するものがない - コードまたは宣言型カスタマイズの動的かつ実行時情報を提供するカスタムオブジェクトが存在しない |
組織内:
- カスタム設定が使用される - カスタムオブジェクトは、コードまたは宣言型カスタマイズの動的な実行時情報を提供する目的で存在します。 - カスタムメタデータ型は、コードおよび宣言型カスタマイズの動的かつ実行時情報を提供するのに使用されない (または一貫して使用されない) |
|
| Apex:
Common Services およびボイラープレートコードは、抽象または仮想 Apex クラスを使用して定義されます。 - 動的で実行時の情報に依存するメソッドは、適切なカスタムメタデータ型を参照します。 |
Apex:
- Common Services とボイラープレートコードが他のクラスと容易に区別されない - クラスやメソッド間の内部参照が追跡しづらく、コードベース全体で一貫性がない - メソッドが動的で実行時の情報にアクセスするために一貫した方法を使用していないか、メソッドがカスタムオブジェクトで実行時の動作情報を照会しているか、コードがカスタム設定を参照している |
|
| ソース制御および開発環境の場合:
- package.xml ファイルは、初期段階または概念実証プロジェクトマニフェストにのみ表示されます。 |
ソース制御および開発環境の場合:
- package.xml ファイルはメタデータリリースの制御に使用されます。 |
|
| パッケージ内:
-組織依存のロック解除済みパッケージは、初期段階または概念実証実験でのみ使用されます。 - 本番または Sandbox で未管理パッケージが定義されていない |
パッケージ内:
- すべてのパッケージが組織依存のロック解除済みパッケージである - 未管理パッケージが本番または Sandbox で定義されている |
|
| 連動関係管理 | 設計基準では、次のようになります。
- 連動関係を宣言するための基準が存在する - 連動関係の導入または変更に関する基準が存在する |
設計基準では、次のようになります。
- 設計標準が存在しないか、連動関係の宣言方法を扱っていない |
| ソース制御:
- ロック解除済みパッケージのパッケージバージョンでは、別名 ( 最新) を使用して sfdx-project.json マニフェストで連動関係を宣言します。
-開発者はスクラッチ組織を作成し、ソース制御からパッケージメタデータを正常にリリースできます。 |
ソース制御:
- ロック解除済みパッケージのパッケージバージョンが sfdx-project.json マニフェストで明示的に宣言されている (最新の別名がない)
- 開発者がソース制御を使用してスクラッチ組織で正常に作業できない |
|
| パッケージ内:
-パッケージ間でメタデータが重複しない -パッケージ開発の場合、初期段階の開発作業はすべてスクラッチ組織で行われます。 |
パッケージ内:
-異なるパッケージのメタデータを複製することで連動関係を回避 - 早期パッケージ開発は Developer Sandbox で行われるか、早期パッケージ開発はスクラッチ組織では実行できません。 |
|
| 関連トピック:疎結合 | ||
| ツール | 説明 | 懸念事項の分離 | 相互運用性 | パッケージ性 |
|---|---|---|---|---|
| Apex REST Webサービス | ApexクラスおよびメソッドをREST経由で外部アプリケーションに公開 | X | ||
| Apex SOAP Web サービス | Apex クラスおよびメソッドを SOAP 経由で外部アプリケーションに公開する | X | ||
| 変更データキャプチャ | Salesforce レコードへの変更を公開 | X | ||
| カスタムメタデータ型 | 再利用可能なカスタマイズ可能なパッケージ化可能な機能を定義する | X | ||
| デコレーター | API として関数またはプロパティを公開 | X | X | |
| Dev Hub | スクラッチ組織、第二世代パッケージ、Einstein機能を管理します。 | X | X | X |
| 一般的なイベント (従来)* | Salesforce データの変更に関連付けられていないカスタムイベントの送信 | X | ||
| Lightning Data Service | コンポーネント間でのデータのキャッシュと共有 | X | X | |
| メタデータ API | Salesforce 環境間のカスタマイズのリリース | X | ||
| メタデータカバー率レポート | 複数のチャネルでサポートされるメタデータの対象範囲を決定する | X | ||
| MuleSoft Composer | コードではなくクリックを使用してデータのプロセスの自動化を構築 | X | ||
| 送信メッセージ | 項目値の更新時に外部エンドポイントにメッセージを送信 | X | ||
| プラットフォームイベント | ほぼリアルタイムのイベントデータを含む安全でスケーラブルなメッセージを送信する | X | ||
| Pub/Sub API | プラットフォームイベント、変更データキャプチャ、またはリアルタイムイベント監視への登録 | X | ||
| PushTopic イベント (従来)* | ユーザー定義の SOQL クエリに一致する変更通知の送受信 | X | ||
| Salesforce CLI | Salesforce 組織で作業するときの自動化の開発と構築 | X | ||
| Salesforce の図 | ビジネス能力と技術的な詳細を示す図を作成する | X | ||
| Visual Studio Code 向け Salesforce 拡張機能 (拡張) | Salesforce 開発の公式 VS Code 拡張機能 | X | ||
| スクラッチ組織 | Salesforce コードとメタデータを破棄可能な組織にリリースする | X | ||
| 第二世代管理パッケージ | AppExchange 向けアプリケーションの開発と配布 | X | ||
| Tooling API | Lightning プラットフォームアプリケーション用のカスタム開発ツールまたはアプリケーションの作成 | X | ||
| ロック解除済みパッケージ | メタデータの整理、アプリケーションのパッケージ化、AppExchange アプリケーションの拡張 | X | ||
| *Salesforce は、現在の機能の範囲内で引き続き PushTopic および Generic Events をサポートしますが、この技術にさらに投資する予定はありません。 | ||||
| リソース | 説明 | 懸念事項の分離 | 相互運用性 | パッケージ性 |
|---|---|---|---|---|
| デジタルインテグレーションのプリミティブな考察 | 接続の概念の共通言語を開発する | X | ||
| Salesforce を使用したドメイン駆動設計の適用 | ビジネス機能に関するソリューション指向 | X | ||
| 第二世代パッケージのベストプラクティス | 2GP パッケージ化のパターンと方法を理解する | X | ||
| 管理パッケージで使用可能なコンポーネント | 管理パッケージメタデータコンポーネントを理解する | X | ||
| 設計標準テンプレート | 組織の設計標準を作成する | X | X | X |
| イベント駆動型アーキテクチャ決定ガイド | イベント駆動型アーキテクチャのパターンとツールの比較 | X | ||
| イベントのアンチパターン | イベントを使用するときに避けるべきアンチパターンの特定 | X | ||
| メッセージ駆動型およびイベント駆動型の API の設計方法 | MuleSoft 開発者ガイドで違いを確認する | X | X | |
| 完了すべきジョブフレームワークについて | Trailhead での JTBD の探索 | X | ||
| B2C Commerce でのグローバル状態の管理 | コンポーネント間でデータを簡単に渡して状態を維持 | X | ||
| メッセージングガイドライン | 関連情報を伝え、喜びの瞬間を作り出す | X | ||
| メッセージング種別 | ユーザー操作の性質によるさまざまなメッセージング種別の理解 | X | ||
| メタデータ型 | Salesforce 組織のさまざまなメタデータの種別を理解する | X | X | |
| モバイルアプリケーション通知種別 | Salesforce モバイルアプリケーションの通知種別について | X | ||
| ビューステートの最適化 | Visualforce ページでの状態の維持 | X | ||
| Salesforce 開発者エクスペリエンス (DX) | Lightning プラットフォームでのアプリケーションの管理および開発 | X | X | X |
| サポートされないメタデータ型 | メタデータ API で使用できないコンポーネントを特定する | X |
| トリガー分類/種別 | 軽減 |
|---|---|
| 人 | ポリシー |
| プロセス | プレイブック、継続性計画 |
| テクノロジー | 重複 |
| トリガー | 軽減 | 基本 | 中級 | 成熟 |
|---|---|---|---|---|
| 新規または退職する従業員のユーザーアクセス権の変更 | ユーザーをプロビジョニングまたはプロビジョニング解除するためのサービスレベル契約 (SLA) と要件 | 手動変更の SLA に従って、ユーザーを手動でプロビジョニングおよびプロビジョニング解除します。 | スケジュール済み変更の SLA に従って、スケジュール済みジョブでユーザーの変更を処理します。 | SSO/IDM ソリューションを使用して、ユーザーのプロビジョニングとプロビジョニング解除を自動化します。 |
| パターン | アンチパターン | |
|---|---|---|
| リスク管理 | ビジネス:
確立されたリスク評価フレームワークが使用されている。 リスクは、人、プロセス、テクノロジーの領域に分類されます。 |
ビジネス:
- Salesforce のリスク評価フレームワークはアドホックです。 リスクが明確ではない。 |
| ドキュメント:
- リスクの重要度は、顧客への影響に基づいて分類および評価されます。 - リスク軽減および対応計画に優先順位を付けます。 |
ドキュメント:
- リスクの重要度やカテゴリを評価するときに、顧客の視点は考慮されません。 - リスク軽減および対応計画は、考えられるすべてのリスクを把握しようとします。 |
|
| 障害の軽減 | 組織内:
- 障害点トリガーとそれに対応する緩和計画は、人、プロセス、テクノロジー別に分類されます。 - 緩和コントロールがすぐに導入され、経時的に成熟し、できるだけ早く自動化が組み込まれます。 - 最適な拡張性を確保するために、変更が本番にリリースされる前に包括的なテストと最適化を完了します。 - ビジネスクリティカルなイベントの前に、SLA に従ってスケールテストと最適化が実行されます。 |
組織内:
- 失敗点トリガーは分類されません。緩和方法が存在しないか、その場しのぎでのみ使用されます。 - 緩和措置が再検討または改善されていない。 - 軽減措置では自動化は使用されません。 |
| 監視とオブザーバビリティ | 組織内:
-チェックと異常検出では、Proactive Monitoring が有効になっています。 -継続的な可視性のために、Proactive MonitoringアラートはScale Centerと統合されています。 |
組織内:
- 状態チェックは手動でのみ実行され、継続的な監視は行われません。 |
| パターン | アンチパターン | |
|---|---|---|
| スループット | 設計基準では、次のようになります。
- プラットフォームキャッシュの使用方法に関するガイダンスは、プラットフォームキャッシュベストプラクティスに準拠しています。 |
設計基準では、次のようになります。
- プラットフォームキャッシュの利用状況に関する指針がある場合、明確ではない、またはベストプラクティスに準拠していない。 |
| 組織内:
- 一括処理は、データとシステム操作に使用されます。 - DML またはデータベースメソッドは、常に Apex のコレクションに対して動作します。 - DML 中にデータベースで経過時間が短くなるために使用する項目が制限されます。 - SOSL ではすべてのワイルドカード条件が使用されます。 - SOQL ステートメントは選択的です。 -- LIKE 比較や部分テキスト比較は使用しません。 -- 比較演算子では、主ロジックまたは唯一のロジックとして肯定的なロジック (つまり INCLUDES または IN) が使用されます。 --= NULL と != NULL が使用されるのは、常に肯定的な比較演算子の後にある場合のみです。 – データ負荷を最小限に抑えてパフォーマンスを最大化するために、SOQL クエリで必要な項目のみが取得されます。 -- LIMIT 1 ステートメントは使用されません。 -- ALL ROWS キーワードは使用されません。 - 可能な場合は非同期処理が優先されます。 プラットフォームキャッシュパーティションが設定されている。 |
組織内:
- DML ステートメントは一括処理されません。 - Apex の 1 つのレコードに対して DML またはデータベースメソッドが動作します。 - SOSL がワイルドカード選択条件で使用されることはほとんどありません。 - SOQL ステートメントは非選択的です。 -- LIKE およびワイルドカード検索条件が含まれます。 -- !=、NOT、または NOT IN 条件を使用した比較は、主または唯一の比較演算子として使用されます。 -- = NULL 条件と != NULL 条件を主または唯一の比較演算子として使用します。 -- LIMIT 1 ステートメントが使用されます。 -- ALL ROWS キーワードが使用されます。 - SOQL がループ内に表示されます。 - 同期プロセスが好まれます。 |
|
| 遅延 | 組織内:
- レポートは 1 つの特定の目的を果たし、意思決定に必要な最小限の行数と列数が含まれます。 -検索条件で「次の文字列と一致する」と「次の文字列と一致しない」が使用されている。 - 検索条件に数式項目が含まれていない。 ・共有モデルは可能な限り簡略化。 カスタムUIコンポーネントでは、LWC(Lightning Webコンポーネント)を使用します。 - LWC はデータ操作に Lightning Data Service を使用します。 - リストデータの並び替えと絞り込みは、JavaScript でクライアント側で処理されます。 - Salesforce Edge が有効になっている。 |
組織内:
- レポートには複数の目的がある場合や、意思決定に不要な行や列が含まれている場合があります。 -検索条件で「含む」と「含まない」が使用されている。 - 検索条件には数式項目が含まれます。 共有モデルは複雑です。 -カスタムUIコンポーネントではフレームワークが使用されているため、LWCよりもレンダリング効率が低い場合があります(AuraやVisualforceなど)。 - LWC はデータ操作に Apex を使用します。 - リストデータの並び替えと絞り込みは、Apex を使用してサーバー側で処理されます。 - Salesforce Edge が有効になっていない。 |
| パターン | アンチパターン | |
|---|---|---|
| データモデリング | 設計基準では、次のようになります。
- カスタムオブジェクトが存在することをビジネス上の正当性が保証する基準と指針。 |
設計基準では、次のようになります。
- カスタムオブジェクトを作成するための標準はありません。 |
| データモデルの場合:
可能な場合は標準オブジェクトが使用されます。 - ApexGuru によるアンチパターンチェックにより、SOQL クエリが選択され、スキーマの非効率的な使用が回避されることを確認します。 - テーブルはスケールに対して非正規化されます。 |
データモデルの場合:
- 複製された標準オブジェクトがある。 - テーブルは冗長性を避けるために正規化されます。 |
|
| ビジネス内:
- ローコードビルダーは、Salesforce でサポートされるさまざまなデータ型を理解し、レポートと暗号化の要件を評価してから、データ型を選択します。 - オブジェクト間の主従関係を確立する前に、その関係の共有とデータスキューの影響を評価します。 |
ビジネス内:
- ローコードビルダーは、下流のレポートと暗号化の要件を評価することなくデータ型を選択します。 - オブジェクト間の主従関係を確立することを決定する前に、その関係の共有とデータスキューの影響を評価しません。 |
|
| データ量 | データ内:
10,000 件を超える子レコードを持つ親レコードはありません。 - 10,000 件を超える同じオブジェクト種別のレコードにユーザーが割り当てられていない。 - 同じレコードを参照する参照項目を持つ 10,000 件を超えるレコードが含まれるインスタンスはありません。 - 一括データ読み込みは、ParentId 項目値に従ってバッチに並び替えられます。 -バッチ戦略が同時実行で破綻しないように、スケールテストを使用して本番規模で一括読み込みパターンを検証します。 - 本番へのデータの一括読み込みは、ピーク営業時間中に行われません。 - 一括データ読み込みには、ビジネス上の意思決定に必要な最小限のデータのみが含まれます。 |
データ内:
10,000 件を超える子レコードが存在する。 - ユーザーが同じ種別の 10,000 件を超えるレコードに割り当てられている。 10,000 件を超えるレコードに同じレコードを参照する参照項目があるインスタンスが存在する。 - 一括データ読み込みは、ParentId 項目値に従ってバッチに並び替えられません。 - 本番環境へのデータの一括読み込みは、営業時間のピーク時に行われます。 - 一括データの読み込みは、ビジネス上の意思決定に必要な最小限のデータに制限されません。 |
| フローおよび Apex の場合 ―
- データの歪みが問題になるシナリオで、子レコードの数を複数の親レコードに分散するロジックが存在します。 -インテグレーションを使用してレコードをインポートまたは複製すると、ロジックによって適切なユーザーに割り当てられます。 - Apex コレクション (リストやセットなど) の場合、クエリを最小限に抑えてデータ処理を最適化するために複数のレコードを処理するロジックが存在します。 - 拡張性の高いコードの標準とベスト プラクティスに準拠する効率的なApexコードが記述され、リリースされます。 |
フローおよび Apex の場合 ―
- 子レコードは、すでに割り当てられている子レコードの数に関係なく、親レコードに任意に割り当てられます。 データ読み込みまたはインテグレーションで作成されたレコードは、一般的な「インテグレーションユーザー」に割り当てられます。 - 同じオブジェクトからの複数の再帰的な SOQL クエリが同期トランザクションにあり、ヒープ使用量が多い。 -開発者がApexコードを作成すると、非効率性とパフォーマンスのアンチパターンが発生します。 |
|
| ビジネス内:
- データのアーカイブおよび消去戦略を文書化して実装している |
ビジネス内:
-データアーカイブおよび消去戦略がないか、戦略が文書化されているが実装されていない |
| ツール | 説明 | 可用性 | Performance | 拡張性 |
|---|---|---|---|---|
| Big Object | プラットフォームで大量のデータを保存および管理します。 | X | ||
| コードスキャナー | Apex コードをスキャンしてパフォーマンスの問題がないか確認します。 | X | ||
| カスタムインデックス | カスタムインデックスを使用してクエリのパフォーマンスを向上させます。 | X | ||
| データの削除 | 不要なデータを削除してパフォーマンスを向上させます。 | X | X | |
| ディビジョン | データをパーティション分割して、クエリとレポートのレコード数を制限します。 | X | ||
| スケールテスト | システムのパフォーマンスをテストし、結果を解釈します。本番にリリースする前に、拡張性とパフォーマンスを検証するために、Playwright または JMeter スクリプトを使用して大規模な UI および API ワークロードをシミュレーションします。 | X | X | |
| Scale Center | システムパフォーマンスに関するセルフサービスとリアルタイムのインサイトを取得します。実行時間の長いトランザクション、例外のホットスポット、スループットのボトルネックを見つけます。開発サイクルの早い段階で拡張性の問題を診断します。 | X | X | |
| ApexGuru | Scale CenterのこのGenAIベースの機能を使用して、実行時にApex、SOQL、テスト クラスのアンチパターンを検出します。ApexGuru と Salesforce Code Analyzer のインテグレーションにより、開発ワークフローで AI を駆使したおすすめとインライン修正を利用できます。これらの推奨事項と修正を使用して、ホットスポットを解決し、クエリの選択性、一括処理、キャッシュ使用量、テスト品質を向上させます。 | X | X | |
| Salesforce Code Analyzer | IDE、CLI、または CI/CD を使用してコードをスキャンし、ベストプラクティスに準拠していることを確認します。Salesforce Code Analyzer と ApexGuru の統合により、開発者ワークフローでパフォーマンスのアンチパターンに関するインサイトを直接取得できます。 | X | ||
| Salesforce Edge ネットワーク | Salesforce Edgeネットワークを介して[私のドメイン]をルーティングすることで、ダウンロード時間とユーザーエクスペリエンスを改善します。 | X | ||
| スキニーテーブル | 頻繁に使用する項目があるテーブルでの結合は避けてください。 | X | ||
| プロアクティブな監視 | レコードの増加、所有権のスキュー、パフォーマンスの低下の異常を継続的に監視します。重大になる前に、規模に関するアラートを表示します。 | X | X |
| リソース | 説明 | 可用性 | Performance | 拡張性 |
|---|---|---|---|---|
| 拡張性の課題 - ビジネスを将来にわたって維持する方法 | 拡張性の実装が、持続可能な成長と長期的な成功にどのようにつながるかを説明します。 | X | X | |
| Scale Center を使用したスケーラブルなアプリケーションの構築とリリース | Salesforce 実装のパフォーマンスの問題を積極的に評価して解決する方法について説明します。 | |||
| 複雑なSalesforceアプリケーションでのパフォーマンスの分析とホットスポットの拡張 | 組織のパフォーマンスと拡張性の問題に対処します。 | X | X | |
| ラッシュ時のトラフィックでアプリケーションがパニックになるべきではない - 準備方法 | スケールテストを成功させるための 4 つの主要なステップについて説明します。 | |||
| ApexGuru AIエンジンの説明 | ApexGuru がカスタムトレーニングされたモデル、実際の組織のテレメトリ、インテリジェントなフィルタリングを使用して、正確でコンテキストに沿ったアクション可能なインサイトを提供する方法について説明します。 | X | X | |
| ApexGuruを使用したアプリケーションおよびAgentforce向けApexの最適化 | SOQL、DML、デバッグ、非効率性のテストなど、ApexGuruが開発者のパフォーマンス アンチパターンの検出と修正にどのように役立つかについて説明します。また、ApexGuruを、アプリケーションの拡張性の高い開発とAgentforceの実装のためのAI搭載コーチとして使用します。 | X | X | |
| ApexGuru Antipatterns | Salesforce のメジャーリリースのたびに更新される ApexGuru で検出されたアンチパターンの公式ライブラリについて説明します。 | X | X | |
| 大量のデータを使用するリリースのベストプラクティス | 大量のデータのプロセスへの影響を理解します。 | X | ||
| Salesforce Edge ネットワークに関する考慮事項 | Salesforce Edge ネットワークを使用するために組織を準備する方法を確認します。 | X | ||
| 設計標準テンプレート | 組織の設計標準を作成します。 | X | X | X |
| データモデル設計に関する考慮事項 | 拡張性とメンテナンスのためにデータモデルを最適化します。 | X | X | |
| 企業の規模に応じたレコードアクセス権の作成 | 設定によってアクセス制御のパフォーマンスを最適化します。 | X | ||
| 大量のデータを処理するシステムのインフラストラクチャ | 大量のデータを使用するリリースのシステムパフォーマンスをサポートする機能について説明します。 | X | ||
| 一括管理の学習リソース | 一括管理について説明します。 | X | X | |
| Lightning Experience パフォーマンスの最適化 | 組織のLightning Experienceを改善して、ユーザーの作業時間を短縮します。 | X | ||
| Salesforce でのルックアップスキューの管理によるレコードロック例外の回避 | ルックアップスキューの影響を最小限に抑える方法を理解します。 | X | X | |
| SOQL および SOSL のベストプラクティス | 大量のデータを使用するリリースの場合は、SOQL および SOSL のベストプラクティスに従ってください。 | X | X | |
| 大規模な再配置のためのツール | 再配置を効果的に計画および実行します。 | X | ||
| マッシュアップの使用 | 大きなデータセットを別のアプリケーションで管理します。 | X | X |
| 安全 | ||
|---|---|---|
| 安全なシステムは、ビジネス、関係者、データを保護します。セキュアなアーキテクチャにより、承認されたユーザーのみがアクセスでき、ユーザーのアクセスを作業に不可欠なものに制限して、システム内のデータが侵害されないようにします。 | ||
| 組織のセキュリティ | セッションセキュリティ | データセキュリティ |
| 認証 Authorization |
セッション管理 デバイスアクセス 脅威の検出と対応 |
共有と表示 暗号化の使用 |
| 適合 | ||
| 準拠ソリューションは、法的および倫理的なガイドラインに従います。準拠アーキテクチャは、法的規制と業界標準に準拠し、倫理ポリシーに準拠し、すべてのユーザーに公平に対応します。 | ||
| 法的遵守 | 倫理基準 | アクセシビリティ |
| データプライバシー ローカライズ |
会社の方針 人工知能 |
データエントリ ナビゲーション |
| 信頼性 | ||
| 信頼性の高いソリューションは、さまざまな条件下で効率的かつ確実に動作します。信頼性の高いアーキテクチャは、ユーザーが期待するタイミングと場所で使用でき、一貫したパフォーマンスを提供し、ビジネスに合わせて拡張できます。 | ||
| 可用性 | パフォーマンス | 拡張性 |
| リスク管理 障害の軽減 |
スループット 遅延 |
データモデリング データ量 |
| パターン | アンチパターン | |
|---|---|---|
| 認証 | 設計標準およびドキュメント:
承認済みセキュリティ人格が明確に定義され、リストされている - セキュリティマトリックスにセキュリティ人格と許可された認証スキーム (UI、API) の対応付けが存在する |
設計標準とドキュメントが存在する場合、次のことを行います。
- セキュリティ人格を含めない -セキュリティ人格と許可された認証スキームの明確な対応付けを含むセキュリティマトリックスを含めない |
| 組織内:
- Salesforce MFA Check に合わせたログイン設定 -Salesforce にログインしているユーザーとエンティティのリレーションは 1 対 1 (共有ユーザーなし) - API アクセスコントロールにより、未承認の接続アプリケーションを介したユーザーの認証を防止 SSO が有効になっている場合、承認された管理者ユーザーにダイレクトログインアクセス権がある |
組織内:
- ログイン設定が Salesforce MFA Check に適合していない -Salesforce にログインしているユーザーとエンティティ間のリレーションが 1 対 1 ではない (共有ユーザーアカウントがある) - ユーザーがファイアウォールの内側から Salesforce にアクセスする場合、ファイアウォールはハードコードされた IP アドレスを使用して Salesforce との間の通信を保護します。 - API アクセスコントロールが有効になっていない -SSO が有効になっている場合、承認された管理者ユーザーには直接ログインアクセス権がありません。 |
|
| LWC、Apex、Aura の場合:
- 認証を実行するメソッドは、指定ログイン情報を使用してユーザー名/パスワードフローを処理します。 - ユーザー名やパスワードが判読可能な形式でコードに表示されない (ハードコードされた値や文字列がない) - カスタムログインフローが存在する場合、関連するすべてのカスタムコードで適切な SessionManagement メソッドが使用されます。 |
LWC、Apex、Aura の場合:
- 認証がアドホックで処理される - ユーザー名とパスワードがコードに表示される |
|
| Authorization | 設計標準およびドキュメント:
- Salesforce へのアクセス権を持つすべてのユーザーとシステムがセキュリティマトリックスの 1 つ以上の人格に対応付けられる -セキュリティマトリックスには、メタデータ権限と割り当てられたユーザー人格が明確にリストされています。 - 権限を昇格させる使用事例が明確にリストされている。たとえば、次のようなケースがあります。 -- 「すべてのデータの編集」権限 -- 「すべてのデータの参照」権限 |
設計標準とドキュメントが存在する場合、次のことを行います。
- セキュリティマトリックスを含めない - 権限を明確にリストしない - 権限の昇格を許可する使用事例を明確にリストしない |
| 組織内:
権限セットと権限セットグループは、メタデータへのアクセスを制御するために使用されます。 - 権限セットと権限セットグループはビジネス機能に合わせて調整 - ユーザーに割り当てられた権限は、セキュリティマトリックス定義に従います。 - プロファイルは、ログイン IP アドレスの制限とログイン時間を制御するためにのみ最小限使用されます。 - すべてのインテグレーションに一意の API 専用インテグレーションユーザーが設定されている |
組織内:
- 権限セットグループがビジネス機能に基づいてアクセスできるように設定されていない 権限セットがアドホックに設定されている - 権限セットが冗長であるか、重複が激しい。明確な機能ロジックやセット間の違いを理解するのが難しい。 - ユーザーに割り当てられた権限がセキュリティマトリックス定義に従っていない - プロファイルにはメタデータのアクセス制御が含まれます。 - API 限定ユーザーが設定されていないか、複数のインテグレーションで共有されている |
|
| Apex:
- データベース操作では、次のような項目レベルおよびオブジェクトレベルのアクセスチェックが適切に実行されます。 -- DML およびデータベース DML ステートメントは、データ操作のユーザーモードまたはシステムモードを宣言します。 -- DML およびデータベース DML ステートメントでは、データ操作の前に stripInaccessible メソッドを使用します。
-- SOQL および SOSL ステートメントは、 WITH USER_MODE および WITH SYSTEM_MODE キーワードおよび/または
-- stripInaccessible メソッドは、クエリ結果とサブクエリ結果を絞り込むために使用されます。
-- sObject describe の結果メソッド ( isAccessible、isCreateable、isUpdateable、isDeletable) は慎重に使用されます。 |
Apex:
- DML、データベースクラスのメソッド、SOQL および SOSL がデフォルトのシステムモードで実行 - 次のようなデータベース操作では、アクセスチェックが適切に実行されません。 -- DML またはデータベースクラスのメソッドでは、sObject および項目レベルのアクセス権に対して isAccessible、isCreateable、isUpdateable、isDeletable チェックのみが使用されます。
-- SOQL クエリは、アクセス制限に WITH SECURITY_ENFORCED キーワードのみを使用します。 |
|
| フロー内(フロー設計のセキュリティに関する考慮事項):
- フローでは、可能な限り制限の厳しい実行コンテキスト (理想的にはユーザーモード) が使用されます。 -セキュリティ上の機密データや特権データへのアクセスは、実行コンテキストを最小限に抑えるためにサブフローによって実行されます。 - レコードトリガーフローで実行されるロジックの制限 フロー入力が検証され、許可されたペイロードのみが入力として渡されることを確認します。 |
フロー内:
- フローが実行するアクションに関係なく、フローはシステムモードまたは共有なしのシステムモードで実行されます。 - すべてのフローロジックが 1 つの大きなフロー内で実行される - フロー入力は検証されず、検証なしでコンシューマーに渡されます。 |
| パターン | アンチパターン | |
|---|---|---|
| セッション管理 | 設計標準およびドキュメント:
-セキュリティ人格には、各人格の承認済みセッション種別とタイムアウト/期間設定が明確に記載されています。 - ログイン時間が指定されている (または不要として識別されている) - 高度なセッションレベルセキュリティまたは権限を必要とする操作が明確で検出可能 - 接続アプリケーションの範囲とトークン管理ポリシーが明確で検出可能 |
設計標準およびドキュメント:
- セキュリティ人格が存在しないか、セッション種別とタイムアウト/期間設定に関する情報が不足しています。 - セキュリティポリシーに接続アプリケーションの範囲やトークン管理に関する情報が含まれていない |
| 組織内:
- セッション監査では、ユーザーは予期されるセッション種別でのみ Salesforce にアクセスできます。 -「API 限定ユーザー」アクセスに対する明確な有効な権限セットがあり (「API 限定」権限が TRUE に設定されている)、すべてのインテグレーションユーザーと自動化ユーザーが割り当てられている - ユーザーがファイアウォールの内側から Salesforce にアクセスする場合、ファイアウォールは IP アドレスではなく必須ドメインの許可リストを使用して、Salesforce との間の通信を保護します。 - 無効なセッションタイムアウト間隔がデフォルト (2 時間) を超えていない 次の設定がすべて有効になっている。 -- [設定] ページのクリックジャック保護 -- 設定以外の Salesforce ページのクリックジャック保護 -- クロスサイトリクエストフォージェリ (CSRF) 保護 -- クロスサイトスクリプティング (XSS) 保護 -- コンテンツ盗聴保護の有効化 -- 参照元 URL の保護 -- Salesforce の外部にリダイレクトされる前にユーザーに警告する |
組織内:
定期的なセッション監査がない - ユーザーが持つべきセッション種別の定義がない インテグレーションユーザーと自動化ユーザーで「API のみ」権限が不明瞭または欠落している - ユーザーがファイアウォールの内側から Salesforce にアクセスする場合、ファイアウォールはハードコードされた IP アドレスを使用して Salesforce との間の通信を保護します。 - 無効なセッションタイムアウト間隔がデフォルト (2 時間) を超えている 次のいずれかの設定が無効になっている。 -- [設定] ページのクリックジャック保護 -- 設定以外の Salesforce ページのクリックジャック保護 -- クロスサイトリクエストフォージェリ (CSRF) 保護 -- クロスサイトスクリプティング (XSS) 保護 -- コンテンツ盗聴保護の有効化 -- 参照元 URL の保護 -- Salesforce の外部にリダイレクトされる前にユーザーに警告する |
|
| LWC、Apex、Aura の場合:
- カスタムログインフローが存在する場合、関連するすべてのカスタムコードで適切 な SessionManagement メソッドを使用してセッションレベルセキュリティを割り当てる |
LWC、Apex、Aura の場合:
- カスタムログインフローが存在する場合、セッションレベルセキュリティを割り当てるロジックはありません。 |
|
| デバイスアクセス | 設計標準およびドキュメント:
- デバイスポリシーが明確で検出可能 -セキュリティ人格が適切なデバイスの使用状況とポリシーに明確に対応付けられている |
設計標準およびドキュメント:
セキュリティポリシーが存在しないか、デバイスアクセスに関する情報が含まれていない |
| 組織内:
- Salesforce モバイル接続アプリケーションの設定で、無操作状態の後に PIN/パスコードロック解除が必要 ビジネスニーズにより、Salesforce モバイルにアクセスできるユーザーの厳格な制御が必要な場合、API アクセス制御が有効になり、Salesforce モバイルアプリケーションのすべてのユーザーに権限セットが割り当てられます。 |
組織内:
- Salesforce モバイル接続アプリケーションが、無操作時に PIN/パスコードロック解除を要求するように設定されていない – ビジネスニーズにより、Salesforce モバイルにアクセスできるユーザーを厳密に制御する必要があるが、API アクセス制御が有効になっていない、または権限セットを使用して Salesforce モバイルアプリケーションへのアクセスを制御していない |
|
| 脅威の検出と対応 | 設計標準およびドキュメント:
-セキュリティポリシーには、応答をトリガーする必要があるイベントのリストと適切な応答種別が含まれます。 - データモデルのすべてのオブジェクトで監査レベルが指定されている - Salesforce 内で使用可能なログを確認する手順が文書化されている - すべての自動応答が明確に文書化されている |
設計標準およびドキュメント:
セキュリティポリシーが存在しないか、脅威の検出とアラートに関する情報が含まれていない - 自動レスポンスのドキュメントが存在しないか不明瞭である |
| 社内:
-監査データは、ビジネス関係者が理解してアクセスできるレポートで利用できます。 - 監査履歴とレポートの定期的な確認 |
社内:
-監査データは、アクセスと解釈に専門分野の専門知識が必要なログファイルでのみ使用できます。 - 監査情報をレビューするプロセスが存在しない |
|
| 組織内:
- 異常な利用状況が検出された場合にユーザーアカウントを無効化したり、リソースへのアクセスをリアルタイムでブロックしたりすることで、脅威に対応するための自動化が実施されている - 通知とアラートが、異常な活動について適切なユーザーに通知するように設定されている - 非公開データまたは機密データを含むすべての項目で項目履歴管理が有効になっている |
組織内:
-脅威に対応するための自動化が確立されていない - 通知とアラートが、異常な活動について適切なユーザーに通知するように設定されていないか、異常な活動に関連する一部の通知とアラートが存在するが、それらはアドホックである - 非公開データまたは機密データを含む項目で項目履歴管理が一貫して有効になっていない |
| パターン | アンチパターン | |
|---|---|---|
| 共有と表示 | 設計標準およびドキュメント:
- 各ユーザー人格がアクセスを許可されているデータの概要がセキュリティマトリックスに記載されています。 - 外部ユーザーと内部ユーザーで異なるデータアクセス標準が使用される (該当する場合) |
設計標準およびドキュメント:
- 設計標準とドキュメントが存在しないか、セキュリティマトリックスが含まれていない - セキュリティマトリックスが存在する場合、ユーザー人格のデータアクセスの概要は示されません。 |
| 組織内:
- コンプライアンス要件により、内部ユーザーの組織の共有設定 (OWD) は [公開/参照]、内部ユーザーの OWD は [非公開] - 外部ユーザーの OWD は非公開 -生成 AI はユーザーモードでのみ動作するか、システムアクセスの特定の使用目的に明確なビジネス上の正当性がある |
組織内:
- 内部ユーザーの OWD がビジネス上の理由なく非公開に設定されているか、内部ユーザーの OWD が公開/参照・更新可能に設定されている - 外部ユーザーの OWD がビジネス上の理由なく [非公開] 以外に設定されている -生成 AI はビジネス上の正当性なしでシステムモードで動作します。 |
|
| Apex:
- データにアクセスするすべてのコード (SOQL/SOSL) またはデータ操作を実行するすべてのコード (DML/データベースクラスのメソッド) で共有キーワードを使用 |
Apex:
- 共有キーワードが一貫して使用されていない |
|
| 暗号化の使用 | 設計標準およびドキュメント:
-転送中および(必要に応じて)保存中のデータ暗号化の使用事例が明確で検出可能 承認済みの暗号化プロトコルが明確にリストされている - コードドキュメントに暗号化が使用されている場所と使用されているプロトコルが明記されている |
設計標準およびドキュメント:
- 承認された暗号化プロトコルが明確でない、またはリストに記載されていない - コードが文書化されていないか、コードのどこでどのように暗号化が使用されているかに関するドキュメントが明確でない |
| 組織内:
-保存時のデータ保護を強化する必要があるセキュリティ リスクが特定された場合、HyperforceまたはSalesforce Shieldのいずれかが保存時の暗号化を提供します。 |
組織内:
-ビジネス ニーズにより保存時のデータ保護を強化する必要があるが、HyperforceとSalesforce Shieldのどちらも使用されていない |
|
| Apex:
-ビジネス ニーズで転送中のデータ保護を強化する必要がある場合、統合に関連するすべてのコードは、暗号化クラス メソッドを使用してロジックを実行し、送信前にデータを暗号化するか、受信時にデータを復号化します。 |
Apex:
- ビジネスニーズにより、転送中のデータ保護を強化する必要があるが、インテグレーションに関連するコードで、送信前または受信時にデータを暗号化せずにロジックを実行する、または暗号化クラスのメソッドをアドホックに使用する |
| ツール | 説明 | 組織のセキュリティ | セッションセキュリティ | データセキュリティ |
|---|---|---|---|---|
| Apex 暗号クラス | Apex でのデータの暗号化と復号化 | X | ||
| API アクセスコントロール | Salesforce API と接続アプリケーションへのアクセスを管理する | X | X | X |
| API 異常イベント | ユーザーが API コールを実行する方法の異常を追跡する | X | ||
| ブラウザのセキュリティ設定 | 機密データの保護と SSL 証明書の監視 | X | ||
| 証明書ベースの認証 | 一意のデジタル証明書を使用して個人を認証する | X | X | |
| 証明書と鍵 | Salesforce からの外部 Web サイトへの要求を確認する | X | X | |
| コードスキャナー | Apex コードのセキュリティ脆弱性のスキャン | X | X | |
| 接続アプリケーション | API と標準プロトコルを使用した統合 | X | X | |
| クレデンシャルスタッフィングイベント | 盗まれたユーザーログイン情報を使用するログイン試行を追跡する | X | ||
| CSP 信頼済みサイト | コードインジェクション攻撃 (クロスサイトスクリプティング) の防止 | X | ||
| カスタムログインフロー | ユーザーのログインビジネスプロセスの制御 | X | ||
| 顧客 ID | Web サイトおよびアプリケーションのログインと検証を制御する | X | ||
| Data Mask | Sandbox の機密データの自動マスキング | X | ||
| デバッグログ | 組織で発生したイベントを追跡する | X | ||
| 代理管理者 | 非管理者ユーザーへの制限付き管理者権限の割り当て | X | X | |
| デバイスの有効化 | 信頼できないブラウザー、デバイス、IP 範囲からのログインを確認する | X | ||
| 拡張トランザクションセキュリティ | イベントを傍受し、ユーザー活動を監視および制御する | X | ||
| フィールドアクセス | 項目レベルでのデータアクセスの制御 | X | ||
| 項目監査履歴 | アーカイブされた項目履歴データを保持するポリシーを定義する | X | ||
| 項目履歴管理 | 項目履歴の追跡と表示 | X | ||
| Frontdoor.jsp | 既存のセッション ID とサーバー URL を使用したアクセスを許可 | X | ||
| Heroku Connect | Heroku と Salesforce 間の双方向同期 | X | ||
| Heroku Shield | HIPAA または PCI 準拠アプリケーションの作成 | X | ||
| 高保証セッションセキュリティ | 機密操作のセキュリティ強化が必要 | X | ||
| Identity Connect | ユーザーレコードを Active Directory アカウントに対応付ける | X | ||
| ID 検証履歴 | ユーザー ID 検証試行の監査 | X | ||
| インテグレーションユーザーライセンス | API を介してのみデータと機能へのアクセス権を付与します。 | X | X | |
| Lightning Login | 脆弱なパスワードやパスワードを忘れた場合、およびアカウントがロックアウトされないようにする | X | ||
| ログインアクセス | サポートユーザーが別のユーザーとしてログインできるようにする | X | ||
| ログインフォレンジック | なりすましを示す可能性がある行動を特定する | X | ||
| ログイン履歴 | 組織と Experience Cloud サイトのログイン試行の監視 | X | ||
| モバイルデバイス追跡 | 組織へのモバイルデバイスのアクセスを追跡および監視する | X | ||
| Mobile SDK | スタンドアロンモバイルアプリケーション内の Salesforce Platform への接続 | X | X | X |
| ユーザー権限の監視 (Shield) | 権限セットおよび権限セットグループの変更 | X | X | |
| 多要素認証 | ログインに 2 つ以上の検証方法が必要 | X | X | |
| 相互認証 | SSL または TLS 相互認証の適用 | |||
| 私のドメイン | ログインページとポリシー、SSO、ソーシャルログインの設定 | X | ||
| 指定ログイン情報 | エンドポイント URL と認証パラメーターを指定する | X | ||
| OAuth 認証 | トークン交換によるクライアントアプリケーションアクセスの承認 | X | ||
| パスワードポリシー | パスワード履歴、長さ、複雑さの設定 | X | ||
| 権限セットの割り当ての有効期限 | 権限セットおよび権限セットグループの割り当ての有効期限を設定する | X | X | |
| 権限セットイベント | 権限セットおよび権限セットグループへの変更を監視する | X | X | |
| 権限セットグループ | 複雑なアクセス要件をサポートする権限セットのバンドル | X | ||
| 権限セット | ユーザーがメタデータ、機能、アプリケーションにアクセスする方法を制御する | X | ||
| プライベートコネクト | Salesforce と Amazon Web Services 間のセキュアなインテグレーション | X | ||
| プロファイル | ログイン IP アドレスの制限とログイン時間の制御 | X | ||
| リアルタイムイベントモニタリング | Salesforce での標準イベントの監視と検出 | X | ||
| リモートサイト設定 | Apex または JavaScript コール用の外部サイトを登録 | X | ||
| レポート異常イベント | ユーザーがレポートを実行またはエクスポートする方法の異常を追跡する | X | ||
| 制限ルール | ユーザーが不要なレコードにアクセスできないようにする | X | ||
| Salesforce Code Analyzer | IDE、CLI、またはCI/CDを使用してコードをスキャンし、ベストプラクティスに準拠していることを確認する | X | X | |
| 範囲設定ルール | ユーザーに表示されるデフォルトレコードを制御する | X | ||
| セキュリティセンター | すべての組織のセキュリティ設定を表示し、ポスチャ変更のアラートを設定する | X | X | |
| セキュリティ状態チェック | セキュリティ設定の脆弱性を特定する | X | ||
| セッションハイジャックイベント | 盗まれたセッション識別子を使用して不正アクセスを特定する | X | ||
| Session Management クラス | 有効なセッションのセキュリティ設定のカスタマイズ | X | ||
| セッションセキュリティ設定 | 悪意のある攻撃から保護するためのセッションの設定 | X | ||
| Setup Audit Trail | システム管理者による最近の設定変更の追跡 | X | ||
| 共有設定 | レコードレベルでのデータアクセスの制御 | X | ||
| Shield Platform Encryption | 保存中および転送中の機密データを暗号化 | X | ||
| シングルサインオン | 1 回のログインで複数のアプリケーションにアクセスできるようにする | X | X | |
| クロスドメイン ID 管理 (SCIM) システム | REST API を使用したシステム全体の ID の管理 | X | ||
| 脅威検知 | 統計と機械学習を使用した脅威の検出 | X | ||
| 信頼済み IP 範囲 | 追加の検証を必要としない IP アドレスを定義する | X | ||
| ユーザーアクセスレポート | ユーザーのオブジェクト、レコード、権限アクセス権の統合ビューの取得 | X | X |
| リソース | 説明 | 組織のセキュリティ | セッションセキュリティ | データセキュリティ |
|---|---|---|---|---|
| 共有アーキテクチャのガイド | アクセスツール、共有モデル、使用事例についての詳細 | X | ||
| 設計標準テンプレート | 組織の設計標準を作成する | X | X | X |
| ユーザーセキュリティモデルの作成方法 | ユーザーセキュリティモデルの理解を深める | X | X | |
| Salesforce での最小権限の原則の実装方法 | Salesforce での PoLP データアクセス制御の適用方法 | X | X | |
| ユーザーセッションの監視 | 有効なセッションを確認して疑わしいセッションを終了する | X | ||
| 多要素認証 | Salesforce からの公式 MFA リソースへのアクセス | X | ||
| 権限セットグループ (Trailhead) | 権限セットグループのハンズオン | X | X | |
| REST APIアーキテクチャ | REST API の用語と概念の理解 | X | X | X |
| セキュリティと SOAP API | SOAP API の用語と概念について | X | X | X |
| API および内部システムユーザー向けのセキュリティのベストプラクティス | API ユーザーによる Salesforce へのアクセスの保護と内部システムユーザーの保護 | X | ||
| セキュリティ実装ガイド | Salesforce セキュリティの包括的な確認 | X | X | X |
| セキュリティポリシーテンプレート | 組織のセキュリティポリシーの設定 | X | X | X |
| Session Types | 組織へのアクセスに使用されるセッションの種別を特定する | X | ||
| 脅威モデリングの基礎 (Trailhead) | セキュリティの脅威とその防止方法について説明します。 | X |
| 信頼済み | ||
|---|---|---|
| 信頼できるソリューションは、ビジネスと関係者を保護します。 | ||
| 安全 | 適合 | 信頼性 |
| 組織のセキュリティ セッションセキュリティ データセキュリティ |
法的遵守 倫理基準 アクセシビリティ |
可用性 Performance 拡張性 |
| 簡単 | ||
| 簡単なソリューションは、ビジネス価値を迅速に提供します。 | ||
| 意図的 | 自動 | エンゲージメント |
| 戦略 メンテナンス性 読みやすさ |
効率 データ整合性 |
合理化 役に立つ |
| 適応可能 | ||
| 適応性の高いソリューションは、ビジネスに合わせて進化します。 | ||
| 耐障害性 | コンポーザブル | |
| アプリケーションライフサイクル管理 インシデント対応 継続性計画 |
懸念事項の分離 相互運用性 パッケージ性 |
|
| 意図的 | ||
|---|---|---|
| インテントソリューションは、ビジネス価値を即座に経時的に提供します。インテントアーキテクチャは戦略的に計画され、効果的に管理でき、人間にとって読みやすく、理解しやすいものです。 | ||
| 戦略 | メンテナンス性 | 読みやすさ |
| 優先順位付け ロードマップ ガバナンス |
標準とカスタム 技術的負債 |
設計標準 ドキュメント |
| 自動 | ||
| 自動化ソリューションにより、ビジネスはより迅速かつ大規模に作業を完了できます。健全な自動化により、反復的な手動作業や複雑なデータ入力に費やす時間が削減されます。 | ||
| 効率 | データ整合性 | |
| プロセス設計 操作ロジック KPI |
データ処理 エラーハンドリング |
|
| エンゲージメント | ||
| 魅力的なソリューションはユーザーを喜ばせ、導入を促進します。エンゲージメントのためのアーキテクチャとは、直感的で役に立つユーザーエクスペリエンスを作成することです。 | ||
| 合理化 | ヘルプ | |
| アプリケーションの複雑さ フォーム フォーム要素 |
通知 & メッセージング アプリケーション内ガイダンス レコグニション & 報奨 |
|
| スクラッチ組織 | Developer Sandbox | Developer Pro Sandbox | Partial Copy Sandbox | Full Sandbox | |
|---|---|---|---|---|---|
| サポート組織シェイプ | はい | いいえ | いいえ | 不可 | 不可 |
| ソース追跡のサポート | はい | はい | はい | 不可 | 不可 |
| 寿命 | 1 ~ 30 日 | 手動制御 | 手動制御 | 手動制御 | 手動制御 |
| 更新間隔 | 使用不可 | 1 日 | 1 日 | 5 日 | 29 日 |
| リリースプレビューのサポート | 開発者による制御 | Sandbox インスタンスに基づく | Sandbox インスタンスに基づく | Sandbox インスタンスに基づく | Sandbox インスタンスに基づく |
| プロビジョニング時間 | > 5 分 | 時間または日 | 時間または日 | 時間または日 | 時間または日 |
| Metadata Determined By | ソース管理 | 本番 | 本番 | 本番 | 本番 |
| Data Determined By | 手動データ読み込み | 手動データ読み込み | 手動データ読み込み | Sandbox テンプレート | 本番 |
| データ制限 | 200 MB | 200 MB | 1 GB | 5 GB | 本番と同じ |
| ToDo | 組織シェイプ | ソース追跡 | 頻繁な更新 | リリースプレビューのサポート | 本番のすべてのメタデータ | 本番の部分メタデータ | 本番からの大規模なデータセット | 本番の部分的なデータセット | 互換性のある環境 |
|---|---|---|---|---|---|---|---|---|---|
| プロトタイピング | X | X | X | X | X | X | X | スクラッチ組織、開発者および開発者向け Pro Sandbox | |
| 新機能の調査または概念実証開発 | X | X | X | X | X | X | X | スクラッチ組織、開発者および開発者向け Pro Sandbox | |
| ユーザー受け入れテスト | X | X | X | X | X | X | Developer Sandbox、Developer Pro Sandbox、Partial Copy Sandbox | ||
| パフォーマンスと拡張性のテスト | X | X | X | Full Sandbox | |||||
| ユーザートレーニング | X | X | X | X | X* | X | Developer Pro、Partial Copy、*Full Sandbox | ||
| *特定の種類の作業を完了する必要がある場合は、リソース負荷の低い環境を使用します。 | |||||||||
| パターン | アンチパターン | |
|---|---|---|
| リリース管理 | 本番:
- メタデータは、次のような安定したリリースメカニズムを使用していることを示します。 -- ロック解除済みパッケージに整理されるメタデータ -- DevOpsセンターが有効でインストール中 -- ソース形式を使用したメタデータ API を介したリリース - リリースログには、使用可能な履歴内の失敗したリリースは表示されません。 -リリース履歴には、リリース期間内の明確なリリースケイデンスおよび非常に均一なリリースクラスターが表示されます。 |
本番:
- メタデータは、次のような組織ベースのリリースメカニズムを使用していることを示します。 -- 変更セットの積極的な使用 -- メタデータ API を使用したリリースでは package.xml 形式を使用します。 - リリースログには、使用可能な履歴内の失敗したリリースの繰り返しが表示されます。 - リリースに識別可能なケイデンスがないか、リリースのクラスターが不規則である (ホットフィックスとアドホックロールバックの兆候)。 DevOps センターが有効になっておらず、インストールされていません。 |
| ロードマップとドキュメント:
リリース名は明確です。 - 機能が特定の指定リリースに明確に関連付けられている。 - リリース名は検索および検出可能です。 -チームは、アーティファクト、開発項目、その他の作業に正しいリリース名でタグ付けするための明確なガイドラインを見つけて従うことができます。 - リリース名別にリリースマニフェストの明確なビューをまとめることができます。 - 生成 AI アプリケーションの品質しきい値は、さまざまな開発フェーズで定義されます。 |
ロードマップとドキュメント:
- リリース名は含まれません。 -機能が特定のリリースに明確に関連付けられていない。 - リリース名がその場限りで使用されているか、存在しない。 - チームは、アーティファクト、開発項目、その他の作業を異なる方法で参照します。 - リリース名を使用して、リリースマニフェストの明確なビューをまとめることはできません。 - 生成 AI アプリケーションの品質しきい値が定義されていないか、定義されているとしても、さまざまな開発フェーズで定義されていない。 | |
| 環境戦略 | 組織内:
- ソース駆動型の開発およびリリースモデルを採用している。 - Developer Sandbox および Developer Pro Sandbox でソース追跡が有効になっている。 特定の環境のメタデータはリリースアーティファクトから独立しています。 - 環境はリリースパスに直接対応していません。 - 変更のリリースパスは、変更の種別 (高リスク、中リスク、低リスク) によって異なります。 -過密環境は存在しない。 - リスクの高い設定変更が本番で直接行われることはありません。 - ピーク営業時間中にリリースは発生しません。 - Data 360 Sandboxを使用して、Einsteinデータ ライブラリ、Knowledge記事、非構造化データを必要とするエージェントの使用事例を適切にテストする |
組織内:
組織ベースの開発およびリリースモデルを採用している。 - Developer Sandbox および Developer Pro Sandbox でソース追跡が有効になっていない。 特定の環境のメタデータはリリースアーティファクトです。 - 環境はリリースパスに直接対応します。 - 変更の種別に関係なく、すべての変更のリリースパスは同じです。 - 過密環境が存在する。 - リスクの高い設定変更が本番で直接行われている。 - リリースは営業時間のピーク時に行われます。 - Einsteinデータ ライブラリ、Knowledge記事、非構造化データを必要とするAgentforceエージェントは、Data 360 Sandboxを使用してテストされません。 |
| シグナリング戦略 | 組織内:
- チームは、状態チェック API と SLO の定義と標準化に関して協力します。 - シグナリング戦略の定期的なレビューと調整は、事後および運用準備状況レビューの一環です。 本番: - すべてのアプリケーションに状態チェックが実装されています。 - アプリケーションは、負荷や機能などの状態に関する明示的なシグナルを提供します。 - アプリケーションは、連動関係が正常でない場合に正常に機能しないように設計されています。 - 負荷制限は、カスケード障害を防ぐために使用されます。 設計の場合: バックプレッシャおよび負荷制限メカニズムにより、トラフィックによってサービスが過負荷になることを回避します。 - 連動関係は最終的に失敗すると想定されます。シグナルハンドラーは、失敗を改善するために構築されています。 |
組織内:
- チームがサイロで業務を行っているため、一貫性と互換性のない健康シグナリングメカニズムが構築されている。 - シグナル戦略は後付けであり、インシデントが発生したときにのみ対処されます。 本番: - コンポーネントが正常性ステータスを通知せずに警告なしで失敗する。 - アプリケーションは、正常なサービスへの要求を無期限に再試行します。 - すべての要求は、重要度に関係なく同じ優先度で処理されます。 - 問題を特定するために、オペレータはユーザーからの苦情や重要なシステム障害などの事後対応型対策のみを使用します。 設計の場合: - すべての連動関係が常に使用可能であることを前提としており、ネットワークパーティション、遅延の急増、その他の一般的な問題は考慮されていません。 - アプリケーションが過負荷の場合でもすべての受信要求を受け入れるため、遅延や障害の可能性が高まる |
| テスト戦略 | ビジネス:
- ユーザビリティテストでは、さまざまなデバイスと支援技術が使用されます。 - シミュレーターを使用して、拡張性とパフォーマンスのテストで本番同様の条件を再現します。 - 変更がソース制御に反映されると、テストが自動化されて実行されます。 - アプリケーション開発サイクルで耐久テスト、ストレステスト、パフォーマンステスト、スケールテストがいくつかの間隔で実行され、進行中のタスクとみなされます。 - B2C スケールのアプリケーション、大量のユーザー、大量のデータがある場合、QA プロセスの一部としてスケールテストを含めます。 スケールテストは、システムの優先度の高い側面に焦点を絞っています。 スケールテストには明確な条件があります。 - Full Sandbox でスケールテストを実施します。 - プロンプトエンジニアリングには人間による品質レビューが含まれます。 Agentforce テストセンターは、堅牢なエージェントテストに使用されます。 |
ビジネス:
- ユーザビリティテストは実施されないか、実施されるとしても、一部のデバイスで実施されます。 - 本番同様のユーザー要求量、API トラフィック、ネットワーク速度の変動はテストされません。 テストの自動化が行われていない。 - 耐久、ストレス、パフォーマンス、スケールテストは、開発のフェーズまたはフェーズとみなされます。 - QA プロセスの一環としてスケールテストを実施しておらず、B2C スケールのアプリケーション、大量のユーザー、大量のデータがある。 -スケールテストに優先順位が付けられていない。 スケールテストに明確な条件がない。 Partial Copy SandboxまたはDeveloper Sandboxでスケール テストを実施します。 - プロンプトエンジニアリングには人間による品質レビューは含まれません。 - Agentforce エージェントはテストされません。テストされている場合は、Agent Builder を使用してアドホックでのみテストされます。 |
| 組織内:
- すべてのテストデータは、機密データと識別データで整理されます。 |
組織内:
- テストデータは本番データと同一です。 | |
| Apex:
- データファクトリパターンが単体テストに使用される - モックとスタブを使用して API 応答をシミュレーションします。 |
Apex:
- 単体テストは組織データに依存します。 - モックとスタブは使用されません。 | |
| 設計標準およびドキュメント:
- 環境は、サポート可能なテストの種類によって分類されます。 リスク、使用事例、複雑さに応じて適切なテスト体制が指定されます。 |
設計標準およびドキュメント:
各環境でサポートされるテストの種類が明確でない。 - テスト計画は、リスク、使用事例、複雑さで分類されません。 |
| インシデント種別 | 見かけのトリガー | リカバリ戦略 |
|---|---|---|
| システム停止 | ログインの破損やアカウントアクセスの問題 | アカウント回復ポリシー |
| Service unavailability (サービス利用不可) | 冗長なバックアップ サービスの有効化、手動の回避策 | |
| 本番環境のバグ | 最近の変更 | 以前のバージョンのリリースのロールバックまたはリリース解除 |
| 原因不明のバグの発生 | 手動の回避策、重要でない機能の無効化、中小企業へのエスカレーション |
| パターン | アンチパターン | |
|---|---|---|
| Time to Recover | ビジネス:
-回復プロトコルは定期的に実行されます。 - チームは本番のどのサービスを所有し、どのサービスに責任があるかを把握できます。 -チームは問題の診断をサポートする関連ツールを理解します。 |
ビジネス:
- リカバリプロトコルが存在しないか、定期的に実行されていない。 - 本番のさまざまなサービスを所有し、責任を持つチームが明確でない。 - チームには、問題の診断をサポートするツールに関するガイダンスや標準はありません。 |
| ドキュメント:
-リカバリー戦略はインシデント種別とトリガーで定義および分類されます。 - インシデント対応の終了条件は SLO に含まれており、明確です。 インシデント中に権限を昇格させるための有効化条件と割り当てロジックが明確である。 インシデント対応権限セットと承認が明確にリストされている。 一般的な問題の特定と診断に役立つトラブルシューティングガイドが存在する。 |
ドキュメント:
インシデント対応がアドホックに実行される。 -インシデント応答の終了条件が存在しない。 - 昇格した権限が割り当てられていないか、割り当てられている場合はアドホックに割り当てられています。 インシデント対応権限セットと承認がリストされていない。 |
|
| 組織内:
- インシデント対応用のセッションベースの権限セットが存在し、復旧時にサポートスタッフに割り当てることができます。 [Setup Audit Trail (設定変更履歴)] には、指定されたリカバリテスト担当者が、合意された時間にテスト環境にログインし、リカバリテストスクリプトに従ったことが示されます。 |
組織内:
- インシデント対応用のセッションベースの権限セットが存在しないか、存在する場合、サポートスタッフに権限がありません。 - [設定変更履歴] で、指定されたリカバリテスト担当者がテスト環境にログインしていないか、リカバリテストスクリプトに従っていないことが示される | |
| テスト計画:
- リカバリテスト用のテストスクリプトが存在し、繰り返し可能である。 ・インシデントシミュレーションの環境が明確に記載されている。 |
テスト計画:
-リカバリテスト用のテストスクリプトが存在しない。 インシデントシミュレーションの環境が確立されていない。 |
|
| トリアージ機能 | ビジネス:
- インシデントが発生する前に、複雑な問題をサポートするように警告する必要がある SME または関係者を特定します。 -配送チームとサポートチーム間の引き継ぎは稼働開始の一部です。 - 相談があれば、Salesforce アーキテクトが迅速に対応し、チームが復旧に集中できるようにします。 |
ビジネス:
- 警告を受ける必要がある SME または関係者は、インシデントが発生するまで特定されません。 -配送チームとサポートチーム間の引き継ぎはリリースプロセスに含まれません。 - Salesforce アーキテクトは、インシデント対応は自分の作業範囲外であると考えています。 |
| ドキュメント:
- 特定のソリューションで使用されているシステムおよび設計パターンをサポートスタッフが検出および参照可能。 |
ドキュメント:
- 特定のソリューションで使用されているシステムおよび設計パターンをサポートスタッフがすぐに使用できない。 |
|
| 組織内:
-ロギングとカスタムエラーメッセージがシステム全体の実行パスに組み込まれます。 |
組織の場合: - ログ記録メッセージとカスタムエラーメッセージは使用されません。 | |
| 監視とアラート | 組織内:
- アラートは、人の介入が必要なシナリオをユーザーに通知するためにのみ使用されます。その他の失敗は記録され、報告可能です。 -アラートは、そのアラートに応答できるユーザーに送信されます。 可能な場合は、潜在的な障害が発生する前にアラートが配信されます。 |
組織内:
- アラートは、後続のアクションが必要かどうかに関係なく、何らかの障害が発生したときに送信されます。 -技術的なソリューションが必要な問題に関するアラートがビジネスユーザーに配信されます。 - アラートは、すでに発生した失敗に対してのみ配信されます。 |
| ドキュメント:
- プロンプトチューニングアラートのエントリ条件は、直接および間接的な生成 AI フィードバック評価指標に基づいて定義されます。 |
ドキュメント:
- 生成 AI アプリケーションのプロンプトチューニングアラートをトリガーするための条件が定義されていません。 |
| パターン | アンチパターン | ビジネス継続性 | ビジネス:
・ 「 リカバリファースト」の考え方を採用し、最優先のビジネス機能と機能をできるだけ早く影響から除外することを重視します。 - BCP テスト計画のレビューのためのメンテナンススケジュールがある。 |
ビジネス:
インシデント管理には「問題を解決する」という精神が唯一のアプローチです。 - BCP テスト計画は定期的に更新されません。 |
|---|---|---|
| ドキュメント:
- Salesforce が使用できなくなった場合にデータの処理を続行またはトリアージする手順、BCP の使用をトリガーするイベントのリスト、BCP テストの手順と間隔を含む BCP が存在します。 - BCP には、上流と下流のシステムおよび連動関係が含まれます。 |
ドキュメント:
BCP が存在しないか、完了していないか、Salesforce のみが含まれている。 |
|
| テスト計画:
プロセスと人に関連する BCP の領域が考慮されます。 |
テスト計画:
プロセスと人に関連する BCP の領域は考慮されません。 | |
| テクノロジーの継続性 | ビジネス:
-意図的な冗長性システムやフェールオーバーシステムを構築する必要があるかどうかを評価済み - インシデント回復戦略は可能な限り自動化されています。 |
ビジネス:
-意図的な冗長性やフェイルオーバシステムの必要性を評価していない インシデント回復戦略はすべて手動です。 |
| ドキュメント:
- BCP は、チームがインシデントに効果的に対応するために必要となる可能性のある追加のリソースやガラス破損時の処置を考慮します。 |
ドキュメント:
- BCP に運用サポートのニーズが含まれていない。 |
|
| バックアップと復元 | ドキュメント:
- データとメタデータの両方のバックアップおよびリストア戦略が存在する。 |
ドキュメント:
- バックアップおよび復元戦略が存在しないか、存在するとしても不完全であり、データのみに適用されるか、メタデータのみに適用されるかのいずれかです。 |
| 会社:
-バックアップは、承認されたユーザーのみがアクセスできる安全な場所に保存されます。 - テスト計画とテストログでは、データの復元が Full Sandbox または Partial Copy Sandbox で年に 2 回以上テストされていることが示されています。 |
会社:
-バックアップは人間が判読できません。 - バックアップは、未承認のビジネスユーザーがアクセスできる場所に保存されます。 -データ復元プロセスがないか、データ復元プロセスがテストされていません。 |
| ツール | 説明 | アプリケーションライフサイクル管理 | インシデント対応 | 継続性計画 |
|---|---|---|---|---|
| Apex Hammer テスト | 現在および新しいリリースでの Salesforce Apex テストについて説明します。 | X | ||
| ApexスタブAPI | モックフレームワークを作成してテストを合理化します。 | X | ||
| バックアップとリカバリ | データの損失を防ぐためにバックアップを自動的に生成します。 | X | ||
| Big Object | プラットフォームで大量のデータを保存および管理します。 | X | ||
| 項目履歴管理 | 項目履歴を追跡および表示します。 | X | ||
| Get Adoption and Security Insights for Your Organization(組織の採用およびセキュリティに関するインサイトの取得)新しいウィンドウでリンクを開く | 組織での Lightning Experience の採用と使用状況を監視します。 | X | ||
| データの一括読み込みジョブの管理 | Bulk API を使用して、大量のレコードの更新または削除を行います。 | X | ||
| リアルタイムイベントモニタリングイベントの管理 | イベント監視のストリーミングおよびストレージ設定を管理します。 | X | ||
| データおよびストレージリソース | Salesforce 組織のストレージ制限と使用量を表示します。 | X | ||
| デバッグログの監視 | ログを監視し、ログをトリガーするフラグを設定します。 | X | ||
| ログインフォレンジックによるログイン活動の監視 | なりすましを示す可能性がある行動を特定します。 | X | ||
| 設定変更履歴を使用した設定変更の監視 | システム管理者による最近の設定変更を追跡します。 | X | ||
| トレーニング履歴の監視 (この機能は、現在日本のお客様に対してサポートしていません) | ユーザーが受講した Salesforce トレーニングクラスを表示します。 | X | ||
| バックグラウンドジョブの監視 | 組織のバックグラウンドジョブを監視します。 | X | ||
| スケジュール済みジョブの監視 | レポートスナップショット、スケジュール済み Apex ジョブ、ダッシュボードの更新を表示します。 | X | ||
| 拡張性テスト | システムのパフォーマンスをテストし、結果を解釈します。 | X | ||
| プロアクティブな監視 | Salesforce 監視サービスを使用して中断を最小限に抑えます。 | X | ||
| Salesforce Data Mask | Sandbox のデータを自動的にマスキングします。 | X | ||
| [システムの概要] ページ | 組織の利用状況データと制限を表示します。 | X | ||
| 力の使用:Lightning:糸くず | Salesforce CLIを使用してコードを分析および検証します。 | X |
| リソース | 説明 | アプリケーションライフサイクル管理 | インシデント対応 | 継続性計画 |
|---|---|---|---|---|
| パフォーマンスと拡張性のテストにおける7つのアンチパターン | パフォーマンスと拡張性のテストでは、一般的なアンチパターンは避けてください。 | X | ||
| 複雑なSalesforceアプリケーションでのパフォーマンスの分析とホットスポットの拡張 | 組織のパフォーマンスと拡張性の問題に対処するためのアプローチについて説明します。 | X | ||
| 災害復旧計画の作成 (Trailhead) | 災害復旧計画を作成します。 | X | ||
| ビジネス継続性はバックアップ/リストア以上のもの | BCP を包括的に把握します。 | X | ||
| 設計標準テンプレート | 組織の設計標準を作成します。 | X | ||
| Salesforce の診断および監視ツール | 実装の品質とパフォーマンスを改善する方法について説明します。 | X | ||
| ビジネス継続性計画の指針 | 効果的な BCP の基礎となる基本原則を確認します。 | X | ||
| Salesforce でのスケールテスト方法 | スケールテストライフサイクルの 5 つのフェーズについて説明します。 | X | ||
| パフォーマンステストの概要 | パフォーマンステスト方法を開発する方法について説明します。 | X | ||
| 組織の監視 | セルフサービス監視オプションについて説明します。 | X | ||
| テスト戦略テンプレート | 拡張性とパフォーマンスのテスト計画を作成してカスタマイズします。 | X | ||
| テスト戦略テンプレート | テスト戦略が完了していることを確認します。 | X | ||
| ソース駆動開発について (Trailhead) | パッケージ開発とスクラッチ組織について説明します。 | X |
| パターン | アンチパターン | |
|---|---|---|
| プロセス設計 | 組織内:
- 各フローは 1 つの特定の目的を果たす - 各ステップで特定の詳細なタスクを実行 - フローは、メインフローとサポートサブフローで構成される階層構造で編成されます。 - すべてのユーザー入力にフロー内の明確な目的がある - 既存のシステムデータを使用できない場合にのみ、ユーザーにデータの提供が求められます。 |
組織内:
- フローは複数の目的を果たし、コンテキストを提供するために追加の入力が必要 - フローには、データが使用されていない入力が必要です。 - 関連ステップのグループには、他のフローのステップのグループと重複する機能が含まれています。 - フローは、保存されているデータを代わりに使用できる場合にユーザーの入力を要求 |
| Apex:
- 各クラスは 1 つの特定の目的を果たす - 各方法で特定の詳細なタスクを実行 - すべての入力変数には、クラス内で明確な目的があります。 - 最小限のリソースでコードを実行 |
Apex:
- クラスは複数の目的を果たす - メソッドが複数の ToDo を実行する、またはメソッドが属するクラスの明確な目的と一致しない ToDo を実行する - 入力変数は実際にはメソッドで使用されません。 - データベースまたは外部システムからデータを不必要に取得するメソッド |
|
| 運用ロジック | フロー内:
- ハードコードされた値を参照する変数がない (レコードタイプ、ユーザーなど) - すべての自動起動フローおよびプロセスでは、決定要素または一時停止要素、あるいはその両方を使用してエントリ条件を評価し、大量のデータに対する無限ループや実行を防止します。 - フロー(プロセスを含む)は、大量のデータ コンテキストでロジックをApexに渡す - サブフローは、ビジネス全体で再利用する必要があるプロセスのセクションで使用されます。 |
フロー内:
- 変数の値がハードコードされている - 一括データの読み込み前にフロー (プロセスを含む) を手動で無効化する必要がある - フロー (プロセスを含む) で「未対応の例外」通知がトリガーされる - 単純なフローでも、ガバナ制限に関連するエラーが発生することがよくあります。 - サブフローを使用するのではなく、フローの一部がフロー間で繰り返される |
| Apex:
- ハードコードされた値を参照する変数がない (レコードタイプ、ユーザーなど) - すべてのワイルドカード条件が SOSL に表示されます。 - SOQL が try-catch でラップされている
- ループ内に SOQL が表示されない - SOQL ステートメントは、次を含む選択的なステートメントです。 -- 類似の比較や部分的なテキストの比較は使用しない
-- 比較演算子は、主ロジックまたは唯一のロジックとして正のロジック ( INCLUDES、IN など) を使用します。
-- = NULL、!= NULL の使用はまれで、常に正の比較演算子の後にある
-- LIMIT 1 ステートメントは表示されません。
-- no usage of ALL ROWS keyword
| Apex:
- 変数の値がハードコードされている - SOSL がワイルドカード選択条件で使用されることはほとんどありません。 - SOQL が try-catch でラップされていない
- SOQL がループ内に表示される - SOQL ステートメントは、次を含む非選択的です。 -- 類似検索条件とワイルドカード検索条件が表示されます。
-- NOT 条件、NOT IN 条件を使用した比較は、主比較演算子または唯一の比較演算子として使用されます。
-- = NULL、!= NULL 条件は主比較演算子または唯一の比較演算子として使用されます。
-- LIMIT 1 ステートメントが表示されます。
-- ALL ROWS キーワードが使用されている
| |
| 設計標準およびドキュメント:
- 自動化の計画済み実行パスと潜在的な実行パスが明確になっている - 自動化内の同期操作と非同期操作の使用事例が設計標準の一部として明確に示されている |
設計標準およびドキュメント:
オートメーションの呼び出しが文書化されていない - 同期操作と非同期操作の使用事例は対応していません。 |
|
| KPIs | ドキュメント内:
- すべてのオートメーションの出力は測定可能で期限付き - KPI ごとに説明可能な関係者がリストされている |
ドキュメント内:
- 自動化の KPI が存在しないか、メジャメントの期間が明確でない - KPI には説明責任のある関係者がいない |
| レポートおよびダッシュボード内:
- KPI に関連するすべての総計値が 1 つ以上のレポートまたはダッシュボードに含まれている |
レポートおよびダッシュボード内:
- KPI レポートが存在しないか、一部の KPI に関連する評価指標がレポートにない |
| パターン | アンチパターン | |
|---|---|---|
| データ処理 | データ辞書:
- すべてのデータソースとデータレークオブジェクトの項目レベルのデータと優先順位付けロジックが存在する - データレークオブジェクトからデータモデルオブジェクトへの項目の対応付けが存在する |
データ辞書:
- データソースとデータレークオブジェクトの項目レベルデータと優先度ロジックは含まれません。 - データレークオブジェクトからデータモデルオブジェクトへの項目の対応付けは含まれません。 |
| Apex:
- すべての同期 DML ステートメントまたはデータベースクラスのメソッドがトリガー実行前のコンテキストで実行される -非同期Apex呼び出しでは、キュー可能を使用してトランザクション間で複雑なDMLを「チェーニング」します。 -バッチApexは、大量のデータに対してのみ使用されます。 - @future Apex は、コールアウトまたはシステム オブジェクト DML で慎重に使用されていません。 |
Apex:
- DML ステートメントは、トリガー後のコンテキストで呼び出されるコードに定期的に表示されます。 - 非同期 Apex はほとんど使用されません。 - 次のような非同期 Apex 機能が任意に使用されます。 -- Future メソッドと Queueable Apex が一貫性がないか、同じ意味で使用されています。 -- データベース操作には、必要に応じて実行を一括処理 Apex に渡すための明確で一貫したロジックがない |
|
| フロー内:
- ユーザーコンテキストで起動されるすべてのフローは、すべてのシステムコンテキストトランザクションをサブフローに抽象化します。サブフローは、[一時停止] 要素の後に一貫して配置され、新しいトランザクションを作成します。 - (モノリスフロー内で複数のサブフローを呼び出すのではなく) Orchestrator を使用して関連データ操作の複雑なシーケンスを作成する - すべてのレコードトリガーフローにトリガー順序値が入力されている - 外部システムコールアウトまたは実行時間の長いプロセスが含まれるフローで非同期パスが使用されている |
フロー内:
- 大規模なモノリシックフローが、関連するデータ操作の複雑なシーケンスを調整しようとする (サブフローの有無にかかわらず) - レコードトリガーフローでトリガー順序属性がまったく使用されていない、またはトリガー順序値が一貫して使用されていない - 非同期パスが一貫して使用されていない、またはまったく使用されていない |
|
| 組織内:
- ID 解決調整ルールは、データ辞書の優先度設定ロジックに従います。 |
組織内:
- ID 解決調整ルールがデータ辞書の優先度ロジックに従っていない |
|
| エラーハンドリング | Apex:
- コードは、すべての DML、SOQL、コールアウト、およびその他の重要なプロセスステップを try-catch ブロックでラップします。
-カスタム例外を使用して高度なエラーメッセージとロジックを作成 - 非同期コンテキストと一括コンテキストでは、DML の代わりにデータベースクラスメソッドが使用される - データベースクラスメソッドは、すべてのデータ操作 (DML の代わりに) で排他的に使用できます。 |
Apex:
- DML、SOQL、コールアウト、またはその他の重要なプロセスステップが一貫して try-catch ブロックでラップされていない
- 本番コードに System.debug ステートメントが表示される (コメントアウトされない)
- Database クラスのメソッドが使用されていない - データ操作は DML のみで行われます。 |
| Lightning Web コンポーネント (LWC) の場合:
- JavaScript は、すべてのデータ操作と重要なプロセスステップを if ()/else if () ブロックでラップします。
- すべての @wire 関数は、API で提供されたデータおよびエラープロパティを使用します。
- すべての if (error)/else if (error) ステートメントには、エラーを処理して情報メッセージを提供するロジックが含まれます。 |
LWC の場合:
- JavaScript では、データ操作または重要なプロセスステップを含む if ()/else if () ブロックを一貫して使用しません。
- @wire 関数は、API で提供されたデータおよびエラープロパティを使用しません (または、一貫して使用しません)。
- まったく使用していない場合、 if (error)/else if (error) ステートメントには、エラーを処理して有益なエラーメッセージを提供するロジックが実際には含まれていません。 |
|
| Aura の場合:
- JavaScript は、すべてのデータ操作と重要なプロセスステップを try-catch ブロックでラップします。
- try-catch ブロック内では、ネイティブの JavaScript エラーが throw ステートメントで使用されます ($A.error() は使用されません)。
- リカバリ可能なすべてのエラーロジックが catch ステートメント内に表示され、明確なユーザーメッセージが提供される |
Aura の場合:
- JavaScript では、データ操作と重要なプロセスステップが一貫して try-catch ブロックでラップされない
- コンポーネントは $A.error() を使用します。
- リカバリ可能なエラーロジックが catch ステートメント内に一貫して表示されず、ユーザーへのエラーメッセージが明確でない |
|
| フロー内:
- 画面フローでは一貫して障害コネクタを使用してユーザーにエラーを表示します。 画面に表示されるエラーに対してカスタムエラーメッセージを設定する - データ操作、コールアウト、その他の重要な処理ロジックを含むフローには、すべての主要なアクションの障害パスがあります。 |
フロー内:
- フローで障害パスが一貫して使用されていない、またはまったく使用されていない - カスタムエラーメッセージが使用されないため、ユーザーにはデフォルトの「このフローで未対応の障害が発生しました」メッセージが表示されます。 |
| ツール | 説明 | 効率 | データ整合性 | ビジネス上の価値 |
|---|---|---|---|---|
| Apex バッチ | レコードをまとめて管理可能なチャンクとして処理する | X | X | |
| Apex Future メソッド | Apex メソッドをバックグラウンドで非同期に実行 | X | X | |
| Apex Queueing | Apex ジョブをキューに追加して監視する | X | X | |
| Apex Scheduler | Apex クラスを指定された時間に非同期で実行する | X | X | |
| 承認 | レコードを承認するために必要なステップを指定する | X | X | |
| 非同期 Apex | Apex コードを非同期で実行 | X | X | |
| 自動アクション | 項目自動更新、メール送信、その他のアクションをバックグラウンドで実行する | X | X | |
| Einstein Next Best Action | 適切なおすすめを適切なタイミングで適切なユーザーに表示 | X | X | |
| メールアラート | 自動メールの作成と送信 | X | X | |
| エスカレーションアクション | ケースのエスカレーションで実行する自動アクションを指定する | X | X | |
| 項目自動更新 | 自動化に基づいて項目値を更新する | X | X | |
| Flow Builder | ポイント & クリックインターフェースを使用した自動化の構築 | X | X | |
| フロー拡張 | 保存されている変数にフローのコンポーネント入力としてアクセス | X | ||
| フローテンプレートライブラリ | テンプレートを使用した業種固有のフローの設計 | X | X | |
| フロートリガー | 複雑なビジネスプロセスの自動化 | X | ||
| 呼び出し可能なアクション | Apex 機能をフローに追加する | X | X | |
| オーケストレーター | 複数ステップの自動化の作成と管理 | X | X | |
| 送信メッセージ | 受信確認と再試行を使用して自動化プロセスから情報を送信する | X | ||
| フローを使用したプラットフォームイベントの公開 | ユーザー操作と自動化による行動の公開 | X | ||
| Query Optimizer | 選択性とインデックスを使用して、クエリ、レポート、リストビューのパフォーマンスを向上 | X | X | |
| Salesforce フロー | Flow Builder を使用した宣言型プロセスの自動化の作成 | X | X | |
| フローを使用した通知の送信 | SMS、WhatsApp、Facebook Messenger でメッセージを送信 | X | X | |
| プロセスを使用した通知の送信 | SMS、WhatsApp、Facebook Messenger でメッセージを送信 | X | X | |
| SOQL FOR UPDATE 修飾子 | 競合状態とスレッドの安全性の問題を回避するためにレコードをロックする | X | ||
| Strategy Builder | レコードページに表示するおすすめを特定する | X | X | |
| サブフロー | 再利用によるフローの複雑さの軽減 | X | ||
| フローを使用したプラットフォームイベントの登録 | オートメーションを介して公開されたメッセージの受信 | X | ||
| ToDo アクション | 自動化によってユーザーに付与される割り当ての詳細を決定する | X |
| リソース | 説明 | 効率 | データ整合性 | ビジネス上の価値 |
|---|---|---|---|---|
| Apex 実行ガバナおよび制限 | Apex ランタイムエンジンによる制限の適用方法 | X | X | |
| 一括管理リソース | 一括処理ジョブの作成、管理、スケジュール、監視 | X | X | |
| SOQL および SOSL のベストプラクティス | 大量のデータを使用するアプリケーションのクエリパフォーマンスを向上 | X | ||
| 設計標準テンプレート | 組織の設計標準を作成する | X | X | X |
| トランザクションでのフローの一括処理 | コレクションに対して操作するフローを設計する | X | X | |
| フローデータに関する考慮事項 | バッチデータのスケジュールトリガーフローについて | X | X | |
| フローのデバッグ | フローのテストとトラブルシューティング | X | ||
| 要求の処理方法 | Salesforce でジョブをすばやく処理して失敗を最小限に抑える方法 | X | X | |
| KPI Spreadsheet Template | 特定の指標のビジネス価値を判断する | X | X | |
| 呼び出し可能なアクションからの外部システムへのコールアウト | Apex を使用したフローからの外部システムのコール | X | ||
| 混在 DML 操作 | 同じトランザクションの DML で一緒に使用できる sObject を把握する | X | X | |
| 実行順序 | 挿入、更新、更新/挿入のイベントの順序を理解する | X | X | |
| クエリプランに関する FAQ | 大量のデータが含まれるクエリを最適化する | X | X | |
| スケジュールトリガーフローに関する考慮事項 | スケジュールトリガーフローの特殊な動作について | X | ||
| トランザクションコントロール | 現在のデータベースの状態を指定するセーブポイントを生成する | X | X | |
| フローが失敗するとどうなるか | フローでのエラー処理について | X | X | |
| ワークフローの自動化のベスト プラクティス ガイド | Salesforce オートメーションの使用開始 | X | X | X |
| Working with Very Large SOQL Queries (非常に大きい SOQL クエリの処理) | より効率的な SOQL クエリの作成 | X |
| パターン | アンチパターン | |
|---|---|---|
| データプライバシー | ドキュメント:
- 項目レベルの名前、説明、分類を含む最新のデータ辞書がある -どのユーザーがどのデータにアクセスできるかを識別する最新のセキュリティマトリックスがある - 規制要件に対応するために作成された自動化の標準と図を含む最新の設計ドキュメントがある |
ドキュメント:
データ辞書が存在しないか、最新の状態に保たれていない - 共有および表示ドキュメントが存在しないか、最新の状態に保たれていない - 規制要件に対応する自動化の設計標準、図、ドキュメントが存在しないか、最新の状態に保たれていない |
| 組織内:
- 機密情報が含まれるか、データプライバシー規制の対象となるすべてのオブジェクトと項目で、[コンプライアンス分類]、[データ所有者]、[データ機密性レベル]、[項目の利用状況] が設定されている |
組織内:
- 機密情報が含まれるオブジェクトと項目、またはデータプライバシー規制の対象となる項目に、コンプライアンス分類、データ所有者、データ機密性レベル、項目の利用状況の設定がない。 |
|
| ローカライズ | ドキュメント:
- 適用されるすべてのデータレジデンシー要件に準拠するためにデータを保存および管理する組織戦略がある - 国境を越えてデータを複製するための受け入れ可能なシナリオとプロセスの概要を示す統合戦略がある - 地域、国、グローバルレベルでレポートとダッシュボードに含めることができる粒度のレベルの概要を示す分析戦略がある |
ドキュメント:
組織戦略がないか、組織の戦略でデータのローカライズとレジデンシーの要件に対応できていない インテグレーション戦略がないか、インテグレーション戦略でデータのローカライズとレジデンシーの要件に対応できていない 分析戦略がないか、分析戦略がデータのローカライズとレジデンシー要件に対応していません。 |
| パターン | アンチパターン | |
|---|---|---|
| 会社のポリシー | 設計基準では、次のようになります。
- 標準には、会社のポリシーの影響を受ける領域に関する明確な指針が含まれます。 |
設計基準では、次のようになります。
- 設計標準が存在しないか、会社のポリシーの対象となる領域に関する明確な指針を提供していない |
| ドキュメント:
- 設定およびカスタマイズに関するドキュメントには、サポートされている会社の値への参照が含まれます。 |
ドキュメント:
- 設定およびカスタマイズのドキュメントで会社の値やポリシーが参照されていない |
|
| 組織内:
- 会社のポリシー関連のコンプライアンスの対象となるすべてのオブジェクトと項目で、[コンプライアンス分類]、[データ所有者]、[データ機密性レベル]、[項目の利用状況] が設定されている |
組織内:
- 会社のポリシー関連のコンプライアンスの対象となるオブジェクトで、コンプライアンス分類、データ所有者、データ機密性レベル、または項目使用状況の設定がない |
|
| 人工知能 | 設計基準では、次のようになります。
- AI アプリケーションのポリシーと承認済み使用事例が明確で見つけやすい - RAGで使用するデータとドキュメントが代表的、完全、正確、最新であることを確認します。データセットやドキュメントに存在する可能性のあるバイアス、有害性、その他の有害なコンテンツを探す -生成応答により、AI モデルで使用されるデータソースが常に特定される - プロンプトエンジニアリングに使用できる/使用できないデータセットが文書化されている -ボットと生成 AI 応答がユーザーに明確に識別される ・生成 AI の免責事項を使用するタイミングと方法の基準が明確になっている - AI ソリューション設計に人間が関与するポイントを文書化する方法に関する明確な要件が存在する - AI ソリューション設計の直接および間接フィードバックパスを文書化するための標準が存在する - ユーザーにとって AI を識別する必要があるポイントを明確に定義する -特に規制や高リスクの使用事例で、ユーザーを指揮する |
設計基準では、次のようになります。
-設計標準が存在しないか、AI アプリケーションの明確なポリシーと承認済み使用事例が含まれていない -生成応答は、AI モデルで使用されるデータソースを識別しません。 プロンプトエンジニアリングで使用されるデータセットが文書化されていない -ボットと生成 AI 応答がユーザーに識別されない -生成応答に関する免責事項がない - AI ソリューション設計における人間の関与のポイントを文書化するための要件が存在しない -AI ソリューション設計の直接および間接フィードバックパスを文書化するための標準が存在しない - AI を識別する必要があるポイントを設計標準で示していない |
| ドキュメント:
- AI 機能が含まれる設定およびカスタマイズのドキュメントには、すべてのプロセスロジックの詳細な説明が含まれ、法務チームまたは監査人がアクセスできる一元的な場所に保存されます。 - Salesforce で作成または取り込むモデルは、該当するデータセグメントを含めて明確に文書化されています。 -会話ロジックとエージェントの会話が徹底的に文書化されている -データのドリフト、公平性とバイアススコアの変化、正確性、堅牢性に関する組織のAIモデルを監視するプロセスがある - すべての AI プロセスで使用されるトレーニング、評価、テストデータの説明が保持されている - AI 関連のデータクリーンアップの説明は、バイアステスト、関連付けられた結果、パフォーマンス/精度スコア (F1 スコアなど) と共に管理されます。 |
ドキュメント:
- AI 機能が含まれる設定およびカスタマイズのドキュメントが欠落しているか、不完全であるか、アクセスできない場所に保存されている - AI モデルまたはシステムが、モデルのドキュメントを作成せずに組織に実装されている - エージェントがメッセージと会話フローの文書化なしで組織に実装されている - AI 監視プロセスが存在しないか文書化されていない -すべての AI プロセスで使用されるトレーニング、評価、テストデータに関する情報が不明瞭または利用不可 - AI 関連のデータクリーンアップ、バイアステスト、結果に関する情報が不明瞭または利用不可 |
| パターン | アンチパターン | |
|---|---|---|
| データエントリ | 設計基準では、次のようになります。
- 標準キーボードおよびマウス以外のデータ入力に使用できるすべてのデバイスがリストされます。 - テキスト値とそのすべてのサポート対象言語への翻訳がリストされます。 |
設計基準では、次のようになります。
- 標準キーボードおよびマウス以外のデータ入力に使用できるデバイスの一部のみが表示されるか、まったく表示されないか - サポートされる言語が翻訳対象の UI 要素と共にリストされている |
| テスト計画:
- テストステップには、複数の種別の入力デバイスを使用したデータ入力が含まれます。 - テストステップに複数言語でのデータ入力が含まれる |
テスト計画:
アクセシビリティテストが含まれていない、またはアクセス可能なデータエントリのテストがアドホックである |
|
| 組織内:
-サポートされる言語の翻訳はトランスレーションワークベンチに保存されます。 |
組織内:
- 翻訳はカスタム表示ラベルに保存される |
|
| ナビゲーション | 設計基準では、次のようになります。
- (標準のキーボードとマウスだけでなく) ナビゲーションに使用できるすべてのデバイスが明確にリストされている - UI/UX 標準では、すべてのナビゲーションコントロールの種別とスタイルを指定します。 - 意味や状態を伝えるために承認される視覚的な合図の種別が明確にリストされており、色は主要な合図ではない |
設計基準では、次のようになります。
- 設計標準が存在しないか、ナビゲーションコントロールのアクセシビリティ要件を考慮していない -ナビゲーションの UI/UX 標準が一貫していない - 意味や状態の視覚的な手がかりが色に依存していたり、ビルダー用の視覚的な手がかりの明確なリストがなかったりする |
| テスト計画:
- テストステップには、複数の種別の入力デバイスを使用したナビゲーションが含まれます。 - テスト計画には、UI/UX テストを使用してナビゲーションパスの一貫性を確保することが含まれます。 |
テスト計画:
-アクセシビリティテストが含まれていないか、アクセシビリティナビゲーションのテストがアドホックに行われている |
| ツール | 説明 | 法的遵守 | 倫理基準 | アクセシビリティ |
|---|---|---|---|---|
| Agentforce 分析 | エージェントのパフォーマンスに関するインサイトを取得する | X | ||
| Agentforceテストセンター | テストごとに最大 1,000 件のテストケースを使用して最大 10 件のテストジョブを実行するため、複数のシナリオをすばやく作成して評価できます。 | X | ||
| 引用 | 引用は、生成された回答の潜在的な不正確さや幻覚を特定するのに役立ち、AI ツールの使用に対する信頼性を高めます。 | X | ||
| 同意 API | 同意を求める顧客設定の追跡 | X | ||
| 同意イベントストリーム | 同意または連絡先情報の変更に関する通知を送信する | X | ||
| 同意管理オブジェクト | 顧客のプライバシーと同意設定を管理する | X | ||
| データアクセスと可搬性 | 要求に応じて顧客関連データをエクスポート | X | ||
| データ分類 | オブジェクト項目の主要なコンプライアンスと監査情報を記録する | X | ||
| Data 360 レポート | エージェントの指示遵守の監視 | X | ||
| データ削除 | 法的規制に準拠するためにデータを削除する | X | ||
| データプライバシー設定 | 顧客データのプライバシー設定を保存する | X | X | |
| データ翻訳 | ユーザーに表示されるデータを翻訳する | X | X | |
| Data Detect | カテゴリと機密レベルを実際のデータに合わせる | X | ||
| Data 360 Explorer | データサイエンティストのプロジェクトおよびオブジェクト権限の管理 | X | X | |
| Einstein Data Prism | Salesforce 内の生成 AI アプリケーションのグラウンディングソリューションで、グラウンディング機能を使用する AI ソリューションの精度を向上 | X | ||
| Einstein Trust Layer | Salesforce エコシステム全体でデータプライバシーを保護し、AI の精度を高め、AI の責任ある使用を促進するために設計された機能、プロセス、ポリシーのコレクション | X | ||
| 拡張イベントログ | イベントログは、エージェントセッションのイベントとユーザーメッセージを取得して、指示の遵守の確認、エージェントのテスト、トラブルシューティングを行います。 | X | ||
| Files Connect | Salesforce からの外部ファイルの参照、検索、共有 | X | ||
| Hyperforce | ローカルデータストレージ要件への準拠 | X | ||
| メタデータ翻訳 | 言語を翻訳してアプリケーションをローカライズする | X | X | |
| 可搬性 API | 可搬性ポリシーで識別された顧客データをまとめる | X | X | |
| プリファレンスマネージャー | 顧客とのコミュニケーション設定の収集 | X | X | |
| プライバシーセンター | 顧客の要求とデータプライバシー保護法への対応 | X | X | |
| データ処理の制限 | 個人データの処理方法の制限 | X | X | |
| 忘れられる権利 | 要求に応じて個々の顧客データを削除する | X | ||
| Salesforce Files | ファイルを非公開で共有および保存する | X | ||
| セキュリティセンター | 複数の組織のセキュリティとプライバシーの設定を表示する | X | ||
| Shield Platform Encryption | 保存中および転送中のデータを暗号化 | X | ||
| トランスレーションワークベンチ | メタデータとデータ表示ラベルの翻訳された値を維持する | X | X |
| リソース | 説明 | 法的遵守 | 倫理基準 | アクセシビリティ |
|---|---|---|---|---|
| 責任あるAI設計の5つの原則 | 人工知能 (AI) 機能を倫理的に設計する | X | ||
| アクセシビリティの基本 (Trailhead) | アクセシビリティが重要な理由 | X | ||
| アクセシビリティ適合性レポート (ACR) | Salesforce がアクセシビリティ標準をどのように満たしているかを理解する | X | ||
| アクセシビリティの概要 | Salesforce Lightning 内のアクセシビリティの理解 | X | ||
| AI倫理成熟度モデル | 倫理原則を運用するためのロードマップを作成する | X | ||
| AI Red Teaming:信頼のテスト | Salesforce の「倫理的なハッカー」がレッドチーミングを使用して Responsible AI を開発する方法について説明します。 | X | ||
| 攻撃者の自動化:Red Teaming AIのスケーラブルなフレームワークの設計 | Salesforce で攻撃者のプロンプトの生成と応答の検証を自動化し、有害なコンテンツへの人間の接触を減らしながら AI インタラクションを保護する方法について説明します。 | X | ||
| 会話の設計のベストプラクティス | チャットボットを設計するときのベストプラクティスに従う | X | X | |
| Best Practices for Sustainable Design (持続可能な設計のベストプラクティス) (Trailhead) | 設計に Sustainability を組み込む | X | ||
| 同意管理 | 同意およびオプトアウト要求の追跡と遵守 | X | ||
| Einstein のデータポリシー | Einstein 機能全体のデータ使用の制御 | X | X | |
| 設計標準テンプレート | 組織の設計標準を作成する | X | X | X |
| 信頼できるAI製品の構築に成功したことを証明する倫理的なハッキング プラクティス | Salesforceがレッド チーミング手法を使用して、悪意のある使用、意図的な整合性攻撃、無害な誤用をテストし、AIの責任ある問題を特定することで、AI製品の安全性を向上させる方法について説明します。 | X | ||
| 倫理的なリーダーシップとビジネス | テクノロジー、平等、倫理に関するインサイト | X | ||
| 倫理的な使用ポリシー | 製品およびサービスの倫理的な使用に関する Salesforce ポリシーの探索 | X | ||
| 設計による倫理 (Trailhead) | 技術開発に倫理デザインを組み込む | X | ||
| Salesforce の文化と価値の探索 (Trailhead) | Salesforce のコアバリューの探索 | X | X | |
| アクセシビリティモバイル設計ガイドラインに従う | ベストプラクティスに従って設計にアクセスできるようにする | X | X | |
| Web アクセシビリティの使用開始 (Trailhead) | Web サイトとアプリケーションをアクセス可能にする方法の基本を学ぶ | X | ||
| Salesforce による再現可能な Red Teaming インフラストラクチャの構築方法 | 敵対的テストを設計、実装、実行するときに推奨される 4 つのコンポーネント | X | ||
| 結果スキャンワークショップの実行方法 | イノベーション時に考えられるすべての結果を考慮する | X | ||
| データ保護とプライバシーの実装 | データ保護とプライバシーの要件を評価する | X | ||
| 包括的な設計 (Trailhead) | 包括的な設計原則によるイノベーションの促進 | X | X | |
| KPI Spreadsheet Template | 組織の重要業績評価指標 (KPI) の設定 | X | ||
| 法律情報 | Salesforce の法務情報センターの探索 | X | ||
| LWC Cookie 同意モジュール | Experience Cloud サイトでのユーザーの Cookie アクセスの制御 | X | X | |
| プライバシーの概要 | 地域および業種ごとのデータプライバシーについて | X | ||
| 責任ある倫理的なエージェントの促進 | 倫理的なレッドチーミングおよびテスト戦略を実行し、組織の指針と基準を作成する方法について説明します。 | X | ||
| 担当エージェント AI のガイドライン | X | |||
| 「AI Trailhead モジュールの責任ある作成」 | データとアルゴリズムからバイアスを取り除き、会社で倫理的な AI システムを構築する方法について説明します。 | X | ||
| 責任ある生成 AI ガイドライン | 信頼できるAI原則に基づいて、生成AIの責任ある開発と実装に焦点を絞った新しいガイドラインのセットが作成されています。 | X | ||
| Salesforceコンプライアンス認定 | Saleforce のコンプライアンス認定と証明を確認する | X | ||
| 持続可能な設計 (Trailhead) | 企業と社会の関係強化 | X | ||
| Web アクセシビリティのテスト (Trailhead) | 自動テストと手動テストを使用してアクセシビリティを確保 | X | ||
| 信頼できるエージェント型AI | Agentforceが保護と責任あるAIの原則を使用して倫理的なAIを作成する方法について説明します。 | x |
| 耐障害性 | ||
|---|---|---|
| レジリエントなソリューションは、変化に適切に対処します。レジリエントなアーキテクチャでは、予測可能な方法で、期待される動作と運用にすばやく戻ることができます。 | ||
| アプリケーションライフサイクル管理 | インシデント対応 | 継続性計画 |
| リリース管理 環境戦略 テスト戦略 |
Time to Recover (リカバリ時間) 優先順位を付ける機能 監視とアラート |
ビジネス継続性 テクノロジーの継続性 |
| コンポーザブル | ||
| コンポーザブルなソリューションは、迅速かつ高い安定性で調整できます。コンポーザブルアーキテクチャは、相互に適切に動作するユニットで構築され、サービスの開始と終了を切り替えることができます。 | ||
| 懸念の分離 | 相互運用性 | パッケージ性 |
| 機能単位 状態管理 |
メッセージングとイベント API 管理 |
疎結合 連動関係管理 |