Compétences component-refactoring
📦

component-refactoring

Sûr

Refactoriser les Composants React Complexes

Les composants React complexes deviennent difficiles à tester et à maintenir. Cette compétence fournit des modèles et des flux de travail pour refactoriser les composants à haute complexité en extrayant des hooks, en divisant les sous-composants et en appliquant les conventions spécifiques à Dify.

Prend en charge: Claude Codex Code(CC)
🥉 76 Bronze
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "component-refactoring". Analyze complexity of web/app/components/workflow/index.tsx

Résultat attendu:

Analyse de Complexité:
- Complexité Totale: 72 (cible: <50)
- Complexité Max de Fonction: 28
- Nombre de Lignes: 420 (cible: <300)

Principaux Facteurs de Complexité:
1. handleSubmit callback: +15 complexité (conditions imbriquées)
2. useEffect pour sync données: +12 complexité (callbacks imbriqués)
3. méthodes render: +10 complexité (chaînes switch/case)

Actions Recommandées:
1. Extraire le hook useWorkflowState
2. Diviser la gestion de formulaire en composant séparé
3. Déplacer la logique de sync données vers un hook useEffect

Utilisation de "component-refactoring". Extract hooks from ConfigurationForm component

Résultat attendu:

Hooks Extraits:
- useModelConfig: Gère l'état de configuration du modèle
- useDatasetSelection: Gère la logique du sélecteur de dataset
- useFormValidation: Logique de validation de formulaire

Structure de Fichiers:
web/app/components/form/
hooks/
use-model-config.ts
use-dataset-selection.ts
use-form-validation.ts
ConfigurationForm.tsx
index.ts

Audit de sécurité

Sûr
v1 • 2/16/2026

This is a documentation and guidance skill for React component refactoring. Static analyzer flagged 214 potential issues in markdown documentation files, all of which are false positives: backticks in code examples were detected as shell commands, code patterns triggered crypto/blocker alerts, and Object.keys() was flagged as certificate/key files. The skill provides reference documentation only and does not execute any code.

4
Fichiers analysés
1,774
Lignes analysées
0
résultats
1
Total des audits
Aucun problème de sécurité trouvé
Audité par: claude

Score de qualité

45
Architecture
100
Maintenabilité
87
Contenu
50
Communauté
100
Sécurité
91
Conformité aux spécifications

Ce que vous pouvez construire

Réduire la Complexité des Composants

Lorsqu'un composant React dépasse le seuil de complexité (>50) ou le nombre de lignes (>300), utilisez cette compétence pour réduire systématiquement la complexité par l'extraction de hooks et le découpage de composants.

Standardiser les Modèles de Hooks

Appliquer les conventions Dify pour organiser les hooks personnalisés dans les sous-répertoires hooks/ ou aux côtés des composants avec la convention de nommage use- prefix.

Préparer les Composants pour les Tests

Refactoriser les composants complexes avant d'écrire des tests pour garantir que les composants sont testables et respectent les seuils de complexité.

Essayez ces prompts

Vérification Basique de Complexité
Check the complexity of web/app/components/example.tsx using pnpm analyze-component. What is the complexity score and what are the main complexity drivers?
Plan d'Extraction de Hooks
Analyze web/app/components/form-config/index.tsx and identify opportunities to extract custom hooks. Show me the proposed hook structure with Dify conventions.
Stratégie de Découpage de Composant
The Configuration component at web/app/components/config/index.tsx has complexity 85. Suggest how to split it into sub-components while maintaining Dify patterns.
Flux de Travail Complet de Refactorisation
Run pnpm analyze-component on web/app/components/app/configuration/index.tsx and generate a complete refactoring plan including hook extractions, sub-component splits, and complexity reduction targets.

Bonnes pratiques

  • Exécuter l'analyse de complexité avant la refactorisation pour établir des métriques de base
  • Extraire les hooks tôt lorsque la gestion d'état dépasse 3-5 appels useState
  • Suivre les conventions de nommage Dify: hooks dans le répertoire hooks/ ou avec le préfixe use-*.ts

Éviter

  • Refactoriser des composants qui respectent déjà les seuils de complexité inutilement
  • Extraire des hooks qui ne sont utilisés que dans un seul composant (préférer inline)
  • Créer trop de petits composants qui nuisent à la navigation dans le code

Foire aux questions

Quel score de complexité est acceptable?
La complexité cible devrait être inférieure à 50. Les scores 51-75 indiquent qu'une refactorisation est nécessaire avant les tests. Les scores supérieurs à 75 nécessitent une refactorisation immédiate.
Puis-je utiliser cette compétence pour des projets React non-Dify?
Oui, les modèles d'analyse de complexité et les techniques d'extraction de hooks s'appliquent généralement à React. Cependant, les conventions d'organisation des fichiers sont spécifiques à Dify.
Cette compétence modifie-t-elle mon code automatiquement?
Non, cette compétence fournit une analyse et des conseils. Vous exécutez vous-même les commandes de refactorisation suggérées en utilisant pnpm refactor-component dans votre environnement local.
Quels outils cette compétence utilise-t-elle?
La compétence fait référence aux outils CLI pnpm analyze-component et pnpm refactor-component de Dify. Ceux-ci doivent être exécutés dans le répertoire web/ d'un projet Dify.
Comment savoir quand refactoriser ou réécrire?
Si la complexité dépasse 75 ou si le composant a des problèmes architecturaux fondamentaux, envisagez une réécriture. La refactorisation fonctionne mieux lorsque le composant a une logique métier précieuse à préserver.
Qu'est-ce que la complexité cognitive?
La complexité cognitive mesure la difficulté à comprendre le code. Elle diffère de la complexité cyclomatique en se concentrant sur la lisibilité humaine, pas seulement sur les chemins d'exécution. SonarJS la calcule en fonction des structures imbriquées, des switches et des modèles de flux de contrôle.

Détails du développeur