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>), interfaceICommandHandler<TOptions>, héritageCommandHandlerOptions, méthodes statiquesSetupCommand(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.