OpenClassrooms-Student-Center / Utilisez-des-design-patterns-en-JavaScript

Le projet fil rouge du cours Utilisez des design patterns avec JavaScript
0 stars 147 forks source link

Problématique Decorator Pattern #6

Open Guiloux opened 2 years ago

Guiloux commented 2 years ago

Description

Nouveauté : les films provenant du ficher data/external-movie-data.json contient un nouveau champ : trailer_id. Ce champ correspond à l'ID du trailer du film. Ce dernier est hébergé sur Youtube.

Quand on clic sur l'affiche, nous souhaitons donc pouvoir ouvrir une fenêtre modale contenant un iframe. Cet iframe va nous permettre de lancer la vidéo directement depuis Filmo Patterns.

User Stories

Première User Story

OGR-67 commented 1 year ago

J'ai compris l'idée malheureusement la modale de lecture ne s'affiche ni sur ma solution, ni sur la votre (testé sur chrome / Firefox / Safari)

abguven commented 1 year ago

J'ai compris l'idée malheureusement la modale de lecture ne s'affiche ni sur ma solution, ni sur la votre (testé sur chrome / Firefox / Safari)

Bonjour Essayer de réduire la hauteur de iframe dans le fichier PlayerModal.js ligne 25.

jeromeabel commented 1 year ago

Bonjour, Juste deux petites erreurs dans le texte : " les films provenant du ficher data/external-movie-data.json contient" : "fichier" et "contiennent"

jeromeabel commented 1 year ago

Pour l'exercice sur Openclassrooms (partie3-chapitre2), je pense qu'il manque une information pour y arriver seul. Il s'agit des films tirés de "external....json", mais on n'a pas l'indication qu'il faut aller trouver les films avec Stallone. N'aurait-il pas été préférable de tester dans le décorateur si l'objet movie passé en argument est "Movie" ou bien "ExternalMovie", sans passé par une nouvelle propriété "actor" qui n'est mentionné nulle part à ma connaissance ?

Moonkey44 commented 1 year ago

Pour l'exercice sur Openclassrooms (partie3-chapitre2), je pense qu'il manque une information pour y arriver seul. Il s'agit des films tirés de "external....json", mais on n'a pas l'indication qu'il faut aller trouver les films avec Stallone. N'aurait-il pas été préférable de tester dans le décorateur si l'objet movie passé en argument est "Movie" ou bien "ExternalMovie", sans passé par une nouvelle propriété "actor" qui n'est mentionné nulle part à ma connaissance ?

Oui tu peux, je l'ai fait en passant par la propriété name du constructeur de l'objet :)

tdimnet commented 1 year ago

@jeromeabel : désolé si l’issue n’est pas totalement claire :/.

J’ai essayé de faire au maximum mais je n’ai pas forcément eu une relecture complémentaire (autrement dit quelqu’un, autre que moi, qui a suivi le cours). Je vais essayer de voir avec OpenClassrooms ce qu’on peut faire mais ça fait bientôt 2 ans que je travaille plus avec eux.

Je peux essayer de relire cette partie et de voir si l’information manque ou non.

Jake-Lynx commented 9 months ago

Juste une question qui me revient souvent à l'esprit. A quel moment utilise-t-on ces différents types de syntaxe:

tdimnet commented 9 months ago

Juste une question qui me revient souvent à l'esprit. A quel moment utilise-t-on ces différents types de syntaxe:

  • this.$property
  • this.property
  • this._property

Alors ça @Jake-Lynx, c’est une super question !

On va commencer en parlant du signe ´$´. C’est une habitude que j’ai gardé de l’époque jQuery. En effet, il y a maintenant une décennie, jQuery nous permettait de manipuler des éléments du DOM plus facilement. On utilisait donc assez souvent le signe ´$´ pour préciser que vous étiez en train de manipuler un élément du DOM et non un structure native du JavaScript comme une string ou un tableau.

Je ne peux donc pas préciser facilement si je manipule un noeud du DOM puisque ce projet n’utilise pas TypeScript. Le signe ´$´ me permet de l’indiquer.

Concernant le ´_´, il me permet en quelque sorte d’indiquer quelles propriétés sont privées et lesquelles sont publiques. Cela dit, c’est plus un indicateur qu’autre chose puisque tout est publique en JavaScript.

N’hésite pas à me dire si tu as besoin de ressources et d’informations

Jake-Lynx commented 9 months ago

Alors ça @Jake-Lynx, c’est une super question !

