Quels sont les avantages et les inconvénients des DTO du point de vue de la performance des sites Web?

StackOverflow https://stackoverflow.com/questions/97532

Question

Quels sont les avantages et les inconvénients des DTO du point de vue de la performance des sites Web? (Je parle dans le cas où la base de données est accessible sur un serveur d'applications différent du serveur Web - et le serveur Web pourrait accéder directement à la base de données.)

Était-ce utile?

La solution

Les DTO ne sont pas un problème de performances. Je pense que ce que vous demandez, ce sont les implications de la hiérarchisation sur la performance. En particulier, l'utilisation d'un niveau d'application entre votre niveau Web (serveur Web) et votre niveau de données (serveur de base de données).

En règle générale, le temps de latence est augmenté (vos allers-retours sur le réseau sont plus nombreux), mais vous gagnez en capacité en répartissant la charge sur plusieurs machines.

Une autre raison fréquente (encore une fois, les performances) des utilisateurs est de leur permettre de placer le serveur Web dans la zone démilitarisée tout en maintenant les serveurs d'applications et de bases de données à l'intérieur du pare-feu.

Une autre raison potentielle (non-performance) est la possibilité de brancher plusieurs interfaces utilisateur au-dessus d'une seule application. Je l'ai déjà fait sur des projets antérieurs avec d'excellents résultats (là où l'entreprise le demandait).

De même, ne sous-estimez pas le travail requis pour maintenir une architecture de cette nature. C'est plus de travail qu'une solution non hiérarchisée, utilisez-la uniquement si vous pensez en avoir besoin.

Cela étant dit, l'utilisation des DTO ne nécessite pas l'utilisation de la hiérarchisation.

La meilleure description que j'ai trouvée de la hiérarchisation provient du livre de Martin Fowler, Analysis Patterns. Il y a une petite section à l'arrière sur les façades d'applications et la hiérarchisation.

Juste pour répéter la réponse précédente, les DTO ne sont pas un problème de performances. C'est juste une classe sans méthodes utilisées pour isoler les différentes parties de votre application.

Je suggérerais également de récupérer l'autre livre de Martin, Patterns of Enterprise Application Architecture. Le "motif" de DTO est documenté ici.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top