Une bonne couche de services :
- Centralise l'accès externe aux données et aux fonctions
- Cache (abstrait) la mise en œuvre interne et les changements
- Permet le versionnage des services
Tous les trois sont critiques, car les services sont éternels. Une fois qu'ils sont publiés, vous ne pouvez pas contrôler qui les utilise, et les changements casseront quelque chose quelque part.
Voici un exemple réel : un ingénieur a initialement codé des événements sans stocker un fuseau horaire. Plus tard, nous avons réalisé que nous voulions afficher ces événements dans le fuseau horaire de l'utilisateur, ce qui signifiait que nous devions exposer cela aux utilisateurs.
Parce que nous avions une bonne couche de service, nous avons pu changer l'objet d'événement et le schéma sous-jacent, mais faire en sorte que les API affichent toujours l'ancienne façon parce que le point de terminaison de l'API était abstrait de l'objet par une couche de service. Nous avons également pu mettre en place une nouvelle version du point de terminaison de l'API afin que les utilisateurs de l'API puissent décider si et quand ils souhaitent exploiter ces nouvelles données. Sans une couche de service (par exemple, si d'autres personnes avaient pu interroger les données directement), il y aurait eu de très fortes chances que d'autres systèmes se brisent.
Enfin, de nombreux systèmes d'entreprise ont plus d'une couche. Typiquement, ils ont :
- Une couche de persistance qui fait l'abstraction des magasins de données et peut également appliquer des règles de visibilité ;
- Une couche d'objets qui fait l'abstraction du schéma, définit la fonctionnalité spécifique à l'objet et gère la gestion interne comme les pistes d'audit ; et
- Une couche d'API qui assure une fonctionnalité cohérente quelle que soit la façon dont vous accédez à l'application (interface utilisateur, mobile, intégration, etc.)
De nombreuses startups n'ont pas ces couches dès le premier jour, car elles prennent un temps précieux à construire, temps qui pourrait être mieux utilisé pour assurer l'adéquation au marché et faire réussir les clients. Mais quelque part autour de cinquante clients, ne pas avoir de couches de services commence à devenir de plus en plus coûteux en termes d'effort de développement et de régressions.
.