Fonctions réutilisables
Functions
Architecture
Organiser la logique complexe en créant des fonctions réutilisables pour un code plus propre.
Premiers pas avec une vraie app (Épisode 6)
Retour à l'Académie
Fonctions réutilisables
Résumé Express : Organisez une logique complexe en créant des fonctions réutilisables pour un code plus propre.
Problème : Logique complexe et répétitive
Tout comme les éléments visuels avec des composants, nous devons organiser les éléments algorithmiques avec des fonctions. Cela rend la logique plus propre et permet de réutiliser certaines fonctionnalités, comme « obtenir le nombre de tâches terminées ».
1. Créer un script de fonction
Nouveau script
- Clic droit sur Nouveau script
- Nommez le script « fonction » ou « functions »
- Important : Changez la portée en Frontend
Les trois portées disponibles
- Frontend : logique de l'interface utilisateur côté client
- Backend : logique côté serveur
- Shared : fonctions utilisables partout (frontend + backend)
Pourquoi ne pas tout mettre en Shared ?
- Performances : l'utilisateur charge uniquement le client, pas le serveur
- Sécurité : certaines logiques (connexion, etc.) ne doivent pas être exposées côté client
- Architecture : éviter les dépendances circulaires
2. Créer la fonction getTotalTasks
Configuration de la fonction
- Nommez la fonction getTotalTasks
- Cochez Exporter pour l'importer ailleurs
- Attention : ne cochez Exporter que si nécessaire (éviter les dépendances circulaires)
Migration de la logique
- Depuis la page principale, copiez toute la logique de calcul des tâches totales :
- get store → spread → get property (cards) → Map → Sum
- Collez le tout dans la fonction getTotalTasks
- Connectez input au début de la chaîne (map)
- Ajoutez une output nommée « totalTasks » de type number
- Connectez le résultat (sum) à la sortie
3. Créer la fonction getFinishTasks
Même principe
- Créer la fonction getFinishTasks
- Vérifier Exporter
- Migrer la logique de calcul des tâches terminées :
- obtenir le magasin → propagation → obtenir la propriété (cartes) → Filtre → chapeau[0] → obtenir la propriété (tâches) → obtenir la longueur
Configurer les entrées/sorties
- Connecter entrée au filtre
- Ajouter « finishTasks » sortie de type nombre
- Connecter le résultat à la sortie
4. Utiliser les fonctions dans la page principale
Nettoyer l'ancienne logique
- Retourner à la page principale
- Supprimer tous les blocs de calcul complexes
- Conserver uniquement les blocs de division, de multiplication et d'arrondi
Importer et utiliser de nouvelles fonctions
- Ajouter getTotalTasks à la logique
- Ajouter getFinishTasks à la logique
- Connecter l'exécution : calculé → getTotalTasks → getFinishTasks
- Connecter les résultats :
- totalTasks → entrée « total » de la division
- finishTasks → Saisie « terminée » de la division
Avantages de cette approche
Code plus propre
- Logique principale lisible et concise
- Séparation des responsabilités
- Noms de fonctions explicites
Réutilisabilité
- Fonctions disponibles dans toute l'application
- Évite la duplication de code
- Maintenance centralisée
Performances
- Chargement optimisé par portée
- Évite les dépendances inutiles
Bonnes pratiques
Quand utiliser l'exportation ?
- Uniquement si la fonction est réutilisée ailleurs
- Éviter l'exportation systématique pour ne pas surcharger l'application
Organisation de la portée
- Frontend : calculs d'interface, formatage, validations côté client
- Backend : authentification, base de données, logique métier sensible
- Partagé : utilitaires communs, constantes, aides
Structure de la fonction
- Entrée : paramètres d'entrée
- Logique : traitement des données
- Sortie : résultat typé et nommé
Résultat final
Le pourcentage fonctionne toujours parfaitement, mais avec un code beaucoup plus organisé et maintenable. Les fonctions peuvent désormais être réutilisées dans d'autres parties de l'application.
Tests et validation
- Tester les fonctions indépendamment : chaque fonction peut être testée individuellement.
- Vérifier la réutilisabilité : importer des fonctions dans d'autres composants.
- Performances : chargement optimisé grâce à des portées appropriées.
Résumé de l'architecture
Structure finale du projet
- Pages : interface utilisateur et logique d'affichage.
- Composants : éléments réutilisables avec propriétés.
- Scripts/Fonctions : logique métier organisée par portée.
- Types : définitions des structures de données.
- Store : état global de l'application.
Félicitations ! Vous disposez désormais d'une application Trello fonctionnelle, avec une architecture claire et maintenable.