On va commencer en parlant du signe ´$´. C’est une habitude que j’ai gardé de l’époque jQuery. En effet, il y a maintenant une décennie, jQuery nous permettait de manipuler des éléments du DOM plus facilement. On utilisait donc assez souvent le signe ´$´ pour préciser que vous étiez en train de manipuler un élément du DOM et non un structure native du JavaScript comme une string ou un tableau.

Je ne peux donc pas préciser facilement si je manipule un noeud du DOM puisque ce projet n’utilise pas TypeScript. Le signe ´$´ me permet de l’indiquer.

Concernant le ´_´, il me permet en quelque sorte d’indiquer quelles propriétés sont privées et lesquelles sont publiques. Cela dit, c’est plus un indicateur qu’autre chose puisque tout est publique en JavaScript.

N’hésite pas à me dire si tu as besoin de ressources et d’informations

Ah d'accord @tdimnet, je comprends mieux à présent. Merci bien. Bon, j'ai pas encore terminé le cours mais j'avoue que je le trouve vraiment bien.

Alors oui, après avoir suivi les cours d'intro à Js, c'est pas toujours évident de comprendre assez aisément du 1er coup toutes les notions car il y a comme un léger décalage de niveau (à mon avis). Heureusement que t'es un super prof, sinon j'aurais eu du mal à tout comprendre.

Au fait, concernant TypeScript, vu que j'envisage être développeur JavaScript React et qu'à ce que je constate, TypeScript est beaucoup plus utilisé que du pur Js, je sais pas à quel moment placer l'apprentissage de TypeScript:

tdimnet commented 9 months ago

Re !

Alors oui, après avoir suivi les cours d'intro à Js, c'est pas toujours évident de comprendre assez aisément du 1er coup toutes les notions car il y a comme un léger décalage de niveau (à mon avis).

Je suis totalement d'accord avec toi. Les cours JS d'OC ne sont globalement pas dingues et pourraient être plus complet. Je vais éviter de trop faire de pub mais je t'invite à jeter un oeil sur le projet sur lequel je travaille : NX. Mon objectif est de proposer des cours complets sur des thématiques avancées. Autrement dit, je ne pense pas faire pour le moment de cours pour débutants complets mais plutôt reposer des bases saines en programmation et explorer des thématiques telles que la conteneurisation et les pipelines de déploiement.

Pour TypeScript, tu seras à un moment obligé d'y passer. C'est un indispensable dans l'écosystème JavaScript actuel. Tu pourras checker ce cours. Le fait est que c'est un langage intéressant pour progresser en programmation. Tu peux aussi bien écrire de la programmation fonctionnelle qu'orienté objet (alors qu'en JS classique, il y a beaucoup de concepts de l'orienté objet que tu n'as pas).

Du coup, je serais tenté de te dire de regarder d'abord TypeScript. Ça va te permettre en plus d'apprendre en douceur les packages managers type Npm et/ou yarn.

N'hésite pas si tu as d'autres questions, je suis toujours content d'y répondre :).

Heureusement que t'es un super prof, sinon j'aurais eu du mal à tout comprendre.

Et merci, ça me fait vraiment du bien de lire ça ^^.

Jake-Lynx commented 9 months ago

je t'invite à jeter un oeil sur le projet sur lequel je travaille : NX. Mon objectif est de proposer des cours complets sur des thématiques avancées. Autrement dit, je ne pense pas faire pour le moment de cours pour débutants complets mais plutôt reposer des bases saines en programmation et explorer des thématiques telles que la conteneurisation et les pipelines de déploiement.

Pas de soucis, j'y jetterai un œil une fois le cours terminé.

Jake-Lynx commented 9 months ago

Pour TypeScript, tu seras à un moment obligé d'y passer. C'est un indispensable dans l'écosystème JavaScript actuel. Tu pourras checker ce cours. Le fait est que c'est un langage intéressant pour progresser en programmation. Tu peux aussi bien écrire de la programmation fonctionnelle qu'orienté objet (alors qu'en JS classique, il y a beaucoup de concepts de l'orienté objet que tu n'as pas).

Du coup, je serais tenté de te dire de regarder d'abord TypeScript. Ça va te permettre en plus d'apprendre en douceur les packages managers type Npm et/ou yarn.

N'hésite pas si tu as d'autres questions, je suis toujours content d'y répondre :).

ça marche. Je te reviendrai probablement sur d'autres issues.