Projet

Général

Profil

Actions

US #1082

ouvert

US #1089: 11_Code review de l'application [Client]

09_Temps de réponse de liste client

Ajouté par Tarek AOUADI il y a 8 mois. Mis à jour il y a 5 mois.

Statut:
Closed
Priorité:
Normal
Assigné à:
Version cible:
Début:
12/06/2025
Echéance:
12/06/2025 (En retard de environ 8 mois)
% réalisé:

100%

Temps estimé:
0.50 h

Fichiers

Mis à jour par Tarek AOUADI il y a 8 mois

  • Sujet changé de Temps de réponse de liste client à 09_Temps de réponse de liste client

Mis à jour par Tarek AOUADI il y a 8 mois

  • Assigné à mis à Anonyme

Mis à jour par Anonyme il y a 8 mois

  • Temps estimé mis à 0.50 h

Mis à jour par ahlem belgacem il y a 8 mois

  • Assigné à changé de Anonyme à ahlem belgacem

Mis à jour par ahlem belgacem il y a 8 mois

  • Tâche parente mis à #1089

Mis à jour par ahlem belgacem il y a 8 mois

  • Echéance mis à 12/06/2025
  • % réalisé changé de 0 à 100

Mis à jour par ahlem belgacem il y a 8 mois

  • Statut changé de New à In Progress

Mis à jour par ahlem belgacem il y a 8 mois

  • Statut changé de In Progress à Ready For Test

Mis à jour par ahlem belgacem il y a 8 mois

  • Statut changé de Ready For Test à Ready For Recette

Mis à jour par ahlem belgacem il y a 8 mois

Notes:
  • Requêtes SQL & Jointures Déplacer le filtrage `languageId` directement dans les jointures SQL pour éviter de filtrer les traductions côté JavaScript inutilement.
  • Optimiser les requêtes en déplaçant les filtres `languageId` et `description` (logo) dans les `LEFT JOIN` SQL pour réduire le volume de données transférées.
  • Utiliser `.select([...])` pour ne récupérer que les colonnes nécessaires au lieu de charger l'intégralité des entités (meilleure performance et moindre charge mémoire).
  • Grouper les récupérations des rapports, quiz et rémunérations en une seule requête par entité
  • Construire des objets `Map` à partir des résultats groupés pour un accès direct en par example (compensationByCompany ,quizzesByCompany,reportsByCompany).
  • au lieu d'effectuer une recherche ou une itération par entreprise.
  • Performance Fusionner les blocs `Promise.all(companies.map(...))` pour simplifier le code et réduire les appels imbriqués.
  • Supprimer la redondance de `const companies = await query.getMany()` s'il est déjà appelé ailleurs.
  • Envelopper les appels aux services externes (ex : récupération S3 du logo) dans un `try/catch` pour éviter qu'une seule erreur n'interrompe tout le traitement de la liste.
  • Optimisation logique JS :Utilisation de `Set.has(...)` au lieu de `Array.includes(...)`cela est essentiel dans les boucles où plusieurs vérifications sont faites pour chaque entreprise.

Mis à jour par Tarek AOUADI il y a 6 mois

  • Statut changé de Ready For Recette à Done

Mis à jour par Tarek AOUADI il y a 5 mois

  • Statut changé de Done à Closed
Actions

Formats disponibles : Atom PDF