# architect Bien architecté (well-architected) - Full Documentation
> Découvrez [ici](/docs/architect/fr-fr/well-architected/guide/contributors) nos planifications de mise à jour.
## Introduction
Une solution Salesforce **adaptable** évolue avec l'entreprise. Une solution bien conçue pour être **adaptable** est résiliente et composable.
Les solutions **résilientes** gèrent bien le changement.
Les solutions **composables** s'ajustent rapidement et avec plus de stabilité.
Le besoin de changement commercial peut provenir de nombreuses sources : demandes des clients, perturbation du marché ou du secteur d’activité, ou opportunités de transformation numérique. Parfois, les modifications sont petites. Parfois, les changements sont profonds. Au niveau le plus profond, un changement peut obliger les entreprises à repenser et à déplacer leurs raisons principales d'exploitation, et à réévaluer le quoi, comment et où de leurs offres clients. Les architectures **adaptables** n’aident pas seulement les entreprises à survivre et à se relever des interruptions, elles offrent aux entreprises un potentiel d’innovation et de prospérité en période de changement profond.
Créer des systèmes **adaptables** nécessite une réflexion architecturale profondément créative et précise. Vous devez commencer par une compréhension précise de la trajectoire à court et à long terme de l'entreprise. En évaluant les détails d'implémentation individuels, vous devez prendre en compte les impacts sur plusieurs dimensions et niveaux de détail. Vous devez penser en termes de personnes, de processus et de technologie. Vous devez prédire simultanément les impacts aux niveaux macro et micro — pour l'état actuel et tous les états futurs.
Les sections suivantes fournissent des conseils plus approfondis pour chaque comportement de base d'une architecture de solution **adaptable**.
## Vue d'ensemble adaptable
| Résilient | ||
|---|---|---|
| Les solutions résilientes gèrent bien le changement. Les architectures résilientes peuvent rétablir rapidement et de façon prévisible le comportement et les opérations attendus. | ||
| Gestion du cycle de vie des applications | Réaction incidente | Planification de continuité |
| Gestion des versions Stratégie environnementale Stratégie de test |
Temps de récupération Capacité de tri Surveillance et alerte |
Continuité des affaires Continuité technologique |
| Composable | ||
| Les solutions composables s'ajustent rapidement et avec plus de stabilité. Les architectures composables sont construites dans des unités qui fonctionnent gracieusement les unes avec les autres, et peuvent être échangées et hors service. | ||
| Séparation des préoccupations | Interopérabilité | Packageability |
| Unités fonctionnelles Gestion des états |
Messagerie et événementiel Gestion des API |
Couplage lâche Gestion des dépendances |
| Sécurisé | ||
|---|---|---|
| Un système sécurisé protège l'entreprise, les parties prenantes et les données. Les architectures sécurisées garantissent que seuls les utilisateurs approuvés peuvent obtenir l'accès, limitent l'accès des utilisateurs aux éléments essentiels pour réaliser le travail et protègent les données du système contre toute atteinte. | ||
| Sécurité organisationnelle | Sécurité de session | Sécurité des données |
| Authentification Autorisation |
Gestion des sessions Accès à l'appareil Détection et réponse aux menaces |
Partage et visibilité Utilisation du cryptage |
| Conforme | ||
| Les solutions conformes respectent les consignes légales et éthiques. Les architectures conformes respectent les réglementations légales et les normes de l'industrie, respectent les politiques éthiques et servent équitablement tous les utilisateurs. | ||
| Adhésion légale | Normes éthiques | Accessibilité |
| Confidentialité des données Localisation |
Politiques de l'entreprise Intelligence artificielle |
Saisie de données Navigation |
| Fiable | ||
| Des solutions fiables fonctionnent efficacement et de façon fiable, dans diverses conditions. Des architectures fiables sont disponibles quand et où les utilisateurs attendent, sont performants et évoluent avec l'entreprise. | ||
| Disponibilité | Performance | Évolutivité |
| Gestion des risques Atténuation des échecs |
Débit Latence |
Modélisation des données Volume de données |
| Modèles | Anti-Patterns | |
|---|---|---|
| Conception de processus | Dans votre organisation :
- Chaque flux sert un seul objectif spécifique - Chaque étape effectue une tâche spécifique, granulaire - Les flux sont organisés dans une structure hiérarchique composée d'un flux principal et de flux secondaires de support - Toutes les entrées utilisateur ont un but clair dans le flux - Les utilisateurs sont invités à fournir des données uniquement lorsque les données système existantes ne peuvent pas être utilisées |
Dans votre organisation :
- Les flux servent plusieurs objectifs et nécessitent des entrées supplémentaires pour fournir le contexte - Les flux nécessitent des entrées dont les données ne sont pas utilisées - Les groupes d'étapes associés contiennent des fonctionnalités qui chevauchent les groupes d'étapes d'autres flux - Les flux demandent des entrées utilisateur lorsque des données stockées peuvent être utilisées à la place |
| Dans Apex :
- Chaque classe sert un but unique et spécifique - Chaque méthode effectue une tâche spécifique, granulaire - Toutes les variables d'entrée ont un but clair dans la classe - L'exécution de code nécessite un nombre minimal de ressources |
Dans Apex :
- Les classes servent plusieurs objectifs - Les méthodes exécutent plusieurs tâches ou les méthodes exécutent des tâches qui ne correspondent pas à l'objectif déclaré de la classe dont elles font partie - Les variables d'entrée ne sont pas réellement utilisées dans les méthodes - Les méthodes récupèrent inutilement les données de la base de données ou de systèmes externes |
|
| Logique opérationnelle | Dans Flux :
- Aucune variable ne référence des valeurs codées en dur (pour des types d'enregistrement, des utilisateurs, etc.) - Tous les flux et processus lancés automatiquement utilisent des éléments de décision et/ou d'interruption pour évaluer les critères d'entrée et empêcher les boucles infinies ou les exécutions sur des volumes de données importants - Les flux (y compris les processus) transmettent la logique à Apex dans des contextes de volume de données important - Les flux secondaires sont utilisés pour les sections d'un processus qui doivent être réutilisées dans l'ensemble de l'entreprise |
Dans Flux :
- Les variables ont des valeurs codées en dur - Les flux (y compris les processus) doivent être désactivés manuellement avant le chargement de données en masse - Les flux (y compris les processus) déclenchent des avis d'"exception non gérée" - Même de simples flux entraînent régulièrement des erreurs liées aux limites du gouverneur - Les parties d'un flux sont répétées à travers les flux plutôt que d'utiliser des flux secondaires |
| Dans Apex :
- Aucune variable ne référence des valeurs codées en dur (pour des types d'enregistrement, des utilisateurs, etc.) - Tous les critères génériques sont affichés en SOSL - SOQL est encapsulé dans try-catch
- Aucun SOQL n'est affiché dans une boucle - Les instructions SOQL sont sélectives, notamment : -- aucune utilisation de comparaisons J'AIME ou de comparaisons de texte partiel
-- les opérateurs de comparaison utilisent une logique positive (c.-à-d. INCLUSE, IN) comme logique principale ou uniquement
-- l'utilisation de = NULL, != NULL est rare et/ou suit toujours un opérateur de comparaison positif
-- aucune instruction LIMIT 1 n'est affichée
-- aucune utilisation du mot-clé ALL ROWS
| Dans Apex :
- Les variables ont des valeurs codées en dur - SOSL est rarement ou pas systématiquement utilisé pour les critères de sélection de caractères génériques - SOQL n'est pas encapsulé dans try-catch
- SOQL affiché dans les boucles - Les instructions SOQL ne sont pas sélectives, notamment : -- Les critères de filtrage J'AIME et générique sont affichés
-- les comparaisons utilisant des critères NOT, NOT IN sont utilisées comme opérateur de comparaison principal ou unique
-- = NULL, != NULL critères sont utilisés comme opérateur principal ou seulement de comparaison
-- Affichage des instructions LIMIT 1
-- Le mot-clé ALL ROWS est utilisé
| |
| Dans vos normes de conception et votre documentation :
- Les parcours d'exécution planifiés et potentiels pour les automatisations sont clairement indiqués - Les cas d'utilisation des opérations synchrones et asynchrones dans les automatisations sont clairement décrits dans le cadre des normes de conception |
Dans vos normes de conception et votre documentation :
- L'invocation de l'automatisation n'est pas documentée - Les cas d'utilisation d'opérations synchrones et asynchrones ne sont pas traités |
|
| Indicateurs de performance clés | Dans votre documentation :
- Les sorties de chaque automatisation sont mesurables et limitées dans le temps - Les parties prenantes responsables sont répertoriées pour chaque indicateur de performance clé |
Dans votre documentation :
- Les indicateurs de performance clés n'existent pas pour les automatisations ou ont des délais de mesure imprécis - Les indicateurs de performance clés existent sans parties prenantes responsables |
| Dans des rapports et des tableaux de bord :
- Toutes les métriques associées aux indicateurs de performance clés sont incluses dans au moins un rapport ou tableau de bord |
Dans des rapports et des tableaux de bord :
- Les rapports sur les indicateurs de performance clés n'existent pas ou des métriques manquantes sont associées à certains indicateurs de performance clés |
| Modèles | Anti-Patterns | |
|---|---|---|
| Traitement des données | Dans votre dictionnaire de données :
- Données au niveau du champ et logique de priorisation pour toutes les sources de données et objets lac de données - Le mappage de champs entre un objet lac de données et un objet modèle de données existe |
Dans votre dictionnaire de données :
- Les données au niveau du champ et la logique de priorisation des sources de données et des objets lac de données ne sont pas incluses - Mappage de champs entre des objets lac de données et des objets modèle de données n'est pas inclus |
| Dans votre Apex :
- Toutes les instructions DML synchrones ou méthodes de classe Database sont exécutées dans des contextes d'exécution avant déclenchement - Les invocations Apex asynchrones utilisent des files d'attente pour 'enchaîner' des DML complexes entre les transactions - Apex par lot est utilisé exclusivement pour des volumes de données importants - @future Apex n'est pas utilisé ou utilisé avec précaution, pour les appels externes ou l'objet système DML |
Dans votre Apex :
- Les instructions DML sont régulièrement affichées dans le code qui sera invoqué dans les contextes après le déclenchement - Apex asynchrone est rarement utilisé - Les fonctionnalités Apex asynchrones sont utilisées arbitrairement, notamment: -- Les méthodes futures et Apex Queueable sont utilisées de façon incohérente ou interchangeable -- Les opérations de base de données n'ont pas de logique claire et cohérente pour transmettre l'exécution à Apex par lot en cas de besoin |
|
| Dans Flux :
- Tous les flux lancés dans le contexte de l'utilisateur excluent toutes les transactions du contexte système dans des flux secondaires, qui sont régulièrement placés après un élément Interrompre, pour créer une - Des séquences complexes d'opérations de données associées sont créées avec Orchestrateur (au lieu d'invoquer plusieurs flux secondaires dans un flux monolithique) - Tous les flux déclenchés par un enregistrement ont des valeurs d'ordre - Les flux impliquant des appels système externes ou des processus longs utilisent des chemins asynchrones |
Dans Flux :
- De grands flux monolithiques tentent de coordonner des séquences complexes d'opérations de données associées (avec ou sans flux secondaire) - Les flux déclenchés par un enregistrement n'utilisent pas du tout les attributs d'ordre de déclenchement ou n'utilisent pas de façon cohérente les valeurs d'ordre de déclenchement - Les parcours asynchrones ne sont pas utilisés de façon cohérente ou du tout |
|
| Dans votre organisation :
- Les règles de réconciliation de résolution de l'identité suivent la logique de priorisation de votre dictionnaire de données |
Dans votre organisation :
- Les règles de réconciliation de résolution de l'identité ne suivent pas la logique de priorité dans le dictionnaire de données |
|
| Traitement des erreurs | Dans Apex :
- Le code enveloppe toutes les étapes DML, SOQL, appels externes et autres étapes critiques du processus dans des blocs d'essai
- Des exceptions personnalisées sont utilisées pour créer un message d'erreur avancé et une logique - Dans des contextes asynchrones et en masse, les méthodes de classe Base de données sont utilisées au lieu de DML - Les méthodes de classe de base de données peuvent être utilisées exclusivement pour toutes les opérations de données (au lieu de DML) |
Dans Apex :
- DML, SOQL, appels externes ou autres étapes critiques du processus ne sont pas toujours encapsulés dans des blocs d'essai
-Les instructions System.debug sont affichées dans le code de production (et ne sont pas commentées)
- Aucune méthode de classe Database n'est utilisée - Les opérations sur les données sont effectuées exclusivement avec DML |
| Dans Lightning Web Components (LWC) :
- JavaScript enveloppe toutes les opérations de données et les étapes critiques du processus dans les blocs if ()/else if ()
- Toutes les fonctions @wire utilisent des propriétés de données et d'erreur fournies par l'API
- Tous les énoncés si (erreur)/si (erreur) contiennent une logique de traitement des erreurs et fournissent des messages informatifs |
Dans LWC :
- JavaScript n'utilise pas toujours if ()/else if () bloque avec des opérations de données ou des étapes de processus critiques
- les fonctions @wire n'utilisent pas les données et les propriétés d'erreur fournies par l'API (ou ne les utilisent pas de façon cohérente)
- Si elles sont utilisées, les instructions if (error)/else if (error) ne contiennent pas réellement de logique pour traiter les erreurs et fournir des messages d'erreur utiles |
|
| Dans Aura :
JavaScript regroupe toutes les opérations de données et les étapes critiques du processus dans des blocs d'essai
- Dans les blocs try-catch, l'erreur JavaScript native est utilisée dans les instructions throw (pas d'utilisation de $A.error())
- Toute la logique d'erreur récupérable est affichée dans les instructions de capture et fournit des messages utilisateur clairs |
Dans Aura :
JavaScript n'enveloppe pas de façon cohérente les opérations de données et les étapes critiques du processus dans des blocs d'essai
- Les composants utilisent $A.error()
- La logique d'erreur récupérable n'est pas toujours affichée dans les relevés de capture et les messages d'erreur aux utilisateurs ne sont pas clairs |
|
| Dans Flux :
- Les flux d'écran utilisent régulièrement des connecteurs de défaut pour afficher les erreurs aux utilisateurs - Les messages d'erreur personnalisés sont configurés pour les erreurs affichées à l'écran - Les flux avec des opérations de données, des appels externes et d'autres logiques de traitement critiques ont des chemins de défaut pour toutes les actions clés |
Dans Flux :
- Les flux n'utilisent pas les chemins de défaut de façon cohérente ou du tout - Les messages d'erreur personnalisés ne sont pas utilisés. Par conséquent, les utilisateurs affichent le message par défaut « Une erreur non gérée s'est produite dans ce flux ». |
| Outil | Description | Efficacité | Intégrité des données | Valeur métier |
|---|---|---|---|---|
| Lot Apex | Enregistrements par lot et traitement des segments maniables | X | X | |
| Apex Future Methods | Exécuter de façon asynchrone des méthodes Apex en arrière-plan | X | X | |
| Apex Queueing | Ajouter des tâches Apex à une file d'attente et les surveiller | X | X | |
| Apex Scheduler | Exécuter de façon asynchrone des classes Apex à des heures spécifiées | X | X | |
| Approbations | Spécifier les étapes requises pour approuver les enregistrements | X | X | |
| Asynchronous Apex | Exécuter un code Apex de façon asynchrone | X | X | |
| Actions automatisées | Exécuter des mises à jour de champ, des envois d'e-mails et d'autres actions en arrière-plan | X | X | |
| Einstein Next Best Action | Afficher les recommandations appropriées aux bonnes personnes au moment opportun | X | X | |
| Alerte par e-mail | Créer et envoyer des e-mails automatisés | X | X | |
| Actions d'escalade | Spécifier les actions automatisées à exécuter pour les escalades de requêtes | X | X | |
| Mise à jour de champ | Mettre à jour les valeurs de champ en fonction de l'automatisation | X | X | |
| Flow Builder | Élaborer des automatisations avec une interface par pointer-cliquer | X | X | |
| Extensions de flux | Accéder aux variables stockées en tant qu'entrées de composant dans des flux | X | ||
| Bibliothèque de modèles de flux | Utiliser des modèles pour concevoir des flux spécifiques au secteur d'activité | X | X | |
| Déclencheur de flux | Automatiser les processus métiers complexes | X | ||
| Actions invocables | Ajouter une fonctionnalité Apex à des flux | X | X | |
| Orchestrateur | Créer et gérer des automatisations à plusieurs étapes | X | X | |
| Message sortant | Envoyer des informations à partir d'un processus automatisé avec des reçus et des tentatives | X | ||
| Publication d'événements de plate-forme avec un flux | Publier des événements via des interactions utilisateur et des automatisations | X | ||
| Optimiseur de requête | Utiliser la sélectivité et les index pour améliorer les performances des requêtes, des rapports et des vues de liste | X | X | |
| Flux Salesforce | Créer des automatisations de processus déclaratives avec Flow Builder | X | X | |
| Envoi de notifications avec des flux | Envoyer des messages par SMS, WhatsApp ou Facebook Messenger | X | X | |
| Envoi de notifications avec des processus | Envoyer des messages par SMS, WhatsApp ou Facebook Messenger | X | X | |
| Modificateur SOQL FOR UPDATE | Verrouiller les enregistrements pour éviter les conditions de course et les problèmes de sécurité des threads | X | ||
| Stratégie Builder | Identifier les recommandations à exposer dans les pages d'enregistrement | X | X | |
| Subflows | Réduire la complexité des flux en les réutilisant | X | ||
| S'abonner à des événements de plate-forme avec un flux | Recevoir les messages publiés via des automatisations | X | ||
| Actions de tâche | Déterminer les détails d'attribution donnés à un utilisateur par une automatisation | X |
| Ressource | Description | Efficacité | Intégrité des données | Valeur métier |
|---|---|---|---|---|
| Exécution Apex Gouverneurs et limites | Découvrez comment le moteur d'exécution Apex applique les limites | X | X | |
| Ressources de gestion par lot | Créer, gérer, planifier et surveiller des tâches par lot | X | X | |
| Meilleures pratiques pour SOQL et SOSL | Améliorer les performances de requête des applications avec des volumes de données importants | X | ||
| Modèle Design Standards | Créer des normes de conception pour votre organisation | X | X | X |
| En masse de flux dans les transactions | Concevoir des flux pour fonctionner avec des collections | X | X | |
| Considérations relatives aux données de flux | Découvrez les flux déclenchés par une planification pour des données par lot | X | X | |
| Débogage de flux | Tester et dépanner les flux | X | ||
| Comment les demandes sont traitées | Découvrez comment Salesforce traite les tâches rapidement et réduit les échecs | X | X | |
| Modèle de feuille de calcul KPI | Déterminer la valeur métier d'une métrique particulière | X | X | |
| Passer des appels externes à des systèmes externes à partir d'actions invocables | Appeler des systèmes externes à partir d'un flux en utilisant Apex | X | ||
| Opérations DML mixtes | Connaître les sObjects qui peuvent être utilisés ensemble pour DML dans la même transaction | X | X | |
| Ordre d'exécution | Comprendre l'ordre des événements pour les insertions, les mises à jour et les mises à jour/insertions | X | X | |
| FAQ sur les plans de requête | Optimiser les requêtes impliquant des volumes de données importants | X | X | |
| Considérations relatives aux flux déclenchés par une planification | Comprendre les comportements spéciaux des flux déclenchés par une planification | X | ||
| Contrôle des transactions | Générer un point d'enregistrement qui spécifie l'état actuel de la base de données | X | X | |
| Que se passe-t-il lorsqu'un flux échoue ? | Comprendre le traitement des erreurs dans les flux | X | X | |
| Guide des meilleures pratiques d'automatisation des workflows | Premiers pas avec l'automatisation de Salesforce | X | X | X |
| Utilisation de requêtes SOQL très volumineuses | Écrire des requêtes SOQL plus efficaces | X |
Un système composable:
## Séparation des préoccupations
Concept fondamental du génie logiciel et de l'architecture système, la _séparation des préoccupations_ consiste à identifier diverses préoccupations au sein d'un système plus large qui peut être séparé en unités modulaires. Pour parvenir à une forte séparation des préoccupations au sein d'un système, il faut créer des unités pertinentes pour la logique d'application et les fonctions dans l'ensemble du système. Les unités plus petites aident les équipes de livraison et de maintenance d'applications à comprendre comment et où apporter des modifications, en limitant au maximum les interruptions dans le système plus grand. Les unités plus petites indiquent également clairement comment et où orienter le travail en traitant [la dette technique](/docs/architect/fr-fr/well-architected/guide/intentional#dette-technique) et contribuent à la [lisibilité](/docs/architect/fr-fr/well-architected/guide/intentional#lisibilité) générale de votre système.
Vous pouvez mieux séparer les préoccupations dans votre organisation Salesforce en vous orientant vers les capacités métiers et l'état de gestion.
### Unités fonctionnelles
Pour les systèmes Salesforce, la meilleure approche pour séparer les préoccupations applique une perspective orientée métier afin d'identifier et d'organiser les unités (ou capacités) modulaires au sein du système. Ceci est différent d'une vue orientée vers l'ingénierie, qui identifie les unités en fonction de leur fonction technique. Une perspective orientée métier dans la séparation des préoccupations nécessite d'organiser le code et les personnalisations dans votre système en fonction du service qu'ils fournissent aux utilisateurs professionnels et professionnels. Adopter cette approche ne signifie pas ignorer le potentiel de fonctions techniques redondantes ou dupliquées dans un système. Cela signifie plutôt que les services techniques sont clairement mappés avec un principe d'organisation qui est finalement transparent pour l'entreprise.
S'orienter vers les capacités métiers permet de s'assurer que les transferts entre les équipes d'analyse métier et de découverte vers les équipes de livraison sont aussi simples que possible. Si les générateurs d'applications n'ont aucune idée de l'emplacement où leurs unités de travail sont mappées avec votre architecture composable, vous n'avez pas de paysage d'application composable. Les mappages imprécis entre l'état final requis par l'entreprise et les unités modulaires d'une organisation augmentent également les chances que des équipes de développement ou des fournisseurs construisent des fonctions redondantes dans le système.
Tenez compte des points suivants pour orienter les unités fonctionnelles vers les capacités commerciales :
- **Commencez par les tâches à faire**. Concentrez-vous sur les tâches à réaliser (JTBD) des utilisateurs et de l'entreprise elle-même. Lancée par Tony Ulwick, l'approche JTBD est centrée sur la compréhension du « travail », ou véritable objectif, que les gens tentent d'accomplir en utilisant un produit ou un service. C'est un niveau d'abstraction supérieur à celui des tâches associées au rôle des utilisateurs ou des étapes individuelles d'un processus métier. Par exemple, des tâches telles que les contrôles dupliqués et les validations d'adresses peuvent appartenir à une fonction d'ordre supérieur « établir une vue unique du client ». Lorsque vous avez une idée claire de ces capacités métier de niveau supérieur, vous pouvez commencer à mapper des parties de votre système avec elles.
- **Orienter vers les capacités, pas vers les structures hiérarchiques**. La hiérarchie interne de vos unités commerciales n'est pas un proxy pour des capacités significatives ou des tâches à réaliser. La hiérarchie interne de votre entreprise a un impact important sur les processus et les structures de l'équipe (sans parler des budgets). Ce sont des considérations logistiques importantes. Mais les besoins fonctionnels de l'entreprise fonctionnent à un niveau d'abstraction plus élevé que la logistique. Si vous créez un module pour servir une structure hiérarchique au lieu d'une fonction d'ordre supérieur, notez qu'il peut être nécessaire de prendre des mesures supplémentaires pour identifier la relation entre ce module et les capacités métiers.
- **Soyez itératif**. Commencez par établir un partenariat avec l'entreprise afin d'identifier les capacités qui pourraient fonctionner pour un produit minimum viable (MVP). Lorsque vous identifiez une capacité, commencez à élaborer ce MVP. Pendant l'élaboration, identifiez les processus, les métadonnées et les [événements ou messages](/docs/architect/fr-fr/well-architected/guide/composable#messagerie-et-événementiel) qui sont essentiels à l'unité fonctionnelle que vous créez. Identifiez tous les processus, métadonnées et événements ou messages qui sont des dépendances externes. À mesure que des unités plus fonctionnelles sont conçues, implémentez la [gestion des API](/docs/architect/fr-fr/well-architected/guide/composable#gestion-des-api) et la [gestion des dépendances](/docs/architect/fr-fr/well-architected/guide/composable#gestion-des-dépendances) pour élaborer des unités qui fonctionnent bien les unes avec les autres (au lieu de construire des unités cloisonnées).
La liste des [modèles et anti-modèles](/docs/architect/fr-fr/well-architected/guide/composable#séparation-des-préoccupations-schémas-et-anti-schémas) ci-dessous montre à quoi ressemble une orientation correcte (et mauvaise) de la fonction métier dans une solution Salesforce. Vous pouvez les utiliser pour valider vos conceptions avant de les élaborer, ou identifier les zones de votre système qui doivent être refactorisées.
Pour plus d'informations sur les outils disponibles dans Salesforce pour vous aider à mieux vous orienter vers les capacités métiers, consultez [Outils pertinents pour](/docs/architect/fr-fr/well-architected/guide/composable#outils-pertinents-pour-composable) Composable.
### Gestion des états
La gestion de l'État est centrée sur la circulation de l'information à travers un système à divers moments dans le temps. Une gestion efficace des états permet aux applications de gérer des flux de données ou des interactions complexes avec un minimum de résultats imprévus ou indéterminés. La gestion de l'état dans une organisation Salesforce modulaire nécessite d'élaborer des chemins clairs pour les flux logiques dans et entre les unités, ainsi que des chemins gracieux pour les comportements d'exécution imprévus. La gestion d'état permet de former des flux logiques cohérents à partir d'unités d'application Salesforce modulaires. Dans la plupart des cas, cela nécessite [une interopérabilité](/docs/architect/fr-fr/well-architected/guide/composable#interopérabilité) pour structurer le flux d'informations entre les unités.
Les difficultés de gestion des états entre des unités faiblement couplées entraînent souvent un développement d'application monolithique dans Salesforce. Vous pouvez le voir dans les grands « monoflux », qui sont construits pour tenter d'orchestrer un processus complexe dans un flux singulier. Un autre exemple est celui des classes Apex massives, qui orchestrent des processus complexes à travers _un code spaghetti_, ou une longue série de méthodes à usage unique. Ces types d'architecture d'application rendent la refactorisation et le débogage difficiles et augmentent les temps d'intégration pour les nouveaux membres d'équipe ou fournisseurs. Ils réduisent également la valeur des applications livrées à l'entreprise, car les fonctionnalités ne sont pas réutilisables.
Tenez compte des points suivants pour gérer l'état dans une organisation Salesforce modulaire :
- **Déterminez quand utiliser des schémas stateful par rapport à stateless**. Les modèles Stateful conservent les informations dans tout un parcours d'exécution, pas les modèles sans état. Dans un système faiblement couplé, les modèles sans état permettent de refactoriser les composants plus rapidement et avec moins d'effets secondaires. Cependant, les modèles sans état d'âme ne sont pas adaptés à tous les cas d'utilisation. Si vous élaborez des composants pour des opérations sur les données, les modèles d'état peuvent faciliter l'intégrité et la cohérence des données dans vos systèmes. Utilisez un schéma avec état si votre composant remplit l'un des critères suivants :
- La sensibilisation au placement dans un parcours d'exécution plus important est essentielle au comportement du composant
- Le comportement du composant doit changer en fonction des résultats d'une action en aval (par exemple, il doit changer l'exécution en fonction des messages d'annulation/d'erreur/de réussite des composants en aval)
- Le composant doit attendre les réponses d'un système externe ou en aval pour terminer son travail
- **Créez des catégories pertinentes pour les informations importantes**. _État_ est un terme ambigu qui peut s'appliquer à un éventail d'informations si vaste et si vaste au sein d'une organisation Salesforce (et au-delà) qu'en soi, ce terme n'a presque aucun sens. Une première étape nécessaire à l'élaboration de modèles d'états est donc de créer des catégories _significatives_ pour les parcours d'exécution d'états les plus importants (ou types de comportement d'états) dans votre système. Quelques catégories à prendre en compte :
- Navigation et formulaires
- Opérations de base de données
- Opérations par lot et en masse
- Erreurs
- **Définissez les états associés aux données en termes de [transactions de base](/docs/architect/fr-fr/fundamentals/guide/architecture-basics#manipulation-de-la-base-de-données)** de données. Les comportements intégrés de la plate-forme vont limiter la majorité des considérations d'état pour les données dans Salesforce. N'essayez pas de gérer ce comportement. Concevez pour et avec. Concevez des solutions qui réduisent ou éliminent la logique des transactions distribuées. (pour plus de détails, consultez [traitement des données](/docs/architect/fr-fr/well-architected/guide/automated#traitement-des-données)).
- **Identifier les états qui se produisent dans (et entre) les unités fonctionnelles**. En assemblant des unités fonctionnelles dans de plus grands systèmes, tenez compte du fait que vous mélangez le comportement des composants sans état et sans état, et évitez les combinaisons qui pourraient créer des boucles interminables ou des écarts dans le traitement.
- **Définissez les transferts**. Déterminez quels composants de schémas de [messagerie ou d'événements](/docs/architect/fr-fr/well-architected/guide/composable#messagerie-et-événementiel) vont utiliser pour transmettre des données relatives à l'état à une autre partie du système. Assurez-vous que vous sensibilisez vos composants aux transactions et [à leur gestion](/docs/architect/fr-fr/well-architected/guide/automated#traitement-des-données). N'incluez aucune logique de transaction distribuée dans vos transferts.
- **Créez des mappages entre vos diagrammes et états de processus**. Les diagrammes de processus détaillent les étapes qui déplacent les informations à travers votre système à divers moments dans le temps. Un diagramme d'état montre les changements réels dans les informations (l'état). Utilisez la partie du pied de page des métadonnées des formes des [diagrammes Salesforce](/docs/architect/fr-fr/reference-diagrams/guide/kit-of-parts) pour capturer l'évolution de l'état des informations à chaque étape de votre processus. Si vous séparez les diagrammes de processus et les diagrammes d'état, assurez-vous de les lier. Il ne faut pas confondre ce concept avec la capture de l'état actuel et futur des processus ou des paysages du système pendant la conception et la mise en oeuvre, car il ne s'agit pas de l'information qui circule dans le système.
La liste des [modèles et anti-modèles](/docs/architect/fr-fr/well-architected/guide/composable#séparation-des-préoccupations-schémas-et-anti-schémas) ci-dessous montre à quoi ressemble une bonne (et mauvaise) gestion de l'état dans une solution Salesforce. Vous pouvez les utiliser pour valider vos conceptions avant de les élaborer, ou identifier les emplacements de votre système qui doivent être refactorisés.
Pour plus d'informations sur les outils Salesforce de gestion des états, consultez [Outils pertinents pour](/docs/architect/fr-fr/well-architected/guide/composable#outils-pertinents-pour-composable) Composable.
### Séparation des préoccupations Schémas et anti-schémas
Le tableau ci-dessous présente une sélection de modèles à rechercher (ou à élaborer) dans votre organisation et d'anti-modèles à éviter ou à cibler pour remédier.
✨ Découvrez d'autres modèles de séparation des préoccupations dans l'[Explorateur de modèle](/docs/architect/fr-fr/well-architected-tools/guide/adaptable-separation-of-concerns) et anti-modèle.
| Modèles | Anti-Patterns | |
|---|---|---|
| Unités fonctionnelles | Dans vos normes de conception :
- Les conventions de nommage indiquent comment désigner une unité fonctionnelle - Une liste de toutes les unités fonctionnelles actuellement définies (et conventions de nommage associées) existe - Il existe des normes pour proposer des ajouts ou des modifications d'unité fonctionnelle |
Dans vos normes de conception :
- Les normes de conception n'existent pas ou ne traitent pas des unités fonctionnelles et des cas d'utilisation |
| Dans votre documentation :
- Les diagrammes de paysage système montrent clairement les unités fonctionnelles dans une organisation - Tous les diagrammes de documentation et de mise en œuvre indiquent clairement l'unité fonctionnelle des composants - La documentation relative aux composants individuels inclut le mappage des unités fonctionnelles du composant - Tous les composants d'une unité fonctionnelle peuvent être recherchés et faciles à trouver |
Dans votre documentation :
- La documentation sur les composants n'existe pas - La documentation sur les composants décrit l'unité fonctionnelle à laquelle un composant appartient, mais c'est le seul endroit où la définition de cette unité fonctionnelle apparaît - Vous ne pouvez pas rechercher une unité fonctionnelle particulière et/ou les recherches n'aident pas à identifier tous les composants dans une unité fonctionnelle |
|
| Dans votre organisation :
- Il est possible d'identifier rapidement l'alignement de l'unité fonctionnelle pour un élément de métadonnées donné (par exemple, un flux, une classe Apex, ou une page Lightning) - Les unités fonctionnelles sont étiquetées en termes commerciaux |
Dans votre organisation :
- Il n'est pas possible d'identifier l'alignement des unités fonctionnelles pour des métadonnées - Les informations sur les unités fonctionnelles sont incohérentes ou inexactes - Les informations sur les unités fonctionnelles sont étiquetées en termes axés sur l'ingénierie qui n'ont aucun sens pour les utilisateurs commerciaux |
|
| Gestion d'État | Dans vos normes de conception :
- Les cas d'utilisation de conceptions avec ou sans état sont clairs - Des schémas approuvés pour la communication sans état d'âme existent - Il existe des schémas approuvés pour la communication statique - Des catégories claires pour l'état existent |
Dans vos normes de conception :
- Les normes de conception n'existent pas ou ne traitent pas des schémas et des cas d'utilisation d'états/apatrides |
| Dans votre documentation :
- Chaque composant qui gère la communication par état et/ou sans état indique quel modèle a été implémenté - Il est possible de rechercher et de retrouver tous les composants qui ont implémenté un schéma stateful/stateless particulier - Les diagrammes de processus et d'interaction fournissent des détails sur les catégories d'état et les transferts |
Dans votre documentation :
- La documentation sur les composants n'existe pas - La documentation sur les composants décrit le modèle stateful/stateless implémenté, mais c'est le seul endroit où la définition est affichée - Il n'est pas possible de rechercher un modèle particulier et/ou les recherches n'aident pas à identifier tous les composants utilisant ce modèle |
|
| Dans Apex : - Les points d'enregistrement et les comportements de restauration sont utilisés dans toutes les opérations de données |
Dans Apex : - Les points d'enregistrement et les comportements de restauration ne sont pas utilisés |
|
| Dans Flux : - Chemins de défaut et l'élément Restaurer les enregistrements est utilisé |
Dans Flux : - L'élément Restaurer les enregistrements n'est pas utilisé |
| Modèles | Anti-Patterns | |
|---|---|---|
| Messagerie et événementiel | Dans vos normes de conception :
- Il existe des normes claires pour quand utiliser des modèles synchrones (messagerie) et des modèles asynchrones (soirée) - Des normes claires existent pour les structures d'événements et de messages |
Dans vos normes de conception :
- Il n'existe pas de normes de conception, ou il n'existe pas de normes claires pour les modèles de synchronisation par rapport aux modèles asynchrones, ni de normes claires pour les structures de messages ou d'événements |
| Dans votre organisation :
- Les événements de plate-forme utilisés pour la messagerie système interne sont clairement étiquetés - Les outils de flux Salesforce référencent des services de messagerie ou d'événementiel à l'échelle du système - Des modèles de messagerie et d'événementiel cohérents sont affichés dans les flux et le code |
Dans votre organisation :
- Les événements de plate-forme utilisés pour la messagerie système interne ne sont pas clairement étiquetés ou n'existent pas - Différentes stratégies pour les modèles de messagerie et d'événementiel sont affichées dans le flux et le code |
|
| Dans Apex ou LWC :
- La portée des définitions d'événements personnalisés est limitée (aucun événement ou message à l'échelle du système n'est défini dans le code) - Les services de messagerie ou d'événementiel à l'échelle du système dans Apex sont annotés de manière à les rendre disponibles dans les outils de flux Salesforce |
Dans Apex ou LWC :
- Les structures de messages et/ou d'événements à l'échelle du système sont définies en Apex ou JavaScript - Les structures d'événements ou de messages à l'échelle du système définies dans Apex ne sont pas disponibles dans des outils comme le flux |
|
| Gestion des API | Dans vos normes de conception :
- Il existe des protocoles clairs pour la communication entre les composants (c.-à-d. des API) - Les protocoles/API sont indiqués dans des groupes logiques que les générateurs peuvent rechercher et retrouver - Les protocoles/API définissent les types de données de variables, les noms de variables, ce qui est obligatoire ou facultatif et fournissent une description claire de quand utiliser |
Dans vos normes de conception :
- Les normes de conception n'existent pas ou ne définissent pas d'API et de cas d'utilisation |
| Dans votre documentation :
- La documentation de chaque composant indique clairement quel protocole d'API/communication a été implémenté - Il est possible de rechercher une API ou un protocole particulier et d'identifier les composants où il est implémenté |
Dans votre documentation :
- La documentation sur les composants n'existe pas - La documentation sur les composants décrit l'API implémentée dans un composant, mais c'est le seul endroit où la définition de l'API est affichée - Il n'est pas possible de rechercher une API ou un protocole particulier et/ou les recherches n'aident pas à identifier les composants dans lesquels une API ou un protocole a été implémenté |
|
| Dans votre organisation :
- Les formats et les variables de message d'API pour la communication interne sont définis avec des types de métadonnées personnalisées - Les formats et les variables des messages d'API pour la communication interne sont définis avec des événements de plate-forme - Les personnalisations de code et déclaratives référencent le type de métadonnées personnalisées (ou événement de plate-forme) approprié afin d'envoyer ou de recevoir des informations |
Dans votre organisation :
- La communication entre les composants du système (code et personnalisations déclaratives) est ponctuelle - Les API sont définies exclusivement pour la communication entre Salesforce et des systèmes externes |
Quel que soit le paradigme d'organisation du package que vous choisissez, il y a quelques absolus à garder à l'esprit :
- **Ne dupliquez pas les métadonnées entre les packages**. Les métadonnées requises par plusieurs packages doivent être extraites dans un ou plusieurs packages déclarés en tant que dépendances.
- **Utilisez les dépendances intégrées des métadonnées Salesforce Platform**. Pour les générateurs d'applications, les services intégrés offerts par Salesforce Platform offrent de nombreuses fonctionnalités qui peuvent être configurées rapidement. Beaucoup de ces services ont des dépendances intégrées qui les rendent difficiles à extraire dans des unités fonctionnelles de bas niveau. Pour un type de métadonnées donné, vous devez comprendre sa position dans le [spectre des dépendances](https://developer.salesforce.com/blogs/2018/06/lets-talk-deployment-and-reasons-why-they-succeed-or-fail) intégrées et utiliser cette compréhension pour [définir vos chaînes](https://developer.salesforce.com/blogs/2018/06/working-with-modular-development-and-unlocked-packages-part-2) de dépendance de package. Ne commencez pas à adopter un package en essayant de forcer le couplage libre dans une fonctionnalité de plate-forme standard avec de nombreuses dépendances intégrées. Elle ajoutera de la complexité (pas de la valeur) lorsque vous atteindrez des capacités d'ordre supérieur. C'est aussi une autre façon de tomber dans les [anti-modèles](/docs/architect/fr-fr/well-architected/guide/intentional#modèles-de-maintenabilité-et-anti-modèles) [standards par rapport](/docs/architect/fr-fr/well-architected/guide/intentional#fonctionnalité-standard-par-rapport-à-la-fonctionnalité-personnalisée) aux modèles personnalisés. Empaquetez les métadonnées depuis le bas (dépendances les plus faibles) vers le haut, puis itérez au fil du temps.
- **Attention à vos chaînes de dépendance**. Évitez de créer des chaînes de dépendance de package qui obligeront les développeurs à diviser leurs modifications en plusieurs packages à la fois.
- **Réfléchissez à ce qui est logique pour le contrôle de la source**. Il existe deux méthodes de base pour gérer vos packages dans le contrôle du code source. Le premier est un _monorepo_ unique avec des packages isolés dans des dossiers. Le deuxième est le repos multiple avec des packages isolés dans leur propre repos. La gestion à long terme de chaque type de stratégie source est complexe. En termes d'intégration des développeurs, les frontières verticales sont plus efficaces dans plusieurs paradigmes de référentiel. Les frontières horizontales sont plus compréhensibles dans un monorepo. Là encore, vous pouvez combiner et mapper des stratégies à mesure que votre architecture mûrit.
La liste des [modèles et anti-modèles](/docs/architect/fr-fr/well-architected/guide/composable#modèles-et-anti-modèles-dempaquetage) ci-dessous montre à quoi ressemble une gestion correcte (et médiocre) des dépendances avec les packages Salesforce. Vous pouvez les utiliser pour valider vos conceptions avant de les élaborer, ou identifier les zones de votre système qui doivent être refactorisées.
Pour plus d'informations sur les outils Salesforce de gestion des dépendances, consultez [Outils pertinents pour](/docs/architect/fr-fr/well-architected/guide/composable#outils-pertinents-pour-composable) Composable.
### Modèles et anti-modèles d'empaquetage
Le tableau ci-dessous présente une sélection de modèles à rechercher (ou à élaborer) dans votre organisation et d'anti-modèles à éviter ou à cibler pour remédier.
✨ Découvrez d'autres modèles d'empaquetage dans l'[Explorateur de modèle](/docs/architect/fr-fr/well-architected-tools/guide/adaptable-packageability) et anti-modèle.
| Modèles | Anti-Patterns | |
|---|---|---|
| Couplage lâche | Dans vos normes de conception :
- Les conventions de nommage indiquent comment désigner les unités de package - Il est possible de rechercher et de retrouver une liste de toutes les unités de package actuellement définies (et conventions de nommage associées) - Il existe des normes pour proposer des ajouts ou des modifications d'unité de package - (Facultatif) Tous les cas d'utilisation approuvés pour des paramètres personnalisés sont clairement répertoriés (si vous en avez) |
Dans vos normes de conception :
- Les normes de conception n'existent pas ou ne traitent pas des unités de package et des cas d'utilisation |
| Dans votre organisation :
- Les types de métadonnées personnalisées fournissent des informations dynamiques à l'exécution pour les personnalisations de code et déclaratives - Aucun paramètre personnalisé n'existe ou peu de paramètres personnalisés existent, et aucun n'est associé à une fonctionnalité empaquetée - Aucun objet personnalisé n'existe afin de fournir des informations dynamiques à l'exécution pour les personnalisations de code ou déclaratives |
Dans votre organisation :
- Des paramètres personnalisés sont utilisés - Des objets personnalisés existent afin de fournir des informations dynamiques à l'exécution pour des personnalisations de code ou déclaratives - Les types de métadonnées personnalisées ne sont pas utilisés (ou ne sont pas utilisés de façon cohérente) pour fournir des informations dynamiques à l'exécution pour les personnalisations de code et déclaratives |
|
| Dans Apex :
- Les services courants et le code boilerplate sont définis en utilisant des classes Apex abstraites ou virtuelles - Les méthodes dépendantes d'informations dynamiques à l'exécution référencent des types de métadonnées personnalisées appropriés |
Dans Apex :
- Les services communs et le code de chaudière ne se distinguent pas facilement des autres classes - Les références internes entre les classes et les méthodes sont difficiles à suivre et sont incohérentes dans la base de code - Les méthodes n'utilisent pas une approche cohérente pour accéder à des informations dynamiques à l'exécution, ou les méthodes interrogent des objets personnalisés pour des informations sur le comportement à l'exécution, ou référencent des paramètres personnalisés |
|
| Dans des environnements de contrôle de source et de développement :
- les fichiers package.xml sont affichés uniquement dans les manifestes de projet à un stade précoce ou de validation de concept |
Dans des environnements de contrôle de source et de développement :
- Les fichiers package.xml sont utilisés pour contrôler les déploiements de métadonnées |
|
| Dans des packages :
- Les packages déverrouillés dépendants de l'organisation sont utilisés uniquement pour des expériences en phase initiale ou de validation de concept - Aucun package non géré n'est défini en production ou sandbox |
Dans des packages :
- Tous les packages sont des packages déverrouillés dépendants de l'organisation - Les packages non gérés sont définis en production ou en sandbox |
|
| Gestion des dépendances | Dans vos normes de conception :
- Des normes de déclaration des dépendances existent - Des normes d'introduction ou de modification de dépendances existent |
Dans vos normes de conception :
- Les normes de conception n'existent pas ou ne traitent pas de la déclaration des dépendances |
| Dans le contrôle source :
- Les versions de package des packages déverrouillés utilisent l'aliasing ( LATEST) pour déclarer les dépendances dans les manifestes sfdx-project.json
- Les développeurs peuvent créer des organisations tests et déployer des métadonnées de package avec succès depuis le contrôle source |
Dans le contrôle source :
- Les versions de package pour les packages déverrouillés sont déclarées explicitement (pas dernier alias) dans les manifestes sfdx-project.json
- Les développeurs ne peuvent pas travailler avec succès avec des organisations tests en utilisant le contrôle source |
|
| Dans vos packages :
- Aucune métadonnées n'est dupliquée entre les packages - Pour le développement de package, tous les travaux de développement en phase initiale sont effectués dans des organisations tests |
Dans vos packages :
- Les dépendances sont contournées en dupliquant les métadonnées dans différents packages - Le développement anticipé de packages se produit dans les organisations sandbox Developer ou le développement anticipé de packages ne peut pas se produire dans les organisations tests |
|
| Voir également : Couplage lâche | ||
| Outil | Description | Séparation des préoccupations | Interopérabilité | Emballage |
|---|---|---|---|---|
| Apex REST Web Services | Exposer vos classes et méthodes Apex à des applications externes via REST | X | ||
| Apex SOAP Web Services | Exposer vos classes et méthodes Apex à des applications externes via SOAP | X | ||
| Capture des données | Publier les modifications apportées aux enregistrements Salesforce | X | ||
| Types de métadonnées personnalisées | Définir une fonctionnalité réutilisable, personnalisable et empaquetable | X | ||
| Décorateurs | Exposer publiquement des fonctions ou des propriétés en tant qu'API | X | X | |
| Dev Hub | Gérez les organisations tests, les packages de deuxième génération et les fonctionnalités Einstein. | X | X | X |
| Événements génériques (hérités)* | Envoyer des événements personnalisés qui ne sont pas liés aux modifications des données Salesforce | X | ||
| Lightning Data Service | Mettre en cache et partager des données entre les composants | X | X | |
| API de métadonnées | Déployer des personnalisations entre les environnements Salesforce | X | ||
| Rapport sur la couverture des métadonnées | Déterminer la couverture des métadonnées prises en charge sur plusieurs canaux | X | ||
| MuleSoft Composer | Élaborer une automatisation des processus pour les données en utilisant des clics au lieu de code | X | ||
| Messages sortants | Envoyer des messages à des points de terminaison externes lorsque les valeurs de champ sont mises à jour | X | ||
| Événements de plate-forme | Envoyer des messages sécurisés et évolutifs contenant des données d'événements en temps quasi réel | X | ||
| API Pub/Sub | Abonnement à des événements de plate-forme, Capture des données de modification ou Surveillance des événements en temps réel | X | ||
| Événements pushTopic (hérités)* | Envoyer et recevoir des notifications de modification correspondant à une requête SOQL définie par l'utilisateur | X | ||
| Salesforce CLI | Développer et élaborer une automatisation en travaillant avec votre organisation Salesforce | X | ||
| Diagrammes Salesforce | Créer des diagrammes pour montrer les capacités métiers et les détails techniques | X | ||
| Extensions Salesforce pour Visual Studio Code (Agrandi) | Extensions VS Code officielles pour le développement Salesforce | X | ||
| Organisations tests | Déployer le code et les métadonnées Salesforce dans une organisation jetable | X | ||
| Forfaits gérés de deuxième génération | Développer et distribuer des applications pour AppExchange | X | ||
| API Tooling | Élaborer des outils ou des applications de développement personnalisés pour les applications Lightning Platform | X | ||
| Forfaits déverrouillés | Organiser les métadonnées, empaqueter une application ou étendre une application AppExchange | X | ||
| * Salesforce continuera de prendre en charge PushTopic et les événements génériques dans les limites des capacités fonctionnelles actuelles, mais n'envisage pas d'autres investissements dans cette technologie. | ||||
| Ressource | Description | Séparation des préoccupations | Interopérabilité | Emballage |
|---|---|---|---|---|
| Un regard primitif sur l'intégration numérique | Développer un langage commun pour les concepts de connectivité | X | ||
| Application de la conception pilotée par le domaine avec Salesforce | Orienter vos solutions autour des capacités métiers | X | ||
| Meilleures pratiques pour les packages de deuxième génération | Compréhension des modèles et des pratiques d’emballage 2GP | X | ||
| Composants disponibles dans des packages gérés | Compréhension des composants de métadonnées de package géré | X | ||
| Modèle Design Standards | Créer des normes de conception pour votre organisation | X | X | X |
| Guide de décision de l'architecture pilotée par les événements | Comparer les modèles et les outils d'architecture pilotée par l'événement | X | ||
| Anti-modèles d'événements | Identifier les anti-modèles à éviter lors de l'utilisation d'événements | X | ||
| Comment concevoir des API pilotées par les messages et les événements | Découvrez les différences dans un guide de développement MuleSoft | X | X | |
| En savoir plus sur le cadre des tâches à accomplir | Explorez JTBD sur Trailhead | X | ||
| Gérer l'état global dans B2C Commerce | Transmettre aisément des données entre des composants pour conserver l'état | X | ||
| Consignes de messagerie | Communiquer des informations pertinentes et créer des moments de plaisir | X | ||
| Types de messagerie | Comprendre les différents types de messagerie par la nature de l'interaction des utilisateurs | X | ||
| Types de métadonnées | Comprendre les différents types de métadonnées dans votre organisation Salesforce | X | X | |
| Types de notification d'application mobile | Comprendre les types de notification pour les applications mobiles Salesforce | X | ||
| Optimisation de l'état de vue | Maintenir l'état dans une page Visualforce | X | ||
| Salesforce Developer Experience (DX) | Gérer et développer des applications sur Lightning Platform | X | X | X |
| Types de métadonnées non pris en charge | Identifier les composants qui ne sont pas disponibles dans l'API de métadonnées | X |
| Modèles | Anti-Patterns | |
|---|---|---|
| Confidentialité des données | Dans votre documentation :
- Vous avez un dictionnaire de données à jour contenant les noms, les descriptions et les classifications au niveau du champ - Vous avez une matrice de sécurité à jour qui identifie les utilisateurs qui ont accès à quelles données - Vous disposez d'une documentation de conception à jour, comprenant des normes et des diagrammes pour toutes les automatisations créées pour répondre aux exigences réglementaires |
Dans votre documentation :
- Un dictionnaire de données n'existe pas ou n'a pas été tenu à jour - La documentation sur le partage et la visibilité n'existe pas ou n'a pas été mise à jour - Les normes de conception, les diagrammes et la documentation pour les automatisations qui répondent aux exigences réglementaires n'existent pas ou n'ont pas été tenus à jour |
| Dans votre organisation :
- Tous les objets et champs qui contiennent des informations confidentielles ou sont soumis aux réglementations sur la confidentialité des données ont configuré Catégorie de conformité, Propriétaire des données, Niveau de confidentialité des données et Utilisation des champs |
Dans votre organisation :
- La configuration des objets et des champs qui contiennent des informations confidentielles ou sont soumis à la réglementation sur la confidentialité des données est manquante pour Catégorie de conformité, Propriétaire des données, Niveau de confidentialité des données ou Utilisation des champs |
|
| Localisation | Dans votre documentation :
- Vous avez une stratégie d'organisation qui indique où les données seront stockées et conservées pour satisfaire à toutes les exigences de résidence des données applicables - Vous avez une stratégie d'intégration qui décrit des scénarios et des processus acceptables pour répliquer des données à travers les frontières - Vous avez une stratégie d'analyse qui souligne le niveau de granularité que les rapports et les tableaux de bord peuvent contenir aux niveaux régional, national et mondial |
Dans votre documentation :
- Vous n'avez pas de stratégie organisationnelle ou votre stratégie organisationnelle ne répond pas aux exigences de localisation des données et de résidence - Vous n'avez pas de stratégie d'intégration ou votre stratégie d'intégration ne répond pas aux exigences de localisation des données et de résidence - Vous n'avez pas de stratégie Analytics ou votre stratégie Analytics ne répond pas aux exigences de localisation des données et de résidence |
| Modèles | Anti-Patterns | |
|---|---|---|
| Société Politiques | Dans vos normes de conception :
- Les normes comprennent des directives claires pour les domaines impactés par les politiques de l'entreprise |
Dans vos normes de conception :
- Les normes de conception n'existent pas ou ne fournissent pas de directives claires sur les domaines soumis aux politiques de l'entreprise |
| Dans votre documentation :
- La documentation sur la configuration et les personnalisations inclut des références aux valeurs de l'entreprise prises en charge |
Dans votre documentation :
- La documentation sur la configuration et les personnalisations ne référence pas les valeurs ou les politiques de l'entreprise |
|
| Dans votre organisation :
- Tous les objets et champs soumis à la conformité liée à la politique de l'entreprise ont une Catégorie de conformité, un Propriétaire des données, un Niveau de sensibilité des données et une Utilisation des champs configurés |
Dans votre organisation :
- Les objets et qui sont soumis à la conformité liée à la politique de l'entreprise sont manquants dans la configuration Catégorie de conformité, Propriétaire des données, Niveau de confidentialité des données ou Utilisation du champ |
|
| Intelligence artificielle | Dans vos normes de conception :
- Les stratégies et les cas d'utilisation approuvés pour les applications IA sont clairs et faciles à trouver - Assurez-vous que les données et les documents utilisés pour RAG sont représentatifs, complets, exacts et à jour. Recherchez les biais, les toxiques et les autres contenus nuisibles qui pourraient résider dans vos jeux de données ou votre documentation. - Les réponses génératives identifient toujours les sources de données utilisées par les modèles IA - Les jeux de données qui peuvent/ne peuvent pas être utilisés pour l'ingénierie rapide ont été documentés - Les robots et les réponses IA génératives sont clairement identifiés pour les utilisateurs - Définition claire des normes pour quand et comment utiliser les clauses d'exclusion de responsabilité pour l'IA générative - Existence d'exigences claires pour la documentation des points d'implication humaine dans la conception de solutions IA - Des normes de documentation des parcours de rétroaction directe et indirecte dans les conceptions de solutions IA existent - Les points auxquels l'IA doit être identifiée pour un utilisateur sont clairement définis - Garder un humain à la barre, en particulier dans les cas d'utilisation réglementés ou à haut risque |
Dans vos normes de conception :
- Les normes de conception n'existent pas ou n'incluent pas de politiques claires et de cas d'utilisation approuvés pour les applications IA - Les réponses génératives n'identifient pas les sources de données utilisées par les modèles IA - Les jeux de données utilisés pour l'ingénierie rapide ne sont pas documentés - Les robots et les réponses IA génératives ne sont pas identifiés pour les utilisateurs - Avertissements concernant les réponses génératives manquants - Aucune exigence de documentation des points d'implication humaine dans les conceptions de solutions IA n'existe - Aucune norme de documentation des parcours de rétroaction directe et indirecte pour les conceptions de solutions IA n'existe - Les normes de conception n'indiquent pas les points auxquels l'IA doit être identifiée pour les utilisateurs |
| Dans votre documentation :
- La documentation relative à la configuration et aux personnalisations impliquant des fonctionnalités IA contient une description complète de toute la logique de processus et est stockée à un emplacement central accessible par les équipes juridiques ou les auditeurs - Les modèles que vous élaborez ou apportez à Salesforce sont clairement documentés, y compris tous les segments de données applicables - La logique de conversation et les conversations des agents sont documentées en profondeur - Des processus sont en place pour surveiller les modèles d'IA de votre organisation pour la dérive des données, l'évolution des scores d'équité et de biais, la précision et la robustesse - Des descriptions sont conservées pour la formation, l'évaluation et les données de test utilisées pour tous les processus IA - Les descriptions sont conservées pour tout nettoyage des données liées à l'IA avec les tests de biais, les résultats associés et les scores de performance/précision (par exemple, scores F1) |
Dans votre documentation :
- La documentation relative à la configuration et aux personnalisations impliquant des fonctionnalités IA est manquante, incomplète ou stockée à un emplacement inaccessible - Les modèles ou systèmes IA sont implémentés dans votre organisation sans documentation sur leurs modèles - Les agents sont implémentés dans votre organisation sans documentation sur les messages et le flux de conversation - Les processus de surveillance IA n'existent pas ou ne sont pas documentés - Les informations sur les données d'entraînement, d'évaluation et de test utilisées pour tous les processus IA ne sont pas claires ou ne sont pas disponibles - Les informations sur le nettoyage des données liées à l’IA, les tests de biais et les résultats ne sont pas claires ou ne sont pas disponibles |
| Modèles | Anti-Patterns | |
|---|---|---|
| Saisie de données | Dans vos normes de conception :
- Tous les appareils qui peuvent être utilisés pour la saisie de données au-delà d'un clavier et d'une souris standard sont répertoriés - Les valeurs de texte et leurs traductions dans toutes les langues prises en charge sont répertoriées |
Dans vos normes de conception :
- Seuls certains, ou aucun, des appareils qui peuvent être utilisés pour la saisie de données au-delà d'un clavier et d'une souris standard sont répertoriés - Les langues prises en charge sont répertoriées avec les éléments de l'interface utilisateur à traduire |
| Dans vos plans de test :
- Les étapes de test comprennent l'utilisation de plusieurs types de périphérique d'entrée pour saisir des données - Les étapes de test comprennent la saisie de données dans plusieurs langues |
Dans vos plans de test :
- Les tests d'accessibilité ne sont pas inclus ou les tests de saisie de données accessibles sont effectués de façon ponctuelle |
|
| Dans votre organisation :
- Les traductions des langues prises en charge sont stockées dans le Système de traduction |
Dans votre organisation :
- Les traductions sont stockées dans des étiquettes personnalisées |
|
| Navigation | Dans vos normes de conception :
- Tous les appareils qui peuvent être utilisés pour la navigation (pas seulement le clavier et la souris standard) sont clairement répertoriés - Les normes UI/UX spécifient le type et le style de toutes les commandes de navigation - Les types d'indice visuel approuvés pour transmettre un sens ou un état sont clairement répertoriés, et la couleur n'est pas un indice principal |
Dans vos normes de conception :
- Aucune norme de conception n'existe ou ne tient pas compte des exigences d'accessibilité pour les commandes de navigation - Les normes UI/UX de navigation sont incohérentes - Les indices visuels de signification ou d'état dépendent de la couleur ou il n'y a pas de listes claires d'indices visuels pour les constructeurs |
| Dans vos plans de test :
- Les étapes de test comprennent l'utilisation de plusieurs types de périphériques d'entrée pour naviguer - Les plans de test comprennent l'utilisation de tests UI/UX pour garantir des parcours de navigation cohérents |
Dans vos plans de test :
- Le test d'accessibilité n'est pas inclus ou le test de la navigation accessible est effectué au cas par cas |
| Outil | Description | Adhésion juridique | Normes éthiques | Accessibilité |
|---|---|---|---|---|
| Agentforce Analytics | Recueillir des connaissances sur les performances de vos agents | X | ||
| Centre de test Agentforce | Exécutez jusqu'à 10 tâches de test avec jusqu'à 1000 requêtes de test par test, afin de créer et d'évaluer rapidement plusieurs scénarios. | X | ||
| Citations | Les citations aident à identifier les imprécisions ou les hallucinations potentielles dans les réponses générées, ce qui augmente votre confiance dans l'utilisation des outils d'IA. | X | ||
| API de consentement | Suivre les préférences de consentement des clients | X | ||
| Flux d'événements de consentement | Envoyer des notifications de modification du consentement ou des coordonnées | X | ||
| Objets de gestion du consentement | Gérer les préférences de confidentialité et de consentement des clients | X | ||
| Accès aux données et portabilité | Exportation des données associées aux clients sur demande | X | ||
| Classification des données | Enregistrer les informations de conformité et d'audit des clés pour les champs d'objet | X | ||
| Rapports Data 360 | Surveiller le respect des instructions des agents | X | ||
| Suppression des données | Supprimer les données pour respecter les réglementations légales | X | ||
| Préférences de confidentialité des données | Stocker les préférences de confidentialité des données des clients | X | X | |
| Traduction des données | Traduire les données présentées aux utilisateurs | X | X | |
| Détection des données | Alignement des catégories et des niveaux de sensibilité sur les données réelles | X | ||
| Explorateur Data 360 | Gérer les autorisations de projet et d'objet pour les scientifiques des données | X | X | |
| Einstein Data Prism | Une solution d’ancrage pour les applications d’IA générative dans Salesforce, qui améliore la précision des solutions d’IA utilisant ses capacités d’ancrage | X | ||
| Einstein Trust Layer | Ensemble de fonctionnalités, de processus et de politiques conçus pour protéger la confidentialité des données, améliorer la précision de l'IA et promouvoir une utilisation responsable de l'IA dans l'écosystème Salesforce | X | ||
| Journaux d'événements avancés | Les journaux d'événements capturent les événements et les messages utilisateur dans une session d'agent pour vérifier l'adhésion aux instructions, tester et dépanner votre agent. | X | ||
| Files Connect | Parcourir, rechercher et partager des fichiers externes depuis Salesforce | X | ||
| Hyperforce | Respecter les exigences locales en matière de stockage de données | X | ||
| Traduction des métadonnées | Traduire les langues pour localiser les applications | X | X | |
| API Portability | Compiler les données clients identifiées dans votre politique de portabilité | X | X | |
| Centre de préférence | Récupérer les préférences de communication des clients | X | X | |
| Privacy Center | Satisfaire les demandes des clients et les lois sur la confidentialité des données | X | X | |
| Limitation du traitement des données | Limiter les méthodes de traitement des données personnelles | X | X | |
| Droit à l'oubli | Supprimer des données clients individuelles sur demande | X | ||
| Salesforce Files | Partager et stocker des fichiers en privé | X | ||
| Centre de sécurité | Afficher les paramètres de sécurité et de confidentialité dans plusieurs organisations | X | ||
| B Shield Platform Encryption | Cryptage des données au repos et en transit | X | ||
| Système de traduction | Maintenir les valeurs traduites pour les métadonnées et les étiquettes de données | X | X |
| Ressource | Description | Adhésion juridique | Normes éthiques | Accessibilité |
|---|---|---|---|---|
| 5 principes pour une conception IA responsable | Concevoir la fonctionnalité Intelligence artificielle (IA) de façon éthique | X | ||
| Accessibility Basics (Trailhead) | Découvrez pourquoi l'accessibilité est importante | X | ||
| Rapports de conformité à l'accessibilité (ACR) | Comprendre comment Salesforce respecte les normes d'accessibilité | X | ||
| Vue d'ensemble de l'accessibilité | Comprendre l'accessibilité dans Salesforce Lightning | X | ||
| Modèle de maturité de l'éthique IA | Élaborer une feuille de route pour rendre opérationnels les principes éthiques | X | ||
| AI Red Teaming : Testing for Trust | Découvrez comment les « hackers éthiques » de Salesforce développent l'IA responsable via l'équipe rouge. | X | ||
| Automatisation de l'adversaire : Conception d’une infrastructure évolutive pour l’IA Red Teaming | Découvrez comment Salesforce automatise la génération d'invites contradictoires et la validation des réponses. fuzzai permet de sécuriser les interactions IA tout en réduisant l'exposition humaine aux contenus nocifs. | X | ||
| Meilleures pratiques de conception de conversations | Respecter les meilleures pratiques lors de la conception de chatbots | X | X | |
| Meilleures pratiques de conception durable (Trailhead) | Intégrer le développement durable dans vos conceptions | X | ||
| Gestion du consentement | Suivre et respecter les demandes de consentement et de désabonnement | X | ||
| Stratégies de données pour Einstein | Contrôler l'utilisation des données dans toutes les fonctionnalités Einstein | X | X | |
| Modèle Design Standards | Créer des normes de conception pour votre organisation | X | X | X |
| Les pratiques éthiques de piratage réussissent à élaborer des produits Intelligence artificielle approuvés | Découvrez comment Salesforce utilise des pratiques d'équipe rouge pour améliorer la sécurité de nos produits IA en testant les utilisations malveillantes, les attaques d'intégrité intentionnelles, les abus bénins et en identifiant les problèmes d'IA responsables. | X | ||
| Leadership éthique et affaires | Connaissances sur la technologie, l'égalité et l'éthique | X | ||
| Politique d'utilisation éthique | Explorer la politique de Salesforce sur l'utilisation éthique de nos produits et services | X | ||
| Ethics by Design (Trailhead) | Intégrer le design éthique dans le développement technologique | X | ||
| Exploration de la culture et des valeurs de Salesforce (Trailhead) | Exploration des valeurs principales de Salesforce | X | X | |
| Suivez les consignes de conception mobile accessible | Suivez les meilleures pratiques pour rendre vos conceptions accessibles | X | X | |
| Premiers pas avec l'accessibilité Web (Trailhead) | Apprenez les bases pour rendre les sites Web et les applications accessibles | X | ||
| Comment Salesforce élabore une infrastructure Red Teaming reproductible | Quatre composants que nous recommandons lors de la conception, de l'implémentation et de l'exécution d'un test contradictoire | X | ||
| Comment animer un atelier d'analyse des conséquences | Prendre en compte tous les résultats possibles tout en innovant | X | ||
| Mise en œuvre de la protection des données et de la vie privée | Évaluer les exigences de protection des données et de la vie privée | X | ||
| Conception inclusive (Trailhead) | Favoriser l’innovation avec des principes de conception inclusive | X | X | |
| Modèle de feuille de calcul KPI | Définition d'indicateurs de performance clés (KPI) pour votre organisation | X | ||
| Informations légales | Exploration du centre d'informations juridiques de Salesforce | X | ||
| Module de consentement aux cookies LWC | Contrôler l'accès des cookies utilisateur dans les sites Experience Cloud | X | X | |
| Vue d'ensemble de la confidentialité | Découverte de la confidentialité des données par région et secteur d'activité | X | ||
| Promouvoir des agents responsables et éthiques | Apprenez à mettre en œuvre des stratégies d'équipe rouge et de test éthiques, et à élaborer des principes directeurs et des normes pour votre organisation. | X | ||
| Consignes relatives à l’IA agentique responsable | X | |||
| Création responsable du module Trailhead IA | Apprenez à supprimer les biais de vos données et algorithmes pour créer des systèmes d’IA éthiques dans votre entreprise. | X | ||
| Consignes relatives à l’IA générative responsable | Nous nous sommes appuyés sur nos principes Intelligence artificielle approuvée avec une nouvelle série de lignes directrices axées sur le développement et la mise en œuvre responsables de l’IA générative. | X | ||
| Certifications de conformité Salesforce | Examiner les certifications et attestations de conformité de Saleforce | X | ||
| Conception durable (Trailhead) | Renforcer la relation entre l’entreprise et la société | X | ||
| Test de l'accessibilité Web (Trailhead) | Utiliser des tests automatisés et manuels pour garantir l'accessibilité | X | ||
| IA agentique de confiance | Découvrez comment Agentforce utilise des garanties et des principes d'IA responsable pour créer une IA éthique. | x |
| Modèles | Anti-Patterns | |
|---|---|---|
| Complexité de l'application | Dans votre organisation :
- Les applications ont moins de 10 onglets dans la configuration par défaut fournie par l'administrateur - Aucune application n'a défini « Désactiver la personnalisation des éléments de navigation dans cette application par l'utilisateur » sur true |
Dans votre organisation :
- Les applications ont généralement plus de 10 onglets dans la configuration par défaut fournie par l'administrateur - De nombreuses applications ont défini « Désactiver la personnalisation des éléments de navigation par l'utilisateur dans cette application » sur true ou l'autorisation de personnalisation des éléments de navigation est désactivée dans l'organisation |
| Formulaires | Dans vos applications :
- Les champs suivent des regroupements logiques - Les champs de saisie de données sont affichés ensemble, par groupe de cinq ou moins - Les erreurs de saisie de données sont claires et affichées au niveau du champ, avant que les utilisateurs ne quittent ou soumettent des données - Les contrôles de pagination activent le déplacement entre les étapes - Soumission de données une fois - Les étiquettes des actions et de la navigation sont claires - Des commentaires visuels et opportuns sont fournis pour confirmer les actions de l'utilisateur telles que les clics sur les boutons - Les boutons de navigation (par exemple, « aller », « suivant » et « retour ») sont placés de façon cohérente dans l'interface utilisateur |
Dans vos applications :
- Les champs de saisie de données ne sont pas regroupés de façon logique, ce qui nécessite un nombre important de basculements de contexte par les utilisateurs qui remplissent des formulaires - Les erreurs de saisie de données contiennent des informations cryptiques qui ne peuvent être interprétées que par quelqu'un qui comprend le fonctionnement interne du système - Les erreurs de saisie de données sont affichées uniquement lorsque le bouton Soumettre d'un formulaire est cliqué - Les étapes et les regroupements ne sont pas clairement définis, ce qui rend la navigation difficile - La soumission de données se produit plusieurs fois pendant le processus de saisie de données - Les étiquettes des actions et de la navigation prêtent à confusion pour les utilisateurs qui ne connaissent pas les fonctionnalités système sous-jacentes - La confirmation visuelle des actions de l'utilisateur n'est pas fournie - Les boutons de navigation sont affichés à des emplacements arbitraires dans l'interface utilisateur |
| Dans votre logique de formulaire :
- Les champs sont préremplis ou automatiquement remplis autant que possible - Les utilisateurs ne sont pas contraints d'attendre la fin des longues actions côté serveur - Les composants personnalisés utilisent cacheable=true pour les actions basées sur le serveur qui n'impliquent pas d'opérations de données
- Les opérations sur les données sont effectuées une fois - Dans les adaptateurs LWC @wire, toutes les actions n'impliquant pas d'opérations sur les données sont gérées |
Dans votre logique de formulaire :
- Les champs qui peuvent être préremplis ou automatiquement remplis nécessitent une saisie manuelle - Les utilisateurs doivent arrêter de travailler pendant le processus de soumission pour attendre la fin des actions côté serveur - Ensemble de composants personnalisés cacheable=false |
|
| Facteur de forme | Dans votre organisation :
- Les modèles de page Lightning fournis par Salesforce sont utilisés pour toutes les pages ou la plupart des pages - Les modèles de page Lightning personnalisés utilisent design:supportedFormFactors et design:supportedFormFactor dans les fichiers de conception de composants Aura
- Les composants LWC ou Aura personnalisés disponibles dans le Générateur d'applications déclarent les facteurs de forme pris en charge dans leurs fichiers de conception respectifs et implémentent des modèles de style sensibles à la largeur |
Dans votre organisation :
- Classic est toujours actif - Les modèles de page Lightning personnalisés n'utilisent pas uniformément design:supportedFormFactors et design:supportedFormFactor dans les fichiers de conception de composants Aura
- Les composants LWC ou Aura personnalisés disponibles dans le Générateur d'applications ne déclarent pas systématiquement les facteurs de forme pris en charge dans leurs fichiers de conception respectifs - Dans les composants LWC ou Aura personnalisés, le style sensible à la largeur n'est pas implémenté par les interfaces fournies par Salesforce - Dans les composants LWC ou Aura personnalisés, le style des différents facteurs de forme est piloté uniquement par des valeurs px ou % codées en dur dans CSS |
| Sur ordinateur de bureau :
- Les champs de saisie de données et les contrôles de navigation s'adaptent à l'écran et peuvent être interagis comme prévu - Les pages d'enregistrement et d'application sont correctement affichées, selon les règles d'attribution d'activation de page |
Sur ordinateur de bureau :
- Les champs de saisie de données et les contrôles de navigation ne sont pas affichés à l'emplacement voulu à l'écran - Les interactions avec les champs de saisie de données et les contrôles de navigation ne correspondent pas aux comportements requis - L'absence de règles d'attribution d'activation de page signifie que tous les utilisateurs affichent les mêmes pages d'enregistrement et d'application |
|
| Sur mobile et tablette :
- Les entrées de données et les contrôles de navigation sont correctement affichés - Les utilisateurs peuvent saisir aisément des données - Les menus de navigation mobiles, optimisés pour les plus petits facteurs de forme, apparaissent - Présentations compactes affichées au niveau de l'enregistrement |
Sur mobile et tablette :
- Les entrées de données et les contrôles de navigation ne sont pas restitués de façon cohérente ou correcte - Les utilisateurs ne peuvent pas saisir facilement des données - Les menus de navigation mobiles ne se distinguent pas de la navigation sur ordinateur de bureau - Les présentations compactes ne sont pas configurées au niveau de l'enregistrement |
| Modèles | Anti-Patterns | |
|---|---|---|
| Notifications et messages | Vos normes de conception comprennent :
- Cas d'utilisation approuvés pour les notifications, les toasts et les avis - Modèles de conception pour les variantes flottantes et les notifications - Concevoir des modèles pour la messagerie d'erreur |
Si des normes de conception sont définies, elles ne corrigent pas les erreurs et les notifications |
| Dans votre organisation :
- Les notifications sont le format de messagerie prédominant - Les messages flottants utilisent des variantes - Les messages flottants avec le mode défini sur sticky n'existent pas
- Les avis sont rarement, voire pas du tout utilisés - Les réponses génératives identifient toujours les sources de données utilisées - Les robots s'identifient clairement avant la première interaction avec les utilisateurs - Avis de non-responsabilité pour les risques associés à l’IA générative affiché pour les utilisateurs avant la première interaction - Les exclusions de responsabilité IA sont dans un langage clair et compréhensible pour les utilisateurs |
Dans votre organisation :
- Les e-mails sont le format de messagerie prédominant - Il n'y a pas d'approche cohérente des types de message - Les messages flottants n'utilisent pas systématiquement des variantes - Les messages flottants avec le mode défini sur sticky existent
- Les avis sont utilisés ad hoc - Les réponses génératives n'identifient pas les sources de données utilisées - Les robots ne s'identifient pas clairement avant la première interaction avec les utilisateurs - Aucune clause de non responsabilité pour les risques d’IA générative n’est affichée pour les utilisateurs - Les exclusions de responsabilité IA ne sont pas rédigées dans un langage clair et compréhensible pour les utilisateurs |
|
| Dans vos applications :
- Aucune réponse générative n'est envoyée directement aux utilisateurs sans point d'implication humaine |
Dans vos applications :
- Les réponses génératives sont envoyées directement aux utilisateurs sans point d'implication humaine |
|
| Voir également : Traitement des erreurs | ||
| Guide dans l'application | Vos normes de conception et votre documentation comprennent :
- Cas d'utilisation approuvés pour le guide dans l'application - Concevoir des modèles pour des invites et des procédures pas à pas - Une matrice claire d'utilisateurs, d'applications et un guide dans l'application actif |
Si des normes de conception et de la documentation existent, elles :
- Ne pas traiter le guide dans l'application - Ne pas inclure une matrice claire montrant les utilisateurs, les applications, le guide dans l'application actif |
| Dans votre organisation :
- Le paramètre « Délai entre le guide dans l'application » utilise la valeur par défaut ou une valeur personnalisée supérieure à la période par défaut (24 heures) fournie par Salesforce - Aucune application n'a plusieurs procédures pas à pas actives - Aucune procédure pas à pas n'a un paramètre « Temps d'affichage » supérieur à 10 - Aucune invite n'est activée pour "Toute page, toute application" ou "Cette page, toute application" |
Dans votre organisation :
- Le paramètre « Délai entre le guide dans l'application » est défini sur une période inférieure à la période par défaut (24 heures) fournie par Salesforce - Les applications ont plusieurs procédures pas à pas actives - De nombreuses procédures pas à pas ont un paramètre « Temps d'affichage » supérieur à 10 (et certaines ont une valeur maximale de 30) - Les invites sont activées de façon ad hoc, beaucoup avec le paramètre "N'importe quelle page, n'importe quelle application" ou "Cette page, n'importe quelle application" |
|
| Reconnaissance et récompenses | Dans votre organisation :
- Les applications utilisent des analytiques incorporées pour montrer aux utilisateurs des statistiques pertinentes de progression des objectifs et de productivité - Les célébrations de parcours sont activées uniquement avec le consentement de l'utilisateur - Les notifications et la messagerie incluent la reconnaissance de l'utilisateur, et reflètent les préférences de l'utilisateur dans la conception des destinataires et des déclencheurs des notifications |
Dans votre organisation :
- Les analytiques associées à la progression des objectifs et aux statistiques de productivité sont disponibles uniquement dans les rapports ou les tableaux de bord de responsable - Les célébrations de parcours sont activées sans vérification du consentement de l'utilisateur - Les notifications et les messages ne comprennent aucun type de reconnaissance de l'utilisateur ou ne reflètent pas les préférences des utilisateurs et se sentent bruyants ou incompréhensibles |
| Outil | Description | Rationalisation | Utile |
|---|---|---|---|
| Activation de votre page d'application Lightning | Gérer la disponibilité, le nommage, la visibilité et le positionnement des pages | X | |
| Tableaux de bord Adoption | Examiner l'historique des connexions, l'adoption des fonctionnalités et la productivité | X | X |
| Alerte | Maintenir les alertes pendant les sessions et les afficher sans initiation de l'utilisateur | X | |
| Mise en cache côté client des résultats de la méthode Apex | Évaluer les performances avec des données côté client mises en cache | X | |
| Formulaires dynamiques | Afficher uniquement les champs obligatoires et les sections de page pour les utilisateurs | X | |
| Connaissances d'engagement | Surveiller l'activité récente des utilisateurs et prendre les mesures nécessaires | X | X |
| Guide dans l'application | Utiliser des invites et des procédures pas à pas pour la formation et l'intégration | X | |
| Parcours d'apprentissage | Personnaliser les expériences d'apprentissage des utilisateurs | X | |
| Générateur d'applications Lightning | Créer des pages mobiles et Lightning personnalisées sans code | X | |
| Lightning Data Service | Mettre en cache et partager des données entre les composants | X | |
| Validateur du système de conception Lightning pour VS Code | Valider le balisage par rapport aux consignes SLDS | X | X |
| Modèles de page Lightning | Élaborer des pages Lightning pour différents facteurs de forme | X | |
| Filtres de référence | Valeurs de filtrage pour les relations de référence, principal-détails et hiérarchiques | X | |
| Gérer les devises multiples | Utiliser plusieurs devises dans des transactions | X | |
| Messaging | Envoyer des SMS, Facebook Messenger ou WhatsApp | X | |
| Mobile Publisher | Créer des versions mobiles d'applications Lightning et de sites Experience Cloud | X | |
| Composants Mobile-Ready | Élaborer des composants performants dans toutes les expériences mobiles | X | |
| Sites multilingues | Créer différentes versions linguistiques de votre site | X | X |
| Générateur de notification | Créer des notifications personnalisées pour présenter des informations | X | |
| Chemin | Guider les utilisateurs à travers les processus métiers et célébrer la réussite | X | X |
| Cache de la plate-forme | Amélioration des performances et de la fiabilité lors de la mise en cache des données | X | |
| Prévisualisation des pages d'application mobile dans le Générateur d'applications Lightning | Prévisualisation des pages d'enregistrement et d'application sur un appareil mobile | X | |
| Invite | Alerter les utilisateurs des problèmes et des mises à jour liés au système | X | |
| Badges de reconnaissance | Reconnaître et célébrer les réalisations des utilisateurs | X | |
| Reconnaissance avec WDC | Approuver les compétences et remercier | X | |
| Types d'enregistrement | Personnaliser les processus métiers, les valeurs de liste de sélection et les présentations de page | X | X |
| Présentation de la réputation | Reconnaître la participation et le partage Knowledge | X | |
| Règles de restriction | Empêcher les utilisateurs d'accéder aux enregistrements qui peuvent contenir des données inutiles | X | |
| Composants de page standard | Comprendre les composants Salesforce Lightning standard | X | |
| Traductions | Gérer les traductions pour les utilisateurs internationaux | X | X |
| Règles de validation | Vérifiez que les données respectent les normes spécifiées avant d'enregistrer | X |
| Ressource | Description | Rationalisation | Utile |
|---|---|---|---|
| Guide de l'architecte pour la construction de formulaires | Évaluer les considérations relatives à la conception de formulaires et sélectionner le meilleur outil | X | |
| Configuration de votre composant pour différents facteurs de forme | Configurer les composants à restituer sur les ordinateurs de bureau et les téléphones | X | |
| Personnalisation du contenu d'aide | Adaptez les contenus d'aide à votre implémentation unique | X | |
| Valeurs de champ par défaut | Définir des valeurs de champ par défaut, dynamiques ou statiques | X | |
| Consign Guidelines | Créer des interfaces utilisateur cohérentes avec les meilleures pratiques | X | X |
| Modèle Design Standards | Créer des normes de conception pour votre organisation | X | X |
| Compétences en matière d'essais de conception (Trailhead) | Méthodes de planification pour valider et tester une conception | X | X |
| Consignes relatives aux commentaires dans l'application | Consultez les consignes pour recueillir les commentaires de votre système. | X | X |
| Bibliothèque statique Android Lightning Design System | Élaborez des applications Android natives avec la présentation des pages Lightning | X | |
| Bibliothèque statique iOS Lightning Design System | Élaborer des applications iOS natives avec la présentation des pages Lightning | X | |
| Consignes de messagerie | Communiquer des informations pertinentes et créer des moments de plaisir | X | |
| Types de messagerie | Comprendre les différents types de messagerie basés sur l'interaction des utilisateurs | X | |
| Navigation Guidelines | Aider les utilisateurs à se déplacer entre les pages et à se situer dans une application | X | |
| Test de l'accessibilité Web (Trailhead) | Utiliser des tests automatisés et manuels pour garantir l'accessibilité | X | X |
| Consignes d'engagement des utilisateurs | Consultez les consignes d'intégration, d'adoption, d'assistance et d'apprentissage. | X | X |
| Intentional | ||
|---|---|---|
| Les solutions intentionnelles offrent une valeur métier immédiate et au fil du temps. Les architectures intentionnelles sont planifiées et livrées de façon stratégique, peuvent être maintenues efficacement et sont faciles à lire et à comprendre pour les humains. | ||
| Stratégie | Maintenabilité | Lisibilité |
| Priorisation Mappage routier Gouvernance |
Standard par rapport à Personnalisé Dette technique |
Normes de conception Documentation |
| Automatisé | ||
| Les solutions automatisées permettent à l'entreprise d'accélerer et d'adapter son travail. Une automatisation saine réduit le temps consacré aux tâches répétitives et manuelles ou à la saisie de données complexes. | ||
| Efficacité | Intégrité des données | |
| Conception de processus Logique opérationnelle KPIs |
Traitement des données Traitement des erreurs |
|
| Engagement | ||
| Les solutions engageantes ravissent les utilisateurs et favorisent l'adoption. L'architecture pour l'engagement signifie créer des expériences utilisateur intuitives et utiles. | ||
| Rationalisation | Utile | |
| Complexité de l'application Formulaires Facteur de forme |
Notifications et messagerie Guide dans l'application Reconnaissance et récompenses |
|
| Classement/Type de déclencheur | Mitigation |
|---|---|
| Personnes | Police |
| Processus | Playbooks, plans de continuité |
| Technologie | Redondance |
| Déclencheur | Mitigation | Base | Intermédiaire | Mature |
|---|---|---|---|---|
| Modification de l’accès utilisateur pour un nouvel employé ou un employé qui quitte | Accord de niveau de service (SLA) et exigences relatives au provisionnement ou au déprovisionnement des utilisateurs | Provisionnez et déprovisionnez manuellement les utilisateurs, conformément aux accords de niveau de service pour les modifications manuelles. | Traitez les modifications des utilisateurs à travers les tâches planifiées, conformément aux accords de niveau de service pour les modifications planifiées. | Automatisez le provisionnement et le déprovisionnement des utilisateurs via une solution SSO/IDM. |
| Modèles | Anti-Patterns | |
|---|---|---|
| Gestion des risques | Dans votre entreprise :
- Un cadre d'évaluation des risques établi est utilisé. - Les risques sont classés dans les domaines des personnes, des processus et de la technologie. |
Dans votre entreprise :
- Le cadre d'évaluation des risques de Salesforce est ad hoc. - Les risques ne sont pas clairement identifiés. |
| Dans votre documentation :
- La sévérité du risque est catégorisée et évaluée en fonction de l'impact client. - Les plans d'atténuation des risques et d'intervention sont prioritaires. |
Dans votre documentation :
- Le point de vue du client n'est pas pris en compte lors de l'évaluation de la sévérité ou de la catégorie de risque. - Les plans d'atténuation des risques et d'intervention tentent de capturer tous les risques imaginables. |
|
| Atténuation des échecs | Dans votre organisation :
- Les déclencheurs de point de défaillance et leurs plans d'atténuation correspondants sont classés par personnes, processus et technologie. - Les contrôles d'atténuation sont mis en place immédiatement, matures au fil du temps et intègrent l'automatisation le plus tôt possible. - Pour garantir une évolutivité optimale, des tests complets et une optimisation sont effectués avant la publication des modifications en production. - Avant les événements critiques pour l'entreprise, des tests d'échelle et l'optimisation sont effectués, conformément aux accords de niveau de service. |
Dans votre organisation :
- Les déclencheurs de point d'échec ne sont pas classés. Les approches d'atténuation n'existent pas ou ne sont utilisées que de façon ponctuelle. - Les contrôles d'atténuation ne sont pas revisités ni améliorés. - L'automatisation n'est pas utilisée dans l'atténuation. |
| Surveillance et observation | Dans votre organisation :
- Pour les contrôles et la détection des anomalies, Proactive Monitoring est activé. - Pour une visibilité permanente, les alertes Proactive Monitoring sont intégrées à Scale Center. |
Dans votre organisation :
- Seuls des contrôles d'état de santé manuels sont effectués, et aucune surveillance continue n'est en place. |
| Modèles | Anti-Patterns | |
|---|---|---|
| Débit | Dans vos normes de conception :
- Le guide d'utilisation du cache de la plate-forme respecte les meilleures pratiques |
Dans vos normes de conception :
- S'il existe un guide pour l'utilisation du cache de la plate-forme, il n'est pas clair ou n'est pas conforme aux meilleures pratiques. |
| Dans votre organisation :
- Le traitement en masse est utilisé pour les opérations sur les données et le système. - Les méthodes DML ou de base de données fonctionnent toujours contre les collections dans Apex . - Les champs utilisés pendant le DML pour un elapsedTime plus court dans la base de données sont limités. - Tous les critères génériques sont utilisés en SOSL. - Les instructions SOQL sont sélectives. : -- Ils n'utilisent pas de comparaisons LIKE ou de comparaisons de texte partiel. -- Les opérateurs de comparaison utilisent une logique positive (en d'autres termes, INCLUDES ou IN) comme logique principale ou uniquement logique. -- = NULL et != NULL ne sont utilisés que rarement suit toujours un opérateur de comparaison positif. – Pour minimiser le chargement des données et optimiser les performances, seuls les champs nécessaires dans les requêtes SOQL sont récupérés. -- Aucune instruction LIMIT 1 n'est utilisée. -- Le mot-clé ALL ROWS n'est pas utilisé. - Le traitement asynchrone est privilégié dans la mesure du possible. - Les partitions Cache de la plate-forme sont configurées. |
Dans votre organisation :
- Les instructions DML ne sont pas traitées en masse. - Les méthodes DML ou de base de données fonctionnent dans Apex contre des enregistrements uniques. - SOSL est rarement ou pas systématiquement utilisé pour les critères de sélection de caractères génériques. - Les instructions SOQL ne sont pas sélectives : -- Ils incluent des critères de filtrage LIKE et générique. -- Les comparaisons utilisant des critères !=, NOT ou NOT IN sont utilisées en tant qu'opérateur de comparaison principal ou unique. -- Utilise = NULL et != critères NULL comme opérateurs principaux ou seulement de comparaison. -- Les instructions LIMIT 1 sont utilisées. -- Le mot-clé ALL ROWS est utilisé. - SOQL est affiché dans les boucles. - Les processus synchrones sont favorisés. |
|
| Latence | Dans votre organisation :
- Les rapports servent un seul objectif spécifique et contiennent le nombre minimal de lignes et de colonnes nécessaires pour prendre des décisions. - Les filtres utilisent « égal à » et « différent de ». - Les filtres ne contiennent pas de champs de formule. - Les modèles de partage sont simplifiés au maximum. - Les composants d'interface utilisateur personnalisés utilisent des Composants Web Lightning (LWC). - LWC utilise Lightning Data Service pour les opérations sur les données. - Le tri et le filtrage des données de liste sont gérés côté client en JavaScript. - Salesforce Edge est activé. |
Dans votre organisation :
- Les rapports servent à plusieurs fins ou contiennent des lignes et des colonnes supplémentaires qui ne sont pas nécessaires pour prendre des décisions. - Les filtres utilisent « contient » et « ne contient pas ». - Les filtres contiennent des champs de formule. - Les modèles de partage sont complexes. - Les composants d'interface utilisateur personnalisés utilisent des frameworks qui peuvent entraîner un rendu moins efficace que LWC (par exemple Aura ou Visualforce). - LWC utilise Apex pour les opérations de données. - Les données des listes de tri et de filtrage sont gérées côté serveur en utilisant Apex. - Salesforce Edge n'est pas activé. |
| Modèles | Anti-Patterns | |
|---|---|---|
| Modélisation des données | Dans vos normes de conception :
- Il existe des normes et des directives pour lesquelles des justifications métiers justifient un objet personnalisé. |
Dans vos normes de conception :
- Aucune norme de création d'objets personnalisés n'existe. |
| Dans votre modèle de données :
- Les objets standard sont utilisés dans la mesure du possible. - Les contrôles ApexGuru des anti-modèles confirment que les requêtes SOQL sont sélectives et évitent l'utilisation inefficace du schéma. - Les tableaux sont dénormalisés pour l'échelle. |
Dans votre modèle de données :
- Vous avez répliqué des objets standard. - Les tableaux sont normalisés pour éviter la redondance. |
|
| Au sein de votre entreprise :
- Les générateurs de code faible comprennent les différents types de champ pris en charge par Salesforce, et évaluent les exigences de génération de rapports et de cryptage avant de sélectionner des types de données de champ. - Avant de décider d'établir une relation principal-détails entre des objets, vous évaluez les implications de partage et d'asymétrie des données de cette relation. |
Au sein de votre entreprise :
- Les générateurs à faible code sélectionnent des types de données sans évaluer les exigences de génération de rapports et de cryptage en aval. - Avant de décider d'établir des relations principal-détails entre des objets, vous n'évaluez pas les implications de partage et d'asymétrie des données de cette relation. |
|
| Volume de données | Dans vos données :
- Aucun enregistrement parent ne contient plus de 10 000 enregistrements enfants. - Aucun utilisateur n'est attribué à plus de 10 000 enregistrements de même type d'objet. - Aucune instance ne contient plus de 10 000 enregistrements qui ont des champs de référence pointant vers le même enregistrement. - Les chargements de données en masse sont triés par lots en fonction des valeurs de champ ParentId. - Pour s'assurer que les stratégies par lot ne se brisent pas en cas de concurrence, le Test de l'évolutivité est utilisé pour valider les modèles de chargement en masse à l'échelle de production. - Les chargements de données en masse en production ne sont pas effectués pendant les heures de pointe. - Les chargements de données en masse incluent uniquement les données minimales nécessaires pour les décisions métiers. |
Dans vos données :
- Des enregistrements contenant plus de 10 000 enregistrements enfants existent. - Les utilisateurs sont attribués à plus de 10 000 enregistrements de même type. - Il existe des instances dans lesquelles plus de 10 000 enregistrements ont des champs de référence qui pointent vers le même enregistrement. -Les chargements de données en masse ne sont pas triés par lots en fonction des valeurs de champ ParentId. - Les chargements de données en masse en production ont lieu pendant les heures ouvrables de pointe. - Les chargements de données en masse ne sont pas limités aux données minimales requises pour les décisions métiers. |
| Dans Flow et Apex :
- Une logique existe pour distribuer le nombre d'enregistrements enfants entre plusieurs enregistrements parents dans les scénarios où l'asymétrie des données est préoccupante. - Lors de l'importation ou de la réplication d'enregistrements via l'intégration, la logique les attribue aux utilisateurs humains appropriés. - Pour les collections Apex, telles que les listes et les ensembles, une logique existe pour traiter plusieurs enregistrements afin de minimiser les requêtes et d'optimiser le traitement des données. - Un code Apex efficace qui suit les normes et les meilleures pratiques pour un code évolutif est écrit et déployé. |
Dans Flow et Apex :
- Les enregistrements enfants sont attribués arbitrairement à des enregistrements parents, quel que soit le nombre d'enregistrements enfants déjà attribués. - Les enregistrements créés via des chargements de données ou des intégrations sont attribués à un « utilisateur de l'intégration » générique. - Plusieurs requêtes SOQL récursives à partir du même objet sont dans des transactions synchrones, ce qui entraîne une utilisation élevée de la pile. - Lorsque les développeurs écrivent un code Apex, ils introduisent des inefficacités et des anti-modèles de performance. |
|
| Au sein de votre entreprise :
- Vous avez documenté et mis en place une stratégie d'archivage et de purge des données |
Au sein de votre entreprise :
- Vous n'avez pas de stratégie d'archivage et de purge des données ou votre stratégie a été documentée, mais pas implémentée |
| Outil | Description | Disponibilité | Performances | Évolutivité |
|---|---|---|---|---|
| Gros objets | Stockez et gérez des volumes de données importants sur la plate-forme. | X | ||
| Scanner de code | Scannez le code Apex pour détecter les problèmes de performance. | X | ||
| Index personnalisés | Améliorez les performances des requêtes avec des index personnalisés. | X | ||
| Suppression de données | Supprimez les données inutiles pour améliorer les performances. | X | X | |
| Divisions | Partitionnez les données pour limiter le nombre d'enregistrements dans les requêtes et les rapports. | X | ||
| Test à l'échelle | Testez les performances du système et interprétez les résultats. Avant le déploiement en production, pour valider l'évolutivité et les performances, imitez les charges de travail d'interface utilisateur et d'API à grande échelle en utilisant des scripts Playwright ou JMeter. | X | X | |
| Centre d'échelle | Recueillez des connaissances en libre-service et en temps réel sur les performances du système. Recherchez les transactions à long terme, les points chauds d'exception et les blocages de débit. Diagnostiquez les problèmes d'échelle plus tôt dans votre cycle de développement. | X | X | |
| ApexGuru | Utilisez cette fonctionnalité basée sur GenAI dans le Centre d'échelle pour détecter Apex, SOQL et les anti-modèles de classe de test à l'exécution. Avec l'intégration d'ApexGuru à Salesforce Code Analyzer, recevez des recommandations pilotées par l'IA et des correctifs en ligne dans le workflow de développement. Utilisez ces recommandations et correctifs pour résoudre les points chauds et améliorer la sélectivité des requêtes, le traitement en masse, l'utilisation de la mémoire cache et la qualité des tests. | X | X | |
| Salesforce Code Analyzer | Scannez le code avec IDE, CLI ou CI/CD pour vous assurer qu'il respecte les meilleures pratiques. Avec l'intégration de Salesforce Code Analyzer à ApexGuru, recueillez des connaissances sur les anti-modèles de performance directement dans le workflow du développeur. | X | ||
| Salesforce Edge Network | Améliorez les temps de téléchargement et l'expérience utilisateur en acheminant votre Mon domaine via le Réseau Edge Salesforce. | X | ||
| Tableaux fins | Évitez les jointures dans les tableaux qui contiennent des champs fréquemment utilisés. | X | ||
| Proactive Monitoring | Surveillez en permanence les anomalies de croissance record, d'asymétrie de propriété et de régression des performances. Alertez sur les problèmes d'échelle avant qu'ils ne deviennent critiques. | X | X |
| Ressource | Description | Disponibilité | Performances | Évolutivité |
|---|---|---|---|---|
| Les défis d'échelle coûtent des millions — Voici comment pérenniser votre activité | Découvrez comment la mise en œuvre de l'évolutivité conduit à une croissance durable et à la réussite à long terme. | X | X | |
| Élaboration et déploiement d'applications évolutives en utilisant le Centre d'échelle | Comprenez comment évaluer et résoudre proactivement les problèmes de performance dans vos implémentations Salesforce. | |||
| Analyse des performances et des points chauds d'échelle dans les applications Salesforce complexes | Corrigez les problèmes de performance et d'évolutivité dans votre organisation. | X | X | |
| Votre application ne devrait pas paniquer dans le trafic aux heures de pointe - Voici comment vous préparer | Découvrez quatre étapes clés pour réussir les tests d'échelle. | |||
| Le moteur IA ApexGuru expliqué | Découvrez comment ApexGuru utilise des modèles entraînés sur mesure, la télémétrie d'organisation réelle et le filtrage intelligent pour fournir des connaissances précises, contextuelles et actionnables. | X | X | |
| Optimisation de votre Apex pour les applications et Agentforce avec ApexGuru | Apprenez comment ApexGuru aide les développeurs à détecter et corriger les anti-modèles de performance, notamment SOQL, DML, le débogage, et tester les inefficacités., Utilisez ApexGuru en tant que coach piloté par l'IA pour le développement évolutif de vos applications et votre implémentation d'Agentforce. | X | X | |
| ApexGuru Antipatterns | Découvrez la bibliothèque officielle des anti-modèles détectés par ApexGuru, qui est mise à jour pour chaque version majeure de Salesforce. | X | X | |
| Meilleures pratiques pour les déploiements avec des volumes de données importants | Comprenez les impacts des processus des volumes de données importants. | X | ||
| Considérations relatives au Réseau Edge Salesforce | Découvrez comment préparer votre organisation à utiliser le Réseau Edge Salesforce. | X | ||
| Modèle Design Standards | Créez des normes de conception pour votre organisation. | X | X | X |
| Considérations relatives à la conception de modèles de données | Optimisez les modèles de données pour l'échelle et la maintenance. | X | X | |
| Conception de l'accès aux enregistrements pour Enterprise Scale | Optimisez les performances du contrôle d'accès par la configuration. | X | ||
| Infrastructure pour les systèmes avec des volumes de données importants | Découvrez les capacités qui prennent en charge les performances système pour les déploiements avec des volumes de données importants. | X | ||
| Ressources d'apprentissage pour la gestion par lot | Découvrez la Gestion par lot. | X | X | |
| Optimisation des performances Lightning Experience | Améliorez Lightning Experience dans votre organisation pour aider vos utilisateurs à travailler plus vite. | X | ||
| Gestion de l'asymétrie des références dans Salesforce pour éviter les exceptions de verrouillage d'enregistrement | Comprenez comment minimiser les effets des biais de référence. | X | X | |
| Meilleures pratiques SOQL et SOSL | Suivez les meilleures pratiques SOQL et SOSL pour les déploiements avec des volumes de données importants. | X | X | |
| Outils pour les réalignements à grande échelle | Planifiez et exécutez efficacement les réalignements. | X | ||
| Utilisation de Mashups | Gérez des jeux de données volumineux dans une autre application. | X | X |
| Modèles | Anti-Patterns | |
|---|---|---|
| Priorité | Dans votre documentation :
- Tous les nouveaux éléments de travail ont des métriques de valeur métier claires (par exemple, augmentation du chiffre d'affaires, économies de coûts liées à l'optimisation des processus, etc.) - Feuilles de route montrant le travail prioritaire en fonction de la valeur métier |
Dans votre documentation :
- La valeur commerciale associée au travail n'est pas claire ou n'existe pas - Les feuilles de route n'existent pas |
| Au sein de votre entreprise :
- Les coûts de mise en œuvre et de maintenance ont été identifiés pour tous les éléments de travail - Les demandes de fonctionnalités sont priorisées en fonction de l'impact sur l'entreprise, de la quantité de nouveaux travaux à livrer et de la quantité de travail à maintenir |
Au sein de votre entreprise :
- Les coûts associés à l'implémentation et à la maintenance des fonctionnalités ne sont pas clairs - Les demandes sont livrées de façon ponctuelle ou selon le principe du premier entré/premier sorti |
|
| Cartographie routière | Feuilles de route :
- Communiquer des informations adaptées à votre audience (métier ou technique) - Communiquer les informations au niveau de détail correct - Afficher les dates de début et de fin - Afficher les prérequis et les dépendances |
Feuilles de route (si elles existent) :
- Sont utilisés comme matériel de lancement de projet et non comme artefacts pour la livraison - Ne pas aider à aligner les parties prenantes et les équipes de livraison -Mélanger les niveaux de détail (par exemple, en incluant des systèmes et des composants dans la même feuille de route) - Contenir des informations qui ne sont pas adaptées à leur audience (par exemple, les capacités métiers et les systèmes dans la même feuille de route) |
| Au sein de votre entreprise :
- Les parties prenantes comprennent le « pourquoi » des éléments de travail - Les équipes de livraison savent évaluer les éléments du backlog par rapport aux priorités à plus long terme - Les équipes savent qui fait quoi et comment gérer les dépendances - Le travail est intentionnel, même lorsque les priorités doivent changer rapidement |
Au sein de votre entreprise :
- Le travail est extrait de tout ce qui est dans le backlog et il n'y a pas de « pourquoi » clair - Les équipes ont du mal à coordonner le travail interdépendant et souvent à répliquer le travail sans s'en rendre compte - Le travail est souvent réactif - Les intervenants se sentent souvent frustrés et confus au sujet de ce qui est fait et sont fatigués lorsque de nouvelles capacités seront livrées |
|
| Gouvernance | Au sein de votre entreprise :
- Les utilisateurs peuvent aisément signaler des bogues et demander des fonctionnalités - Le processus de priorisation des éléments de travail est documenté et transparent pour toutes les parties prenantes - La stratégie environnementale est clairement documentée et les environnements de développement correspondent à la documentation - La planification de la version est prévisible et transparente pour tous les membres de l'équipe de livraison - Les membres de l'équipe savent qui est responsable de quoi tout au long du cycle de vie de l'application - Les versions sont claires pour les utilisateurs et les équipes de livraison/maintenance - Les processus de support en production sont clairs et les correctifs ont un chemin clair vers la production - Les équipes et les projets utilisent uniquement des modèles IA approuvés pour des usages métiers |
Au sein de votre entreprise :
- Les rapports de bogues et les demandes de fonctionnalité sont ponctuels - Les éléments de travail n'ont pas de priorité claire - Les environnements sont provisionnés ad hoc et peuvent ne pas être actualisés de façon prévisible; les développeurs n'ont souvent pas les environnements et l'accès dont ils ont besoin - Les versions sont imprévisibles pour les équipes de diffusion et les utilisateurs - Les équipes ne savent pas qui est responsable de quoi - Les correctifs sont traités ad hoc - Votre backlog est devenu une « banque d’idées » périmée et stagnante - Les organes de gouvernance agissent comme un service d'assistance qui dépanne les demandes de support - La documentation n'est pas facilement accessible - Les équipes sélectionnent des modèles IA ad hoc |
| Modèles | Anti-Patterns | |
|---|---|---|
| Standard vs. Personnalisé | Dans vos normes de conception :
- Il existe un principe directeur clair pour empêcher les solutions de personnalisation inutile - Le principe directeur des solutions utilise la priorité suivante: 1. Utiliser des services de plate-forme intégrés, 2. Tenez compte des applications AppExchange avant d'élaborer une solution personnalisée, 3. Utiliser des personnalisations à faible code avant d'écrire un code |
Dans vos normes de conception :
- Les normes de conception n'existent pas ou n'ont pas de justification claire pour éviter les personnalisations et le code inutiles |
| Dans votre documentation :
- Les enregistrements de décision affichent le calcul des coûts à court et à long terme lors du choix d'élaborer ou d'acheter des solutions |
Dans votre documentation :
- Les enregistrements de décision ne prennent pas en compte les coûts à court et à long terme lors du choix d'élaborer ou d'acheter des solutions |
|
| Dans des modèles de données :
- Aucun objet n'a de nom ou de fonctionnalité qui duplique des objets standard - Les objets standard ne sont pas utilisés à des fins qui sortent de leur portée prévue |
Dans des modèles de données :
- Les objets dupliquent les noms et/ou les fonctionnalités des objets standard - Les objets standard sont utilisés à des fins qui dépassent largement leur portée prévue |
|
| Dans LWC, Aura ou Visualforce :
- Aucun code n'existe pour remplacer les mécanismes de vue de page standard |
Dans LWC, Aura ou Visualforce :
- Un code existe pour remplacer les mécanismes de vue de page standard, souvent sous la forme d'une application à page unique |
|
| Dans LWC, Aura ou Apex :
- Aucun code ne tente de remplacer ou de contourner l'ordre d'exécution de la plate-forme |
Dans LWC, Aura ou Apex :
- Le code tente de remplacer ou de contourner l'ordre d'exécution de la plate-forme |
|
| Dette technique | Dans votre feuille de route :
- Des travaux de résolution de la dette technologique sont prévus - Les livrables et les dates de début/fin sont clairs |
Dans votre feuille de route :
- Aucun travail de résolution de la dette technologique n'est prévu - Les livrables sont vagues; les dates de début/fin ne sont pas claires |
| Dans vos enregistrements de décision :
- Les indicateurs de performance clés pour l'assainissement de la dette avant ou après la technologie sont clairement documentés - Les discussions de compromis pour l'action et l'inaction se concentrent sur les coûts ou les avantages de l'entreprise |
Dans vos enregistrements de décision :
- L'assainissement de la dette technologique n'a aucun indicateur de performance clé mesurable - La dette technologique est considérée en termes techniques ou informatiques, sans pertinence pour l'entreprise |
|
| Dans votre organisation :
- Aucune technologie non prise en charge ou héritée n'est active, notamment : -- Tous les utilisateurs travaillent dans Lightning Experience -- pas ou très peu d'utilisations de @future dans Apex (Queueable est utilisé)
-- Tous les Apex tiers appartiennent à des packages AppExchange -- aucune règle de workflow active (flux utilisé) -- aucun processus Générateur de processus actif (flux utilisé) -- Événements PushTopic (capture des données modifiées utilisée) -- Événements génériques (les événements de plate-forme sont utilisés) -- versions d'API antérieures à 30.0 -- Les connexions d'organisation Salesforce utilisent l'adaptateur inter-organisations pour Salesforce Connect |
Dans votre organisation :
- Une technologie non prise en charge ou héritée est active, notamment : -- Utilisateurs travaillant dans Salesforce Classic -- @future use in Apex
-- Apex tiers provenant de sources non AppExchange -- Règles de workflow -- Processus du Générateur de processus -- Événements PushTopic -- Événements génériques -- versions d'API antérieures à 30.0 -- Connexions Salesforce à Salesforce |
| Modèles | Anti-Patterns | |
|---|---|---|
| Normes de conception | Dans votre organisation :
- Les personnalisations de code et déclaratives ont des noms cohérents et lisibles par l'utilisateur - Les modèles de données ont des noms cohérents et uniformes pour les objets et les champs - Les audits montrent que les champs sont systématiquement remplis et référencés dans les rapports, etc. |
Dans votre organisation :
- Les personnalisations de code et déclaratives n'ont pas de noms cohérents - Les modèles de données ont des noms incohérents et de nombreux objets et champs semblent redondants - Les audits montrent de nombreux champs inutilisés ou divers niveaux d'utilisation, et il n'y a pas de lien cohérent avec les rapports, etc. |
| Au sein de votre entreprise :
- Les équipes savent quels outils utiliser (et ne pas utiliser) pour réaliser le travail - Les modèles de conception approuvés sont faciles à trouver et à identifier par cas d'utilisation - Les modèles IA approuvés sont clairement identifiés et incluent une finalité |
Au sein de votre entreprise :
- Les équipes utilisent de nombreux outils différents pour réaliser un travail similaire - Il n'y a pas de modèles de conception approuvés - Il faut beaucoup de temps aux fournisseurs ou aux nouveaux employés pour intégrer - Les modèles IA approuvés ne sont pas clairement identifiés et leur objet n'est pas clair |
|
| Documentation | Dans votre organisation :
- Les personnalisations de code et déclaratives ont des descriptions claires |
Dans votre organisation :
- Les personnalisations de code et déclaratives n'ont pas de description, ont des descriptions difficiles à comprendre ou ont des descriptions qui ne semblent pas correspondre à ce que la personnalisation fait réellement |
| Au sein de votre entreprise :
- Des diagrammes des capacités métiers et des détails d'implémentation technique existent pour toutes les solutions - Clé qui/quand/quels journaux d'information existent pour les personnalisations de code et déclaratives - Les gens peuvent rechercher et trouver la documentation pertinente |
Au sein de votre entreprise :
- Le quoi/comment/pourquoi des solutions est difficile à trouver et peut ne pas être disponible pour la plupart des équipes - Les gens peinent à comprendre les solutions et le système avec lequel ils travaillent - Il faut beaucoup de temps aux fournisseurs ou aux nouveaux employés pour intégrer |
| Outil | Description | Stratégie | Maintenabilité | Lisibilité |
|---|---|---|---|---|
| ApexDoc | Document Apex avec des pages HTML statiques | X | X | |
| Supprimer en masse les valeurs de liste de sélection inactives | Supprimer les valeurs inactives inutilisées des listes de sélection | X | ||
| Validateur Lightning Design System | Valider le balisage et voir comment améliorer votre code | X | X | |
| Migrer vers flux | Conversion des règles de workflow et des processus du Générateur de processus en flux | X | ||
| Outil de gestion de projet par Salesforce Labs | Gérer les projets dans votre organisation Salesforce | X | X | |
| Extensions Salesforce pour Visual Studio Code (Agrandi) | Analyse efficace du code Salesforce avec les extensions de code Visual Studio | X | X | |
| Vérification de l'organisation | Analyse rapide de votre organisation et de sa dette technique | X | ||
| Salesforce Code Analyzer | Scannez le code via IDE, CLI ou CI/CD pour vous assurer qu'il respecte les meilleures pratiques | X | X | |
| Explorateur de feuille de route Salesforce | Exploration des innovations produits Salesforce | X | ||
| Piste d'audit de configuration | Suivre les modifications de configuration et l'historique d'audit | X | X |
| Ressource | Description | Stratégie | Maintenabilité | Lisibilité |
|---|---|---|---|---|
| 5 stratégies de documentation pour améliorer votre organisation Salesforce | Amélioration de la documentation d'implémentation de Salesforce | X | ||
| Choisir des conventions de nommage (Trailhead) | Apprenez à appliquer des conventions de nommage | X | ||
| Définition, identification et mesure de la dette technique | Définir, identifier et mesurer la dette technique | X | X | |
| Modèle Design Standards | Créer des normes de conception pour votre organisation | X | X | X |
| Premiers pas avec les diagrammes Salesforce | Apprenez à créer le diagramme adapté à votre cas d'utilisation | X | ||
| Premiers pas avec les conventions de codage (Trailhead) | Définir et suivre des conventions de codage | X | ||
| Comment lutter contre la dette technique (Trailhead) | Gérer la dette technique dans votre organisation Salesforce | X | X | |
| Améliorez votre code Apex (Trailhead) | Appliquer les principes de base du développement piloté par les essais | X | ||
| Organizational Alignement (Trailhead) | Découvrez le processus V2MOM pour l'alignement | X | ||
| Priorité et planification d'une sortie de la dette technique | Former un plan de réduction et de suppression de la dette technique | X | X | |
| Modèle Conventions de nommage Salesforce | Premiers pas avec les conventions de nommage | X | X | |
| Dette technique : Qu'est-ce que c'est et pourquoi devriez-vous vous soucier? | Comprendre l'impact de la dette technique dans votre organisation | X | ||
| Utilisation de la zone de dessin Business Model dans l'architecture d'entreprise | Créer, livrer et afficher de la valeur dans un modèle commercial | X |
| Organisation test | Developer Sandbox | Sandbox Developer Pro | Sandbox Partial Copy | Sandbox Full | |
|---|---|---|---|---|---|
| Prend en charge la forme organisationnelle | Oui | Non | Non | Non | Non |
| Prend en charge le suivi source | Oui | Oui | Oui | Non | Non |
| Durée de vie | 1 à 30 jours | Contrôlé manuellement | Contrôlé manuellement | Contrôlé manuellement | Contrôlé manuellement |
| Intervalle d'actualisation | Non disponible | 1 jour | 1 jour | 5 jours | 29 jours |
| Prise en charge de l'aperçu de la version | Développeur contrôlé | Basé sur une instance sandbox | Basé sur une instance sandbox | Basé sur une instance sandbox | Basé sur une instance sandbox |
| Temps de provisionnement | > 5 minutes | Heures ou jours | Heures ou jours | Heures ou jours | Heures ou jours |
| Métadonnées déterminées par | Contrôle de la source | Production | Production | Production | Production |
| Données déterminées par | Chargement manuel des données | Chargement manuel des données | Chargement manuel des données | Modèle sandbox | Production |
| Limite en données | 200 MO | 200 MO | 1 GB | 5 GO | Identique à la production |
| Tâche | Forme de l'organisation | Suivi de la source | Actualisations fréquentes | Prise en charge de l'aperçu de la version | Toutes les métadonnées de production | Métadonnées partielles de production | Jeux de données volumineux de production | Jeux de données partiels de production | Environnements compatibles |
|---|---|---|---|---|---|---|---|---|---|
| Prototypage | X | X | X | X | X | X | X | Organisations tests, organisations sandbox Developer et Developer Pro | |
| Enquêtes sur les nouvelles fonctionnalités ou développement de preuves de concept | X | X | X | X | X | X | X | Organisations tests, organisations sandbox Developer et Developer Pro | |
| Test d'acceptation utilisateur | X | X | X | X | X | X | sandbox Developer, Developer Pro et Partial Copy | ||
| Essais de performance et d'échelle | X | X | X | Sandbox Full | |||||
| Formation utilisateur | X | X | X | X | X* | X | Developer Pro, Partial Copy et * sandbox Full | ||
| *Si nécessaire pour réaliser un type de travail spécifique, sinon utilisez un environnement moins gourmand en ressources | |||||||||
| Modèles | Anti-Patterns | |
|---|---|---|
| Gestion des versions | En production :
- Les métadonnées montrent l'utilisation de mécanismes de publication stables, tels que : -- Organisation des métadonnées dans des packages déverrouillés -- DevOps Center étant actif et installé -- Déploiements via l'API de métadonnées en utilisant le format source - Les journaux de déploiement n'affichent aucun déploiement échoué dans l'historique disponible. - L'historique de déploiement affiche des cadences de publication claires et des clusters de déploiement assez uniformes dans les fenêtres de publication. |
En production :
- Les métadonnées indiquent l'utilisation de mécanismes de publication basés sur l'organisation, tels que : -- Utilisation active d'ensembles de modifications -- Les déploiements via l'API de métadonnées utilisent le format package.xml - Les journaux de déploiement affichent les cas répétés d'échec de déploiement dans l'historique disponible. - Les déploiements n'ont pas de cadence perceptible ou montrent des clusters de déploiements inégaux, qui sont des signes de correctifs et de restaurations ad hoc). - DevOps Center n'est pas activé et installé. |
| Dans votre feuille de route et votre documentation :
Les noms de version sont clairs. - Les fonctionnalités sont clairement liées à une version spécifique nommée. - Les noms de version peuvent être recherchés et découverts. - Les équipes peuvent trouver et suivre des consignes claires pour baliser les artefacts, les éléments de développement et d'autres travaux avec les noms de version corrects. - Il est possible d'extraire une vue claire d'un manifeste de version par un nom de version. - Des seuils de qualité pour les applications IA génératives sont définis pour différentes étapes de développement. |
Dans votre feuille de route et votre documentation :
- Les noms de version ne sont pas inclus. - Les fonctionnalités ne sont pas clairement liées à une version spécifique. - Les noms de version sont utilisés de façon ad hoc ou n'existent pas. - Les équipes désignent les artefacts, les éléments de développement et d'autres travaux de différentes façons. - Il n'est pas possible d'obtenir une vue claire d'un manifeste de version en utilisant un nom de version. - Les seuils de qualité des applications d'IA générative ne sont pas définis ou, s'ils sont définis, ne le sont pas pour différentes étapes de développement. | |
| Stratégie environnementale | Dans vos organisations :
- Un modèle de développement et de publication piloté par la source est adopté. - Le suivi de la source est activé pour les sandbox Developer et Developer Pro. - Les métadonnées dans un environnement donné sont indépendantes des artefacts de publication. - Les environnements ne correspondent pas directement à un chemin de publication. - Les parcours de publication d'une modification dépendent du type de modification (risque élevé, risque moyen ou risque faible). Les environnements surpeuplés n'existent pas. - Les changements de configuration risqués ne sont jamais effectués directement en production. - Aucune publication n'a lieu pendant les heures ouvrables de pointe. - Les sandbox Data 360 sont utilisées pour tester correctement les cas d'utilisation agentiques qui nécessitent la Bibliothèque de données Einstein, des articles Knowledge, et des données non structurées |
Dans vos organisations :
- Un modèle de développement et de version basé sur l'organisation est adopté. - Le suivi de la source n'est pas activé pour les sandbox Developer et Developer Pro. - Les métadonnées dans un environnement donné sont un artefact de version. - Les environnements correspondent directement à un parcours de publication. - Le chemin de publication de chaque modification est le même, quel que soit le type de modification. - Des environnements surpeuplés existent. - Les changements de configuration risqués sont effectués directement en production. - Les sorties ont lieu pendant les heures ouvrables de pointe. - Les agents Agentforce qui nécessitent la Bibliothèque de données Einstein, les articles Knowledge et les données non structurées ne sont pas testés en utilisant des sandbox Data 360 |
| Stratégie de signalisation | Dans vos organisations :
- Les équipes collaborent sur la définition et la normalisation des API de contrôle d'intégrité et des SLO. - L'examen et le perfectionnement réguliers des stratégies de signalisation font partie des examens post mortem et de préparation opérationnelle. En production : - Des contrôles sanitaires sont mis en place pour toutes les applications. - Les applications fournissent des signaux explicites sur leur état de santé, tels que leur charge et leurs capacités. - Les applications sont conçues pour se dégrader gracieusement lorsque les dépendances sont malsaines. - Le délestage est utilisé pour éviter les pannes en cascade. Dans votre conception : - Les mécanismes de contre-pression et de délestage évitent que les services soient submergés par le trafic. On suppose que les dépendances finissent par échouer. Les gestionnaires de signal sont conçus pour améliorer les pannes. |
Dans vos organisations :
- Les équipes fonctionnent en vase clos, créant des mécanismes de signalisation sanitaire incohérents et incompatibles. - Les stratégies de signalisation sont une réflexion a posteriori, qui ne s'applique qu'en cas d'incident. En production : - Les composants tombent en panne silencieusement sans indiquer leur état de santé. - Les applications réessayent indéfiniment les demandes de services insalubres. - Toutes les demandes sont traitées avec la même priorité, quelle que soit leur importance. - Pour identifier les problèmes, les opérateurs s'appuient uniquement sur des mesures réactives, telles que des plaintes d'utilisateurs ou des défaillances critiques du système. Dans votre conception : - Il est supposé que toutes les dépendances seront toujours disponibles, et les partitions réseau, les pics de latence ou d'autres problèmes courants ne sont pas pris en compte. - Les applications acceptent toutes les requêtes entrantes, même lorsqu'elles sont surchargées, ce qui augmente la latence et la probabilité d'échec |
| Stratégie de test | Dans votre entreprise :
- Les tests d'utilisation emploient une variété d'appareils et de technologies d'assistance. - Les simulateurs sont utilisés pour répliquer des conditions de production pour des tests d'évolutivité et de performance. - Les tests sont automatisés pour être exécutés lorsque des modifications entrent dans le contrôle de la source. - Les tests d'endurance, de stress, de performance et d'échelle sont exécutés à plusieurs intervalles dans le cycle de développement de l'application et considérés comme des tâches en cours. - Vous incluez le test à l'échelle dans votre processus d'assurance qualité lorsque vous avez des applications à l'échelle B2C, des volumes d'utilisateurs importants ou des volumes de données importants. - Vos tests à l'échelle sont axés sur les aspects prioritaires du système. - Vos tests à l'échelle ont des critères bien définis. - Vous effectuez des tests d'échelle dans une Sandbox Full . - L'ingénierie des invites inclut un contrôle de qualité par un humain. - Centre de test Agentforce est utilisé pour les tests robustes des agents. |
Dans votre entreprise :
- Les tests d'utilisation ne sont pas effectués, ou s'ils sont effectués sur un ensemble limité d'appareils. - Les volumes de requêtes utilisateur, le trafic d'API et les variations de vitesse réseau de type production ne sont pas testés. L'automatisation des tests n'est pas en place. - L'endurance, le stress, les performances, les tests à l'échelle sont considérés comme une phase ou une étape de développement. - Vous n'effectuez pas de tests à l'échelle dans le cadre de votre processus d'assurance qualité, et vous avez des applications à l'échelle B2C, de grands volumes d'utilisateurs ou des volumes de données importants. Vos tests à l'échelle ne sont pas prioritaires. - Vos tests à l'échelle n'ont pas de critères bien définis. - Vous effectuez des tests à l'échelle dans une organisation sandbox Partial Copy ou Developer Sandbox. - L'ingénierie des invites n'inclut pas l'examen de la qualité par un humain. - Les agents Agentforce ne sont pas testés, ou s'ils le sont, testés uniquement de façon ponctuelle en utilisant Agent Builder. |
| Dans votre organisation :
- Toutes les données de test sont nettoyées des données confidentielles et d'identification. |
Dans votre organisation :
- Les données de test sont identiques aux données de production. | |
| Dans Apex :
- Les modèles d'usine de données sont utilisés pour des tests unitaires - Des simulacres et des stubs sont utilisés pour simuler des réponses d'API. |
Dans Apex :
- Les tests unitaires s'appuient sur les données de l'organisation. Les faux et les talons ne sont pas utilisés. | |
| Dans vos normes de conception et votre documentation :
- Les environnements sont classés par les types de tests qu'ils peuvent prendre en charge. - Les régimes de test appropriés sont spécifiés en fonction du risque, du cas d'utilisation ou de la complexité. |
Dans vos normes de conception et votre documentation :
- Les types de test pris en charge par chaque environnement ne sont pas clairs. - Les régimes de test ne sont pas classés par risque, cas d'utilisation ou complexité. |
| Type d'incident | Déclencheur apparent | Tactiques de récupération |
|---|---|---|
| Panne système | Connexions corrompues ou problèmes d'accès au compte | Une stratégie de récupération de compte |
| Indisponibilité du service | Activation d'un service de sauvegarde redondant, contournements manuels | |
| Bogue de production | Un changement récent | Déploiement annulé ou déploiement de la version précédente |
| Un bogue émergent, inexpliqué | contournements manuels, désactivation des fonctionnalités non essentielles, escalade vers les PME |
| Modèles | Anti-Patterns | |
|---|---|---|
| Temps de récupération | Dans votre entreprise :
- Les protocoles de récupération sont pratiqués à intervalles réguliers. - Les équipes connaissent les services en production qui leur appartiennent et dont elles sont responsables. - Les équipes comprennent les outils pertinents pour appuyer le diagnostic des problèmes. |
Dans votre entreprise :
- Les protocoles de récupération n'existent pas ou ne sont pas pratiqués à intervalles réguliers. -Les équipes propriétaires et responsables des différents services en production ne sont pas claires. - Les équipes n'ont aucune directive ni norme sur l'outillage pour appuyer le diagnostic des problèmes. |
| Dans votre documentation :
- Les tactiques de récupération sont définies et classées par type d'incident et déclencheur. - Les critères de sortie pour les réponses aux incidents sont inclus dans les SLO et sont clairs. - Les critères d'activation et la logique d'attribution des autorisations élevées pendant les incidents sont clairs. - Les ensembles d'autorisations et les autorisations de réponse à un incident sont clairement répertoriés. - Il existe un guide de dépannage pour faciliter l'identification et le diagnostic des problèmes courants. |
Dans votre documentation :
- La réponse à l'incident est effectuée au cas par cas. - Les critères de sortie des réponses aux incidents n'existent pas. - Les autorisations élevées ne sont pas attribuées ou, si elles le sont, sont attribuées de façon ad hoc. - Les ensembles d'autorisations et les autorisations de réponse à un incident ne sont pas répertoriés. |
|
| Dans votre organisation :
- Des ensembles d'autorisations basés sur la session existent pour la réponse à un incident et peuvent être attribués au personnel de support pendant la récupération. - Le Journal d'audit de configuration indique que les testeurs de récupération désignés se sont connectés à l'environnement de test à l'heure convenue et ont suivi les scripts de test de récupération. |
Dans votre organisation :
- Les ensembles d'autorisations basés sur la session n'existent pas pour la réponse à un incident, ou s'ils existent, le personnel de support n'est pas autorisé à les utiliser. - Le Journal d'audit de configuration indique que les testeurs de récupération désignés ne se sont pas connectés à l'environnement de test ou n'ont pas suivi les scripts de test de récupération | |
| Dans vos plans de test :
- Des scripts de test de récupération existent et sont répétitifs. - Les environnements pour les simulations d'incident sont clairement répertoriés. |
Dans vos plans de test :
- Les scripts de test de récupération n'existent pas. - Les environnements pour les simulations d'incident ne sont pas établis. |
|
| Capacité de tri | Dans votre entreprise :
- les PME ou les intervenants qui devraient être alertés pour appuyer des questions complexes sont identifiés avant qu'un incident ne se produise. - La transmission entre les équipes de livraison et de support fait partie de la mise en ligne. - S'ils sont consultés, les architectes Salesforce répondent rapidement et aident l'équipe à se concentrer sur la récupération. |
Dans votre entreprise :
- Les PME ou les parties prenantes qui doivent être alertées ne sont identifiées qu'après un incident. -Le transfert entre les équipes de livraison et les équipes de support ne fait pas partie du processus de publication. - Les architectes Salesforce considèrent que la réponse aux incidents ne relève pas de leur champ d'activité. |
| Dans votre documentation :
- Les modèles de système et de conception utilisés dans une solution donnée peuvent être découverts et lus par le personnel de support. |
Dans votre documentation :
- Les modèles de système et de conception utilisés dans une solution donnée ne sont pas facilement disponibles pour le personnel de support. |
|
| Dans votre organisation :
- La consignation et les messages d'erreur personnalisés sont incorporés dans les chemins d'exécution à travers le système. |
Dans votre organisation : - La consignation et les messages d'erreur personnalisés ne sont pas utilisés. | |
| Surveillance et alerte | Dans votre organisation :
- Les alertes sont utilisées uniquement pour informer les utilisateurs des scénarios qui nécessitent une intervention humaine; les autres échecs sont consignés et signalés. - Des alertes sont envoyées aux utilisateurs capables d'y répondre. - Dans la mesure du possible, des alertes sont délivrées avant une défaillance potentielle. |
Dans votre organisation :
- Des alertes sont envoyées lorsque n'importe quel type d'échec se produit, que des actions de suivi soient nécessaires ou non. - Des alertes sur les problèmes nécessitant des solutions techniques sont transmises aux utilisateurs professionnels. - Les alertes sont envoyées uniquement en réponse à des échecs déjà rencontrés. |
| Dans votre documentation :
- Les critères d'entrée pour les alertes d'ajustement d'invites sont définis en fonction des métriques de commentaires directs et indirects sur l'IA générative. |
Dans votre documentation :
- Aucun critère n'est défini pour déclencher des alertes d'ajustement d'invite pour les applications d'IA générative. |
| Modèles | Anti-Patterns | Continuité des affaires | Dans votre entreprise :
- Un état d'esprit « récupération d'abord » est adopté, l'accent étant mis sur l'élimination le plus tôt possible de l'impact des fonctions et capacités commerciales prioritaires. - Il y a un calendrier de maintenance pour l'examen des plans de test de PCA. |
Dans votre entreprise :
- Une mentalité « corriger le problème » est la seule approche de la gestion des incidents. - Les plans de test BCP ne sont pas actualisés à intervalles réguliers. |
|---|---|---|
| Dans votre documentation :
- Un PCA contient des étapes de traitement ou de tri des données si Salesforce n'est plus disponible, une liste d'événements qui déclenchent l'utilisation du PCA, ainsi que des étapes et des intervalles pour les tests du PCA. - Le PCA comprend les systèmes et les dépendances en amont et en aval. |
Dans votre documentation :
- Un PCA n'existe pas, n'est pas complet ou inclut uniquement Salesforce. |
|
| Dans vos plans de test :
- Les domaines de votre PCA liés aux processus et aux personnes sont pris en compte. |
Dans vos plans de test :
- Les zones de votre PCA associées aux processus et aux personnes ne sont pas prises en compte. | |
| Continuité technologique | Dans votre entreprise :
- Vous avez évalué si vous devez élaborer des systèmes de redondance intentionnelle ou de basculement - Les tactiques de reprise après incident sont automatisées dans la mesure du possible. |
Dans votre entreprise :
- Vous n'avez pas évalué la nécessité d'une redondance intentionnelle ou de systèmes de basculement - Les tactiques de reprise après incident sont toutes manuelles. |
| Dans votre documentation :
- Le PCA tient compte des ressources supplémentaires ou des procédures de bris de verre dont les équipes pourraient avoir besoin pour réagir efficacement aux incidents. |
Dans votre documentation :
- Le PCA n'inclut pas les besoins de soutien opérationnel. |
|
| Sauvegarde et restauration | Dans votre documentation :
- Une stratégie de sauvegarde et de restauration existe pour les données et les métadonnées. |
Dans votre documentation :
- Une stratégie de sauvegarde et de restauration n'existe pas, ou si elle existe, est incomplète, s'appliquant uniquement aux données ou uniquement aux métadonnées, pas aux deux. |
| Dans votre entreprise :
- Les sauvegardes sont stockées à un emplacement sécurisé auquel seuls les utilisateurs autorisés ont accès. - Les plans de test et les journaux de test montrent que les restaurations de données sont testées dans une sandbox Full ou Partial Copy au moins deux fois par an. |
Dans votre entreprise :
Les sauvegardes ne sont pas lisibles. - Les sauvegardes sont stockées à des emplacements auxquels les utilisateurs professionnels non autorisés peuvent accéder. - Il n'y a pas de processus de restauration des données ou le processus de restauration des données n'est pas testé. |
| Outil | Description | Gestion du cycle de vie des applications | Réponse à l'incident | Planification de la continuité |
|---|---|---|---|---|
| Apex Hammer Tests | Découvrez les tests Apex Salesforce dans les versions actuelles et nouvelles. | X | ||
| API Apex Stub | Élaborez une infrastructure fictive pour rationaliser les tests. | X | ||
| Sauvegarde et récupération | Générez automatiquement des sauvegardes pour éviter la perte de données. | X | ||
| Gros objets | Stockez et gérez des volumes de données importants sur la plate-forme. | X | ||
| Suivi de l'historique des champs | Suivez et affichez l'historique des champs. | X | ||
| Recueil de connaissances sur l'adoption et la sécurité pour votre organisationOuvrir le lien dans une nouvelle fenêtre | Surveillez l'adoption et l'utilisation de Lightning Experience dans votre organisation. | X | ||
| Gérer les tâches de chargement de données en masse | Créez une mise à jour ou supprimez des volumes importants d'enregistrements avec l'API de transfert en masse. | X | ||
| Gérer les événements de Surveillance des événements en temps réel | Gérez les paramètres de streaming et de stockage de la surveillance des événements. | X | ||
| Ressources de données et de stockage | Visualisez les limites en stockage et l'utilisation de votre organisation Salesforce. | X | ||
| Surveiller les journaux de débogage | Surveillez les journaux et définissez des indicateurs pour déclencher la consignation. | X | ||
| Surveillance de l'activité de connexion avec Login Forensics | Identifiez le comportement qui peut indiquer une fraude d'identité. | X | ||
| Surveillance des modifications de configuration avec le Journal d'audit de configuration | Suivez les récentes modifications apportées à la configuration par les administrateurs. | X | ||
| Surveiller l'historique de formation | Visualisez les cours de formation Salesforce que vos utilisateurs ont suivis. | X | ||
| Surveillance des tâches en arrière-plan | Surveillez les tâches en arrière-plan dans votre organisation. | X | ||
| Surveillance des tâches planifiées | Visualisez les instantanés de rapport, les tâches Apex planifiées et les actualisations de tableau de bord. | X | ||
| Test de l'évolutivité | Testez les performances du système et interprétez les résultats. | X | ||
| Proactive Monitoring | Limitez les interruptions en utilisant les services de surveillance de Salesforce. | X | ||
| Salesforce Data Mask | Masquez automatiquement les données dans une organisation sandbox. | X | ||
| La page Vue d'ensemble du système | Visualisez les données d'utilisation et les limites de votre organisation. | X | ||
| Utiliser force:lightning:lint | Analysez et validez le code via la Salesforce CLI. | X |
| Ressource | Description | Gestion du cycle de vie des applications | Réponse à l'incident | Planification de la continuité |
|---|---|---|---|---|
| 7 anti-modèles dans les tests de performance et d'échelle | Évitez les anti-modèles courants dans les tests de performance et d'échelle. | X | ||
| Analyse des performances et des points chauds d'échelle dans les applications Salesforce complexes | Découvrez une approche pour résoudre les problèmes de performance et d'évolutivité dans votre organisation. | X | ||
| Élaboration d ' un plan de reprise après sinistre (Trailhead) | Élaborez un plan de reprise après sinistre. | X | ||
| La continuité des affaires est plus qu’une sauvegarde et une restauration | Observez une vue complète de la PCA. | X | ||
| Modèle Design Standards | Créez des normes de conception pour votre organisation. | X | ||
| Outils de diagnostic et de surveillance dans Salesforce | Apprenez à améliorer la qualité et les performances de vos implémentations. | X | ||
| Principes directeurs de la planification de la continuité des activités | Examinez les principes de base qui sous-tendent une PCA efficace. | X | ||
| Comment Test de l'évolutivité dans Salesforce | Découvrez les cinq phases du cycle de vie des tests à l'échelle. | X | ||
| Introduction aux tests de performance | Apprenez à développer une méthode de test des performances. | X | ||
| Surveiller votre organisation | Découvrez les options de surveillance en libre-service. | X | ||
| Modèle de stratégie de test | Créez et personnalisez des plans de test d'échelle et de performance. | X | ||
| Modèle de stratégie de test | Assurez-vous que votre stratégie de test est terminée. | X | ||
| Compréhension du développement piloté par la source (Trailhead) | Découvrez le développement de packages et les organisations tests. | X |
| Modèles | Anti-Patterns | |
|---|---|---|
| Authentification | Dans vos normes de conception et votre documentation :
- Les personnes de sécurité approuvées sont clairement définies et répertoriées - Le mappage entre les personnes de sécurité et les schémas d'authentification autorisés (interface utilisateur, API) existent dans une matrice de sécurité |
Si des normes de conception et des documents existent, ils :
- Ne pas inclure les personnes de sécurité - Ne pas inclure une matrice de sécurité avec des mappages clairs pour les personnes de sécurité et les schémas d'authentification autorisés |
| Dans votre organisation :
- Configurations de connexion alignées sur le contrôle Salesforce MFA - La relation entre les utilisateurs et les entités qui se connectent à Salesforce est de 1:1 (aucun utilisateur partagé) - Le Contrôle d'accès API empêche les utilisateurs de s'authentifier via une application connectée non autorisée - Si l'authentification unique est activée, les utilisateurs administrateurs approuvés ont un accès direct à la connexion |
Dans votre organisation :
- Les configurations de connexion ne sont pas alignées avec le contrôle Salesforce MFA - La relation entre les utilisateurs et les entités qui se connectent à Salesforce n'est pas 1:1 (il existe des comptes utilisateur partagés) - Si les utilisateurs accèdent à Salesforce depuis un pare-feu, le pare-feu utilise des adresses IP codées en dur pour sécuriser les communications vers/depuis Salesforce - Contrôle d'accès API n'est pas activé - Si l'authentification unique est activée, aucun utilisateur administrateur approuvé n'a un accès direct à la connexion |
|
| Dans LWC, Apex, Aura :
- Les méthodes qui exécutent l'authentification utilisent des identifiants nommés pour gérer les flux nom d'utilisateur/mot de passe - Aucun nom d'utilisateur ou mot de passe n'est affiché dans le code sous des formats lisibles (pas de valeurs ou de chaînes codées en dur) - Si des flux de connexion personnalisés existent, tous les codes personnalisés associés utilisent les méthodes SessionManagement appropriées |
Dans LWC, Apex, Aura :
- L'authentification est gérée ad hoc - Noms d'utilisateur et mots de passe affichés dans le code |
|
| Autorization | Dans vos normes de conception et votre documentation :
- Chaque utilisateur et système ayant accès à Salesforce est mappé avec une ou plusieurs personnes dans une matrice de sécurité - La matrice de sécurité répertorie clairement les autorisations de métadonnées et les personnes utilisateur attribuées - Les cas d'utilisation pour accorder des privilèges élevés sont clairement énumérés, notamment : -- Autorisations Modifier toutes les données -- Autorisations Afficher toutes les données |
Si des normes de conception et des documents existent, ils :
- Ne pas inclure de matrice de sécurité - Ne pas répertorier clairement les autorisations - Ne pas énumérer clairement les cas d'utilisation pour accorder des privilèges élevés |
| Dans votre organisation :
- Des ensembles d'autorisations et des groupes d'ensembles d'autorisations sont utilisés pour contrôler l'accès aux métadonnées - Les ensembles d'autorisations et les groupes d'ensembles d'autorisations s'alignent sur les capacités métiers - Les autorisations attribuées aux utilisateurs suivent les définitions de matrice de sécurité - Les profils sont utilisés de façon minimale et uniquement pour contrôler les plages IP de connexion et les heures de connexion - Un utilisateur d'intégration API-only unique est configuré pour chaque intégration |
Dans votre organisation :
- Les groupes d'ensembles d'autorisations ne sont pas configurés pour autoriser l'accès en fonction des capacités métiers - Les ensembles d'autorisations sont configurés ad hoc - Les ensembles d'autorisations sont redondants ou fortement dupliqués; il est difficile de comprendre une logique fonctionnelle claire et les différences entre les ensembles - Les autorisations attribuées aux utilisateurs ne suivent pas les définitions de matrice de sécurité - Les profils contiennent des contrôles d'accès pour les métadonnées - Les utilisateurs d'API uniquement ne sont pas configurés ou sont partagés entre plusieurs intégrations |
|
| Dans Apex :
- Les opérations de base de données effectuent les contrôles d'accès appropriés au niveau du champ et de l'objet, notamment : -- Les instructions DML et Database DML déclarent le mode utilisateur ou système pour les opérations de données ET/OU -- Les instructions DML et Database DML utilisent des méthodes stripInaccessible avant les opérations sur les données
-- Les instructions SOQL et SOSL utilisent les mots-clés WITH USER_MODE et WITH SYSTEM_MODE AND/OR
-- Des méthodes stripInaccessible sont utilisées pour filtrer les résultats de requêtes et de sous-requêtes
-- Les méthodes de résultat describe sObject (c.-à-d. isAccessible, isCreateable, isUpdateable et/ou isDeletable) sont utilisées avec précaution |
Dans Apex :
- DML, méthodes Database Class, SOQL et SOSL exécutés en mode système par défaut - Les opérations de base de données n'effectuent pas les contrôles d'accès appropriés, notamment : -- Les méthodes DML ou Database Class utilisent exclusivement les contrôles isAccessible, isCreateable, isUpdateable et/ou isDeletable pour l'accès sObject et au niveau du champ
-- Les requêtes SOQL utilisent exclusivement des mots-clés WITH SECURITY_ENFORCED pour les restrictions d'accès |
|
| Dans les flux (Considérations de sécurité pour la conception de flux):
- Les flux utilisent le Contexte d'exécution le plus restrictif possible, idéalement Mode utilisateur - L'accès aux données confidentielles ou privilégiées de sécurité est effectué par des flux secondaires afin de minimiser le contexte d'exécution - Logique de limitation exécutée dans des flux déclenchés par un enregistrement - Les entrées de flux sont validées pour garantir que seules les charges utiles autorisées sont transmises en entrée |
Dans des flux :
- Les flux sont exécutés en mode système ou en mode système sans partage, quelles que soient les actions exécutées par le flux - Toute la logique de flux est exécutée dans un flux unique et volumineux - Les entrées de flux ne sont pas validées et sont transmises aux consommateurs sans vérification |
| Modèles | Anti-Patterns | |
|---|---|---|
| Gestion des sessions | Dans vos normes de conception et votre documentation :
- Les personnes de sécurité répertorient clairement les types de session approuvés et les paramètres d'expiration/durée pour chaque personne - Les heures de connexion ont été spécifiées (ou identifiées comme inutiles) - Les opérations qui nécessitent une sécurité ou des autorisations au niveau de la session élevées sont claires et accessibles - Les stratégies de gestion de l'étendue et des jetons de l'application connectée sont claires et accessibles |
Dans vos normes de conception et votre documentation :
- Les personnes de sécurité n'existent pas ou manquent d'informations sur les types de session et les paramètres d'expiration/durée - Les stratégies de sécurité ne contiennent pas d'informations sur les étendues d'application connectée ou la gestion des jetons |
| Dans votre organisation :
- Les audits de session montrent que les utilisateurs accèdent à Salesforce uniquement via les types de session attendus - Il existe un ensemble d'autorisations clair et actif pour l'accès « Utilisateur API uniquement » (avec l'ensemble d'autorisations « API uniquement » défini sur TRUE) et tous les utilisateurs d'intégration et automatisés sont attribués - Si les utilisateurs accèdent à Salesforce depuis un pare-feu, le pare-feu utilise une liste d'autorisations de domaines requis au lieu d'adresses IP pour sécuriser les communications vers/depuis Salesforce - Les intervalles d'expiration de session inactifs ne dépassent pas le délai par défaut (2 heures) - Tous les paramètres suivants sont activés : -- Protection contre le détournement de clic pour les pages de configuration -- Protection contre le détournement de clics pour les pages Salesforce hors Configuration -- Protection contre la falsification de requête inter-site (CSRF) -- Protection contre les scripts inter-site (XSS) -- Activer la protection contre le reniflage de contenus -- Protection des URL de référent -- Avertir les utilisateurs avant qu'ils soient redirigés hors de Salesforce |
Dans votre organisation :
- Il n'y a pas d'audit de session régulière - Il n'y a pas de définition des types de session que les utilisateurs doivent avoir - Les autorisations « API uniquement » ne sont pas claires ou sont manquantes dans l'intégration et les utilisateurs automatisés - Si les utilisateurs accèdent à Salesforce depuis un pare-feu, le pare-feu utilise des adresses IP codées en dur pour sécuriser les communications vers/depuis Salesforce - Les intervalles d'expiration de session inactifs dépassent le délai par défaut (2 heures) - L'un des paramètres suivants est désactivé : -- Protection contre le détournement de clic pour les pages de configuration -- Protection contre le détournement de clics pour les pages Salesforce hors Configuration -- Protection contre la falsification de requête inter-site (CSRF) -- Protection contre les scripts inter-site (XSS) -- Activer la protection contre le reniflage de contenus -- Protection des URL de référent -- Avertir les utilisateurs avant qu'ils soient redirigés hors de Salesforce |
|
| Dans LWC, Apex, Aura :
- Si des flux de connexion personnalisés existent, tous les codes personnalisés associés utilisent les méthodes SessionManagement appropriées pour attribuer la sécurité au niveau de la session |
Dans LWC, Apex, Aura :
- Si des flux de connexion personnalisés existent, il n'y a aucune logique pour attribuer la sécurité au niveau de la session |
|
| Accès à l'appareil | Dans vos normes de conception et votre documentation :
- Les stratégies de l'appareil sont claires et accessibles - Les personnes de sécurité sont clairement mappées avec les utilisations et les politiques appropriées de l'appareil |
Dans vos normes de conception et votre documentation :
- Les stratégies de sécurité n'existent pas ou ne contiennent pas d'informations sur l'accès à l'appareil |
| Dans votre organisation :
- La configuration de l'application mobile connectée Salesforce nécessite le déverrouillage par code PIN/passcode après l'inactivité - Si les besoins métiers nécessitent un contrôle strict des utilisateurs qui peuvent accéder à Salesforce Mobile, le Contrôle d'accès API est activé et des ensembles d'autorisations sont attribués à tous les utilisateurs des applications mobiles Salesforce |
Dans votre organisation :
- L'application mobile connectée Salesforce n'est pas configurée pour demander le déverrouillage du code PIN/passcode en cas d'inactivité – Les besoins métiers nécessitent un contrôle strict des utilisateurs qui peuvent accéder à Salesforce Mobile, mais le Contrôle d'accès API n'est pas activé ou des ensembles d'autorisations ne sont pas utilisés pour contrôler l'accès aux applications mobiles Salesforce |
|
| Détection et réponse aux menaces | Dans vos normes de conception et votre documentation :
- Les stratégies de sécurité contiennent une liste d'événements qui doivent déclencher une réponse avec le type de réponse approprié - Les niveaux d'audit ont été spécifiés pour tous les objets de votre modèle de données - Les étapes de révision des journaux disponibles dans Salesforce sont documentées - Toutes les réponses automatisées sont clairement documentées |
Dans vos normes de conception et votre documentation :
- Les stratégies de sécurité n'existent pas ou ne contiennent pas d'informations sur la détection des menaces et les alertes - La documentation sur les réponses automatisées n'existe pas ou n'est pas claire |
| Au sein de votre entreprise :
- Données d'audit disponibles dans les rapports que les parties prenantes peuvent comprendre et accéder - Examen régulier de l'historique et des rapports d'audit |
Au sein de votre entreprise :
- Les données d'audit sont disponibles uniquement via des fichiers journaux qui nécessitent une expertise en la matière pour accéder à et interpréter - Aucun processus n'existe pour examiner l'information de vérification |
|
| Dans votre organisation :
- Des automatisations sont en place pour répondre aux menaces en désactivant les comptes utilisateur ou en bloquant l'accès aux ressources en temps réel si une utilisation anormale est détectée - Les notifications et les alertes sont configurées pour notifier les utilisateurs appropriés des activités anormales - Le suivi Historique des champs est activé pour tous les champs contenant des données privées ou confidentielles |
Dans votre organisation :
- Aucune automatisation n'est en place pour répondre aux menaces - Les notifications et alertes ne sont pas configurées pour notifier les utilisateurs appropriés d'une activité anormale, ou certaines notifications et alertes liées à une activité anormale existent, mais elles sont ponctuelles - Le suivi Historique des champs n'est pas activé de façon cohérente pour les champs contenant des données privées ou confidentielles |
| Modèles | Anti-Patterns | |
|---|---|---|
| Partage et visibilité | Dans vos normes de conception et votre documentation :
- Une matrice de sécurité indique les données auxquelles chaque utilisateur est autorisé à accéder - Des normes d'accès aux données différentes sont utilisées pour les utilisateurs externes et les utilisateurs internes, si applicable |
Dans vos normes de conception et votre documentation :
- Les normes de conception et la documentation n'existent pas ou ne contiennent pas de matrice de sécurité - Si une matrice de sécurité existe, elle ne définit pas l'accès aux données pour les utilisateurs |
| Dans votre organisation :
- Les paramètres par défaut de l'organisation (OWD) pour les utilisateurs internes sont définis sur Accès public en lecture ou sur Privé pour les utilisateurs internes, en raison des exigences de conformité - OWDs pour utilisateurs externes est Privé - L'IA générative fonctionne uniquement en mode utilisateur, ou certaines utilisations pour l'accès système ont une justification métier claire |
Dans votre organisation :
- OWDs pour les utilisateurs internes est défini sur Privé sans justification métier ou OWDs pour les utilisateurs internes est défini sur Accès public en lecture/écriture - Les OWD pour utilisateurs externes sont définis sur autre chose que Privé sans justification métier - L'IA générative fonctionne en mode système sans justification métier |
|
| Dans Apex :
- Tous les codes accédant aux données (SOQL/SOSL) ou effectuant des opérations sur les données (méthodes DML/Database Class) utilisent avec le partage de mots-clés |
Dans Apex :
- avec partage les mots-clés sont utilisés de façon incohérente |
|
| Utilisation du cryptage | Dans vos normes de conception et votre documentation :
- Les cas d'utilisation pour le cryptage des données en transit et (si nécessaire) au repos sont clairs et découvrables - Les protocoles de cryptage approuvés sont clairement répertoriés - La documentation sur le code indique clairement où le cryptage est utilisé et quels protocoles sont utilisés |
Dans vos normes de conception et votre documentation :
- Les protocoles de cryptage approuvés ne sont pas clairs ou ne sont pas répertoriés - Le code n'est pas documenté ou la documentation n'est pas claire sur l'emplacement et la façon dont le cryptage est utilisé dans le code |
| Dans votre organisation :
- Si des risques de sécurité sont identifiés qui nécessitent une plus grande protection des données au repos, soit Hyperforce soit Salesforce Shield assurent le cryptage au repos |
Dans votre organisation :
- Les besoins métiers nécessitent une plus grande protection des données au repos, mais ni Hyperforce ni Salesforce Shield ne sont utilisés |
|
| Dans Apex :
- Si les besoins métiers nécessitent une plus grande protection des données en transit, tout le code impliqué dans l'intégration exécute une logique en utilisant des méthodes Classe Crypto pour crypter les données avant transmission ou décrypter les données dès réception |
Dans Apex :
- Les besoins métiers nécessitent une plus grande protection des données en transit, mais le code impliqué dans l'intégration exécute une logique sans cryptage des données avant la transmission ou à la réception, ou des méthodes de classe Crypto sont utilisées ad hoc |
| Outil | Description | Sécurité organisationnelle | Sécurité de la session | Sécurité des données |
|---|---|---|---|---|
| Apex Crypto Class | Crypter et décrypter les données dans Apex | X | ||
| Contrôle d'accès API | Gérer l'accès à vos API Salesforce et applications connectées | X | X | X |
| Événement d'anomalie d'API | Suivre les anomalies dans les appels d'API des utilisateurs | X | ||
| Paramètres de sécurité du navigateur | Protéger les données confidentielles et surveiller les certificats SSL | X | ||
| Authentification basée sur le certificat | Authentifier des individus avec des certificats numériques uniques | X | X | |
| Certificats et clés | Vérifier les requêtes à des sites Web externes depuis Salesforce | X | X | |
| Scanner de code | Scanner le code Apex pour détecter les failles de sécurité | X | X | |
| Applications connectées | Intégration via des API et des protocoles standard | X | X | |
| Événement de bourrage d'identifiants | Suivre les tentatives de connexion qui utilisent des identifiants utilisateur volés | X | ||
| Site de confiance CSP | Empêcher les attaques par injection de code (c.-à-d. script inter-site) | X | ||
| Flux de connexion personnalisés | Contrôler les processus métiers de connexion pour les utilisateurs | X | ||
| Identité du client | Contrôler les connexions et la vérification des sites Web et des applications | X | ||
| Data Mask | Masquer automatiquement les données confidentielles dans les organisations sandbox | X | ||
| Journaux de débogage | Suivre les événements qui se produisent dans votre organisation | X | ||
| Administration déléguée | Attribuer des privilèges administratifs limités aux utilisateurs non administrateurs | X | X | |
| Activation de l'appareil | Vérifier les connexions à partir de navigateurs, appareils ou plages IP non approuvés | X | ||
| Sécurité des transactions avancée | Intercepter les événements, surveiller et contrôler l'activité des utilisateurs | X | ||
| Accès aux champs | Contrôler l'accès aux données au niveau du champ | X | ||
| Piste d'audit des champs | Définir une stratégie pour conserver les données historiques des champs archivés | X | ||
| Suivi de l'historique des champs | Suivre et afficher l'historique des champs | X | ||
| Frontdoor.jsp | Autoriser l'accès avec un ID de session et une URL de serveur existants | X | ||
| Heroku Connect | Synchronisation bidirectionnelle entre Heroku et Salesforce | X | ||
| Heroku Shield | Élaborer des applications conformes HIPAA ou PCI | X | ||
| Sécurité de la session Assurance élevée | Demander une sécurité supplémentaire pour les opérations confidentielles | X | ||
| Identity Connect | Mapper des enregistrements utilisateur avec des comptes Active Directory | X | ||
| Historique de vérification de l'identité | Audit des tentatives de vérification de l'identité des utilisateurs | X | ||
| Licence utilisateur Integration | Accordez l'accès aux données et aux fonctionnalités uniquement via l'API. | X | X | |
| Lightning Login | Empêcher les mots de passe faibles ou oubliés et les comptes verrouillés | X | ||
| Accès à la connexion | Autoriser les utilisateurs de support à se connecter au nom d'un autre utilisateur | X | ||
| Login Forensics | Identifier le comportement qui peut indiquer une usurpation d’identité | X | ||
| Historique des connexions | Surveiller les tentatives de connexion à une organisation et à un site Experience Cloud | X | ||
| Suivi des appareils mobiles | Suivre et surveiller l'accès des appareils mobiles à votre organisation | X | ||
| Mobile SDK | Connexion à Salesforce Platform dans des applications mobiles autonomes | X | X | X |
| Surveiller les autorisations utilisateur (Shield) | Modifications de l'ensemble d'autorisations et du groupe d'ensembles d'autorisations | X | X | |
| Authentification multifacteur | Demander deux méthodes de vérification ou plus pour la connexion | X | X | |
| Authentification mutuelle | Forcer l'authentification mutuelle SSL ou TLS | |||
| Mon domaine | Configurer des pages et des stratégies de connexion, des connexions SSO et sociales | X | ||
| Identifiants nommés | Spécifier des URL de point de terminaison et des paramètres d’authentification | X | ||
| Autorisation OAuth | Autoriser l'accès à l'application cliente via un échange de jetons | X | ||
| Stratégies de mot de passe | Définir l'historique, la longueur et la complexité du mot de passe | X | ||
| Expiration de l'attribution d'ensembles d'autorisations | Définir des expirations pour les attributions d'ensembles d'autorisations et de groupes d'ensembles d'autorisations | X | X | |
| Événement d'ensemble d'autorisations | Surveiller les modifications apportées aux ensembles d'autorisations et aux groupes d'ensembles d'autorisations | X | X | |
| Groupes d'ensembles d'autorisations | Ensembles d'autorisations d'empaquetage pour prendre en charge des exigences d'accès complexes | X | ||
| Ensembles d'autorisations | Contrôler l'accès des utilisateurs aux métadonnées, aux fonctionnalités et aux applications | X | ||
| Private Connect | Intégrations sécurisées entre Salesforce et Amazon Web Services | X | ||
| Profils | Contrôler les plages IP de connexion et les heures de connexion | X | ||
| Surveillance des événements en temps réel | Surveillance et détection des événements standard dans Salesforce | X | ||
| Paramètres du site distant | Enregistrer des sites externes pour des appels Apex ou JavaScript | X | ||
| Événement d'anomalie de rapport | Suivre les anomalies dans l'exécution ou l'exportation de rapports par les utilisateurs | X | ||
| Règles de restriction | Empêcher les utilisateurs d'accéder aux enregistrements inutiles | X | ||
| Salesforce Code Analyzer | Scannez le code via IDE, CLI ou CI/CD pour vous assurer qu'il respecte les meilleures pratiques | X | X | |
| Règles d'étendue | Contrôlez les enregistrements par défaut que vos utilisateurs peuvent afficher | X | ||
| Centre de sécurité | Visualisez les paramètres de sécurité dans toutes vos organisations et configurez des alertes pour les changements de posture | X | X | |
| Contrôle d'intégrité de sécurité | Identifier les vulnérabilités dans vos paramètres de sécurité | X | ||
| Événement de piratage de session | Identifier les accès non autorisés via des identifiants de session volés | X | ||
| Classe de gestion des sessions | Personnaliser les paramètres de sécurité d'une session active | X | ||
| Paramètres de sécurité de session | Configurer des sessions de protection contre les attaques malveillantes | X | ||
| Piste d'audit de configuration | Suivre les récentes modifications de configuration effectuées par les administrateurs | X | ||
| Paramètres de partage | Contrôler l'accès aux données au niveau de l'enregistrement | X | ||
| B Shield Platform Encryption | Cryptage des données confidentielles au repos et en transit | X | ||
| Authentification unique | Accorder l'accès à plusieurs applications via une seule connexion | X | X | |
| Système de gestion des identités inter-domaines (SCIM) | Gérer les identités entre les systèmes via des API REST | X | ||
| Détection des menaces | Utiliser les statistiques et l'apprentissage machine pour détecter les menaces | X | ||
| Plages IP approuvées | Définir des adresses IP qui ne nécessitent aucune vérification supplémentaire | X | ||
| Rapport sur l'accès utilisateur | Obtention d'une vue unifiée de l'accès aux objets, aux enregistrements et aux autorisations de vos utilisateurs | X | X |
| Ressource | Description | Sécurité organisationnelle | Sécurité de la session | Sécurité des données |
|---|---|---|---|---|
| Guide d'architecture de partage | En savoir plus sur les outils d'accès, les modèles de partage et les cas d'utilisation | X | ||
| Modèle Design Standards | Créer des normes de conception pour votre organisation | X | X | X |
| Comment élaborer un modèle de sécurité utilisateur | Meilleure compréhension des modèles de sécurité utilisateur | X | X | |
| Comment implémenter le principe du moindre privilège dans Salesforce | Apprentissage de l'application des contrôles d'accès aux données PoLP dans Salesforce | X | X | |
| Surveiller les sessions utilisateur | Examiner les sessions actives et mettre fin aux sessions suspectes | X | ||
| Authentification multifacteur | Accéder aux ressources MFA officielles depuis Salesforce | X | ||
| Groupes d'ensembles d'autorisations (Trailhead) | Pratique des groupes d'ensembles d'autorisations | X | X | |
| Architecture REST API | Comprendre les termes et concepts de l'API REST | X | X | X |
| Sécurité et API SOAP | Compréhension des termes et concepts de l'API SOAP | X | X | X |
| Meilleures pratiques de sécurité pour les utilisateurs d'API et de système interne | Sécuriser l'accès des utilisateurs d'API et des utilisateurs système internes à Salesforce | X | ||
| Guide d'implémentation de la sécurité | Examinez une vue complète de Salesforce Security | X | X | X |
| Modèle de politique de sécurité | Définition de stratégies de sécurité pour votre organisation | X | X | X |
| Types de session | Identifier les types de session utilisés pour accéder à votre organisation | X | ||
| Concepts fondamentaux de la modélisation des menaces (Trailhead) | Découvrez les menaces de sécurité et comment les prévenir. | X |
| Confiance | ||
|---|---|---|
| Une solution de confiance protège votre entreprise et vos parties prenantes. | ||
| Sécurisé | Conforme | Fiable |
| Sécurité organisationnelle Sécurité de la session Sécurité des données |
Adhésion juridique Normes éthiques Accessibilité |
Disponibilité Performances Évolutivité |
| Facile | ||
| Une solution simple offre rapidement de la valeur métier. | ||
| Intentional | Automatisé | Engagement |
| Stratégie Maintenabilité Lisibilité |
Efficacité Intégrité des données |
Rationalisation Utile |
| Adaptable | ||
| Une solution adaptable évolue avec votre activité. | ||
| Résilient | Composable | |
| Gestion du cycle de vie des applications Réponse à l'incident Planification de la continuité |
Séparation des préoccupations Interopérabilité Emballage |
|