Les petits plats
Développez un algorithme de recherche en JavaScript
Brief mission : résumé des tâches et des livrables demandés
Contexte:
L’entreprise « Les petits plats », après avoir édité des livres de cuisine pendant plusieurs années, veut lancer un site de recettes à l’image de Marmiton ou 750g.
Travail à effectuer:
- Interface de recherche:
- Implémenter l’interface en suivant le design sur Figma.
- Utiliser Bootstrap ou Tailwind pour le design mais écrire tout le code JavaScript toi-même.
- Le code doit passer le validateur W3C.
- Développer la fonctionnalité de recherche:
- Planifier et documenter deux versions différentes pour la recherche: une utilisant des boucles natives (while, for…) et une autre en programmation fonctionnelle.
- Chaque version doit être implémentée dans une branche différente sur Git.
- Suivre les bonnes pratiques de Green Code et s’assurer de la sécurité du site.
- Tester et choisir la meilleure implémentation:
- Utiliser un outil de comparaison de performance pour identifier l’implémentation la plus performante.
- Documenter les résultats et faire une recommandation sur l’implémentation à adopter.
Livrables:
- Une fiche d’investigation sur l’algorithme de recherche (format PDF).
- Lien vers le code sur GitHub avec les deux branches de recherche.
Soutenance:
Lors de la présentation orale, il faudra:
- Présenter comment le problème a été décomposé (5 minutes).
- Montrer le rendu de l’application avec la version du moteur de recherche la plus performante et justifier le choix (10-15 minutes).
- Discuter et défendre les choix effectués lors du développement (10 minutes).
- Débriefer sur la session (5 minutes).
Compétences évaluées:
- Analyser un problème informatique.
- Développer un algorithme pour résoudre un problème.
compétences Acquises Suite au Projet
Analyse et Compréhension de Problématiques:
- Capacité à décomposer une demande client en problématiques techniques.
- Compréhension des enjeux liés à la performance d’un moteur de recherche.
Développement Front-End et Interface:
- Maîtrise de l’intégration web conforme à une maquette fournie via Figma.
- Compétence dans la mise en place d’interfaces responsives avec Bootstrap ou Tailwind tout en respectant les standards W3C.
Conception et Développement d'Algorithmes:
- Aptitude à développer deux implémentations d’un algorithme pour une comparaison de performance.
- Capacité à utiliser différentes méthodes pour le traitement des tableaux en JavaScript, y compris les boucles natives et les méthodes fonctionnelles de l’objet Array.
Gestion de Version avec Git:
- Habileté à gérer et séparer différentes versions de code en utilisant des branches sur Git.
Evaluation et Optimisation de Performance:
- Capacité à évaluer la performance des algorithmes à l’aide d’outils comme Jsben.ch.
- Aptitude à identifier et à recommander l’implémentation la plus performante.
Documentation et Présentation:
- Compétence en rédaction d’une « fiche d’investigation de fonctionnalité » pour documenter, comparer et recommander des implémentations.
- Habileté à présenter et à défendre ses choix devant une équipe technique, avec une justification basée sur des données.
Sécurité et Bonnes Pratiques:
- Conscience des risques associés aux injections et à d’autres failles de sécurité potentielles.
- Maîtrise des bonnes pratiques de « Green Code » pour un développement éco-responsable et efficace.