Je ne suis en aucun cas un expert, mais dans notre groupe, la valeur de la façade n'est pas de nous donner la possibilité de changer le cadre de journalisation. Il est vrai que c'est quelque chose que nous obtenons, mais nous sommes dans la catégorie de ceux qui sont très peu susceptibles de changer leur cadre.
Dans notre cas, nous utilisons une façade pour personnaliser l'enregistrement. interface aux besoins de notre application. Nous avons constaté que tous les cadres sémantiques que nous avons examinés étaient encore trop axés sur ce que nous appelons le modèle "médico-légal" de la journalisation - quelqu'un qui fouille dans les journaux à la recherche d'une ligne de sortie dans le but d'analyser un événement.
Bien que ce soit un cas d'utilisation pour nous aussi, ce n'est pas notre cas d'utilisation principal. Nous voulons plutôt un instrumentation qui nous permettra de signaler les éléments intéressants, même ceux auxquels nous n'avons pas pensé au moment de la mise en œuvre.
Par exemple, notre application n'a pas besoin d'un "message" pour accompagner un événement ; au lieu de cela, notre "logger" acceptera des enums définissant le type d'événement et des objets d'état représentant des spécificités (par exemple, des horodatages ou d'autres valeurs) et les sérialisera pour faciliter la production de rapports, l'analyse de perforation, les mesures de la valeur commerciale, etc. (Nous reconnaissons que nous rendons, en fait, l'analyse traditionnelle un peu plus difficile au profit d'une interface de journalisation simple à utiliser et à comprendre qui augmente la probabilité que nous l'utilisions réellement et plus souvent).
Donc, pour vous donner une réponse succincte, voici un ordre approximatif des avantages que nous pensons tirer de l'utilisation d'une façade de journalisation.
-
Une interface cohérente et adaptée faciliter l'instrumentation (par opposition à la simple consignation traditionnelle, comme indiqué plus haut)
- Points de test simulables
-
Implémentations d'enregistreurs injectables convient pour tout, du développement local aux connexions AWS S3 ou DB, en fonction du déploiement (notre application utilise Autofac avec injection de dépendance de constructeur)
-
Cadres de logger substituables ce qui nous permettra de passer à un autre cadre de journalisation à l'avenir si nous le souhaitons. (Incidemment, nous ne prévoyons pas que cela se produise, donc, en soi, cela ne nous aurait pas convaincus d'utiliser une façade).
Et enfin, 0 façade perdrait ces avantages, et 2 façades n'ajouteraient à aucun de ces avantages, c'est pourquoi 1 façade est le bon chiffre pour nous.
Excellente question, @brian ! :)
12 votes
joelonsoftware.com/articles/fog0000000018.html
0 votes
@brian Je ne suis pas sûr que votre hypothèse sur l'inclinaison naturelle des gens soit vraie. Insistez sur le fait que la plupart des développeurs n'y pensent même pas.