2 KiB
Plan de refactorisation du module UniFi Integration
Problème identifié
Le fichier unifi_site.py est trop volumineux (plus de 4000 lignes) et contient une logique qui mélange deux types d'API différents (Controller et Site Manager). Cela rend le code difficile à maintenir et à faire évoluer.
Approche de refactorisation
Nous allons utiliser des mixins pour séparer la logique spécifique à chaque type d'API. Voici les étapes de la refactorisation :
-
Créer deux mixins :
UnifiControllerAPIMixin: pour les fonctionnalités spécifiques à l'API ControllerUnifiSiteManagerAPIMixin: pour les fonctionnalités spécifiques à l'API Site Manager
-
Modifier le modèle
UnifiSitepour déléguer les appels aux mixins appropriés en fonction du type d'API. -
Déplacer les méthodes spécifiques à chaque type d'API dans les mixins correspondants.
Avantages de cette approche
- Séparation des préoccupations : Chaque mixin contient uniquement le code spécifique à un type d'API.
- Réduction de la taille des fichiers : Le fichier principal devient beaucoup plus petit et gérable.
- Facilité d'extension : Ajouter un nouveau type d'API nécessite simplement de créer un nouveau mixin.
- Meilleure testabilité : Les mixins peuvent être testés indépendamment du modèle principal.
- Clarté du code : Les développeurs peuvent facilement identifier où se trouve l'implémentation d'une fonctionnalité pour un type d'API spécifique.
Implémentation
Les fichiers suivants ont été créés ou modifiés :
unifi_controller_api_mixin.py: Contient le mixin pour l'API Controllerunifi_site_manager_api_mixin.py: Contient le mixin pour l'API Site Managerunifi_site.py: Modifié pour utiliser les mixins
Le modèle UnifiSite délègue maintenant les appels aux mixins appropriés en fonction du type d'API, ce qui permet de réduire considérablement la taille du fichier et d'améliorer la maintenabilité du code.