OpenClassrooms - "Développeur d'application - JavaScript React".
Développez un algorithme de recherche en JavaScript.
Après avoir édité des livres de cuisine pendant plusieurs années, l’entreprise 'Les Petits Plats' a décidé de se lancer dans un nouveau projet : réaliser son propre site de recettes de cuisine à l’instar de Marmiton ou 750g. L’équipe a déterminé que l’un des éléments pouvant faire la différence avec la concurrence était la fluidité du moteur de recherche. Il faudra donc porter une attention particulière sur les performances de ce dernier, pour obtenir une recherche rapide voire instantanée ! Le moteur de recherche permettra de filtrer les recettes en saisissant un ou plusieurs mots dans l'input de recherche, et/ou en sélectionnant des tags (ingrédients, appareils et ustensiles).
Prototype
- Réalisation du prototype du site en respectant la maquette FIGMA.
- Implémenter les fonctions de recherche (input text & tags) en se référant au document de 'description du cas d’utilisation de recherche'.
Documents et synthèse
- Réaliser 2 implémentations de l'algorithme de recherche sur 2 branches Git distinctes afin de les analyser. Ces deux implémentations doivent se focaliser uniquement sur le champ de recherche principal.
- Réaliser un Flowchart/Algorigramme afin de décrire l'enchaînement des étapes de l'algorithme Doc.
- Tester et analyser les performances des 2 algorithmes de recherche via l'outil Jsbench.ch et déterminer le plus efficace.
- Réaliser une fiche d’investigation de fonctionnalité qui regroupera le Flowchart, les éléments de benchmarking et une synthèse exposant le choix d'un algorithme en fonction de ces performances Doc.
- Vanilla JavaScript
- Approche Desktop First
- Principe de 'Separation of Concerns'
- Pas de librairie additionnelle
- Utilisation du framework CSS Bootstrap (optionnel)
- La programmation orientée objet en JavaScript (schéma de classes)
- Les bases de l'algorithmique
- Elaboration d'un Flowchart/algorigramme (draw.io)
- Utilisation d'outils de benchmark de performance JS (Jsben.ch)
- Comparer deux approches algorithmiques et réaliser un document de synthèse.
- Gestion dynamique de données
- Les différentes méthodes de l'objet ARRAY (filter(), map(), reduce()...)
- Git branching