AC22.01 | Choisir des structures de données complexes adaptées au problème
AC22.02 | Utiliser des techniques algorithmiques adaptées pour des problèmes complexes
AC22.03 | Comprendre les enjeux et moyens de sécurisation des données et du code
AC22.04 | Évaluer l'impact environnemental et sociétal des solutions proposées
💡 Quelles ont été vos démarches, prises de décisions, degré d'implication et d'autonomie ?
Avant ce stage, j'avais une vision assez théorique de l'optimisation : un algorithme plus rapide, c'est mieux, et c'est à peu près tout. Ce que j'ai appris en pratique, c'est que l'optimisation n'est pas une fin en soi — c'est une réponse à un problème concret que les utilisateurs vivent.
Le premier signal a été le calendrier logement. Les concierges se plaignaient que la page mettait trop longtemps à charger sur leur téléphone, en 4G, au milieu de la presqu'île de Quiberon. Ce n'était pas un problème abstrait de performances : c'était quelqu'un sur le terrain qui attendait des informations dont elle avait besoin maintenant. En cherchant pourquoi, j'ai compris que les requêtes se faisaient les unes après les autres alors qu'elles auraient pu se faire en parallèle. Une fois ce principe compris et appliqué, le chargement a baissé de 30%. Voir l'impact direct d'un choix technique sur une expérience utilisateur réelle, c'est quelque chose que je n'oublierai pas.
Le bug le plus complexe que j'ai résolu — et le plus formateur — concernait des icônes qui disparaissaient mystérieusement sur la version en ligne de l'application, alors qu'elles fonctionnaient parfaitement sur mon ordinateur. J'ai mis presque deux semaines à comprendre pourquoi. La cause : Flutter en mode production supprime automatiquement les ressources qu'il juge "non utilisées", et trois niveaux de cache différents servaient en permanence une ancienne version de l'application. Ce problème m'a appris quelque chose d'essentiel : ce qui fonctionne en développement n'est pas ce qui fonctionne en production, et comprendre cet écart est une compétence à part entière.
💡 Quelles ressources avez-vous choisies et combinées ?
La documentation technique officielle (Flutter, Firebase) pour comprendre les mécanismes de build et de cache. Mais surtout, la méthode d'élimination progressive : tester hypothèse par hypothèse, en changeant une seule chose à la fois. C'est une discipline que j'ai développée pendant ce stage et qui me semble fondamentale pour tout débogage sérieux.
💡 En vous appuyant sur vos traces, justifiez la maîtrise des apprentissages visés
Le résultat le plus tangible est la réduction de 30% du temps de chargement du calendrier, mesurable directement. Mais ce qui compte plus à mes yeux, c'est la compréhension de pourquoi : j'ai appris à lire un problème de performance comme un symptôme dont il faut trouver la cause réelle, pas juste appliquer une solution copiée d'internet.
La résolution du bug de tree-shaking et de cache m'a également appris à penser en couches : quand quelque chose ne fonctionne pas, le problème peut se situer à n'importe quel niveau de la chaîne, et il faut les tester méthodiquement.