dotnet-design-pattern-review

Par github · awesome-copilot

Examinez le code C#/.NET pour l'implémentation des design patterns et suggérez des améliorations.

npx skills add https://github.com/github/awesome-copilot --skill dotnet-design-pattern-review

Revue de modèles de conception .NET/C

Examinez le code C#/.NET dans ${selection} pour l'implémentation des modèles de conception et proposez des améliorations pour la solution/projet. Ne modifiez pas le code, fournissez simplement une revue.

Modèles de conception requis

  • Command Pattern : Classes de base génériques (CommandHandler<TOptions>), interface ICommandHandler<TOptions>, héritage CommandHandlerOptions, méthodes statiques SetupCommand(IHost host)
  • Factory Pattern : Intégration du service provider pour la création d'objets complexes
  • Dependency Injection : Syntaxe des constructeurs primaires, vérifications null ArgumentNullException, abstractions d'interface, durées de vie de service appropriées
  • Repository Pattern : Abstractions d'interface d'accès aux données asynchrones pour les fournisseurs de connexions
  • Provider Pattern : Abstractions de services externes (base de données, IA), contrats clairs, gestion de configuration
  • Resource Pattern : ResourceManager pour les messages localisés, fichiers .resx séparés (LogMessages, ErrorMessages)

Liste de vérification de revue

  • Modèles de conception : Identifiez les modèles utilisés. Les modèles Command Handler, Factory, Provider et Repository sont-ils correctement implémentés ? Modèles bénéfiques manquants ?
  • Architecture : Suivez les conventions d'espace de noms ({Core|Console|App|Service}.{Feature}) ? Séparation appropriée entre les projets Core/Console ? Modulaire et lisible ?
  • Bonnes pratiques .NET : Constructeurs primaires, async/await avec retours Task, utilisation de ResourceManager, logging structuré, configuration fortement typée ?
  • Modèles GoF : Modèles Command, Factory, Template Method, Strategy correctement implémentés ?
  • Principes SOLID : Violations de Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion ?
  • Performance : Async/await approprié, libération des ressources, ConfigureAwait(false), opportunités de traitement parallèle ?
  • Maintenabilité : Séparation claire des responsabilités, gestion d'erreurs cohérente, utilisation appropriée de la configuration ?
  • Testabilité : Dépendances abstraites via les interfaces, composants mockables, testabilité asynchrone, compatibilité avec le modèle AAA ?
  • Sécurité : Validation des entrées, gestion sécurisée des credentials, requêtes paramétrées, gestion sûre des exceptions ?
  • Documentation : Docs XML pour les APIs publiques, descriptions de paramètres/retours, organisation des fichiers de ressources ?
  • Clarté du code : Noms significatifs reflétant les concepts du domaine, intention claire à travers les modèles, structure auto-explicative ?
  • Code propre : Style cohérent, taille appropriée des méthodes/classes, complexité minimale, duplication éliminée ?

Domaines de focus des améliorations

  • Command Handlers : Validation dans la classe de base, gestion d'erreurs cohérente, gestion appropriée des ressources
  • Factories : Configuration des dépendances, intégration du service provider, modèles de libération
  • Providers : Gestion des connexions, modèles asynchrones, gestion des exceptions et logging
  • Configuration : Annotations de données, attributs de validation, gestion sécurisée des valeurs sensibles
  • Intégration IA/ML : Modèles Semantic Kernel, gestion de sortie structurée, configuration de modèle

Fournissez des recommandations spécifiques et actionnables pour les améliorations alignées avec l'architecture du projet et les bonnes pratiques .NET.

Skills similaires