2009-10-15 9 views

Répondre

8

Cela tend à signifier «des choses que vous voulez faire dans beaucoup d'endroits, ce qui n'a pas beaucoup de choses à faire avec la vraie viande de ce morceau de code».

exemples communs sont:

  • Traitement des transactions
  • Sécurité
  • Logging
  • Gestion des erreurs

Je trouve qu'il est généralement mentionné en ce qui concerne Aspect-Oriented Programming (AOP) qui habituellement tentatives pour gérer des choses comme ceci déclarative, par exemple avec des attributs/annotations. En simplification grossière, il s'agit d'appliquer automatiquement le code de plaque de chaudière (par exemple pour vérifier l'identité/l'autorité de l'utilisateur dans le contexte actuel ou de consigner l'entrée/la sortie de la méthode) sans que le code lui-même soit désordonné.

2

Je vous recommande de regarder un cadre comme Postsharp et essayer this exemple à partir du site postsharp. Si vous connaissez java un lok en AspectJ vaut le coup d'oeil. Mais d'abord vous voudrez peut-être lire le lien posté par Jon Skeet :)

3

L'exemple standard de "hello world" pour la coupe transversale est la journalisation: Vous avez une erreur dans votre système de production et vous n'avez aucune idée de ce qui se passe. Pour le résoudre, vous avez vraiment besoin de voir quelles fonctions de votre code sont appelées et quels paramètres ils obtiennent et ce qu'ils retournent.

Cette tâche simple peut être entièrement automatisée: Localisez toutes les fonctions (ou un sous-ensemble à l'aide d'un filtre quelconque) et ajoutez-leur un appel de journalisation qui imprime le nom et les paramètres. Puisque le code contient toutes les informations dont vous avez besoin pour accomplir cette tâche, ce que vous voulez vraiment, c'est un outil qui le fait pour vous et qui le fait en un seul endroit (au lieu de vous éditer des milliers de fichiers sources en ajoutant des instructions).

Questions connexes