Fermer

octobre 29, 2024

Améliorer l’accès à Salesforce / Blogs / Perficient

Améliorer l’accès à Salesforce / Blogs / Perficient


Qu’est-ce que la couche de sélection ?

Le Couche de sélection dans Apex est un modèle de conception qui sert d’intermédiaire entre la logique de votre application et diverses sources de données, telles que des objets Salesforce ou des systèmes externes. Il encapsule la logique d’accès aux données, favorisant la modularité, la maintenabilité et la testabilité au sein de votre base de code.

Quand créer une nouvelle classe de calque de sélection

Envisagez de créer une nouvelle classe Selector Layer dans les scénarios suivants :

  1. Récupération de données complexes: Pour les requêtes complexes ou la logique de récupération de données qui ne doivent pas être intégrées à la logique métier ou aux contrôleurs.
  2. Réutilisabilité: Si plusieurs parties de votre application nécessitent la même logique de récupération de données, son encapsulation dans une couche de sélection permet une réutilisation efficace.
  3. Séparation des préoccupations: L’adhésion au principe de responsabilité unique permet de distinguer la logique d’accès aux données de la logique métier.
  4. Essai: Facilite la création d’implémentations fictives ou simplifie la récupération des données de test sans les coupler à la logique métier.
  5. Optimisation des performances: Centralise et rationalise les requêtes, réduisant ainsi le code redondant et améliorant les performances.

Conventions de dénomination des calques de sélection

Des conventions de dénomination cohérentes pour la couche de sélection dans les classes Apex améliorent la lisibilité et l’organisation. Voici quelques suggestions :

  • Préfixe avec « Sélecteur »: Commencez les noms de classe par « Sélecteur », tel que AccountSelector ou ContactSelector.
  • Utilisez des noms descriptifs: Assurez-vous que les noms de classe reflètent les données qu’ils sélectionnent, par exemple : OpportunitySelector.
  • Suffixes facultatifs: Vous pouvez ajouter « Couche » ou « Service » pour plus de clarté, par exemple : OpportunitySelectorLayer.
  • Cas cohérent: Utilisez CamelCase ou PascalCase de manière cohérente pour une meilleure lisibilité, par exemple : OrderSelector.

Sécurité de la couche de sélection

Lors de la mise en œuvre de la couche de sélection dans Apex, tenez compte de ces pratiques de sécurité :

    • Sécurité au niveau du terrain: Respectez les paramètres de sécurité au niveau du champ des utilisateurs et évitez d’exposer les données sensibles.
    • Sécurité au niveau de l’objet: Vérifiez les autorisations utilisateur pour les objets interrogés à l’aide de l’outil with sharing mot-clé dans les classes Apex.
    • Prévention des injections SOQL: utilisez toujours des variables de liaison dans les requêtes SOQL pour atténuer les risques d’injection SQL.
    • Confidentialité des données: Mettez en œuvre des contrôles pour garantir que seules les données autorisées sont récupérées.
    • Limites de la gouvernance: Soyez conscient des limites du gouverneur Salesforce pour éviter les problèmes de performances.

Calque de sélection

Implémentation de la couche de sélection

Voici un guide étape par étape pour implémenter la couche de sélection dans Apex :

  1. Définir la classe: Créez une nouvelle classe Apex nommée selon vos conventions de dénomination, par exemple : AccountSelector.
  2. Ajouter des méthodes de récupération de données: Implémentez des méthodes encapsulant vos requêtes SOQL.
  3. Encapsuler la logique métier: Assurez-vous que la couche de sélection se concentre uniquement sur la récupération de données.
  4. Implémenter la gestion des erreurs: Ajoutez la gestion des exceptions et la journalisation dans la couche de sélection.
  5. Testez votre couche de sélection dans Apex: Écrivez des tests pour garantir que les méthodes fonctionnent comme prévu, couvrant différents scénarios.
  6. Intégration à la logique métier: utilisez vos méthodes de couche de sélection dans les contrôleurs ou les services pour récupérer les données selon vos besoins.

Exemple:

public class AccountSelector {
      public static List<Account> fetchAccountsByStatus(String statusValue) {
       return [SELECT Id, Name FROM Account WHERE Status__c = :statusValue];
    }
}

En suivant ces pratiques, vous pouvez créer une couche de sélection robuste qui améliore l’architecture et la maintenabilité de votre application Salesforce.

Référence

  1. Guide du développeur Salesforce Apex
  2. Référence SOQL et SOSL
  3. Meilleures pratiques de sécurité Salesforce
  4. Modules Trailhead de Salesforce






Source link