J'utilise angular depuis 1 an et cette video liste exactement toutes les erreurs que j'ai fait quand je code. Merci pour la vidéo, ca m'a permis de m'en rendre compte
Merci pour les explications. Ca fait longtemps que je code en Angular et quand je vois tes vidéos je suis impréssionné par la compléxité du Framework et les mauvaises pratique que nous avons tous appliqué deçu et même si ça fonctionnait quand même. Le problème c'est que le framework est asseez jeune (2016) et constament mis a jour et la documentation en effet parfois diffcile à lire et donc on se met à faire ce qu'on peut genre en effet un subscribe dans un subscribe lol ! puis quelques mois plus tard on apprend enfin comment ne plus faire ça grace à ce genre de vidéos. Encore merci c'était sympa à regarder
Au top, content que le format soit agréable tout en faisant de la saine propagande pour Angular. Et je suis d'accord avec vous, le framework est jeune et évolue très (trop) vite. Avec Angular 17 on est repartis pour de la montée en compétence.
Hello, je ne pense pas faire une vidéo sur ce sujet. Mais je l'aborde dans mon workshop gratuit sur Angular 18, plus centré sur le code et la technique.
9 місяців тому+1
Pour les subscribes dans les subscribes, j'aurais invité à découvrir la vidéo que tu as faite sur le sujet car il n'y a pas que le switchMap pour orchester les asynchrones qui déclenchent des asynchrones... D'autres alternatives peuvent être plus adaptées en fonction de la stratégie dont on a besoin.
Hello @CedricLecocq, vous avez raison, voici le lien vers la vidéo : SwitchMap vs ConcatMap vs ExhaustMap vs MergeMap => ua-cam.com/video/yZMPSkuNI6A/v-deo.html
Vidéo super intéressante surtout avec les solutions apportées merci. Que penses-tu de l'opérateur firstValueFrom de RxJS pour transformer en promesse un observable, dans le cas des nested subscribe ? On viendrait attendre la première valeur émise avant d'aller chercher la seconde. Bien sûr on perd l'asynchronisme et le script est bloqué le temps de récupérer cette première valeur.
Salut, je ne connaissais pas cet opérateur. Mais je pose la question, pourquoi ne pas utiliser une Promesse directement ? Car il semble que vous n'avez pas besoin d'utiliser pas la réactivité apportée par les Observables si vous pouvez switch sur l'API des Promesses.
Bonsoir ou bonjour Simon, j'espère que ça va. excellente vidéo comme d'habitude. 😂 tu n'as pas en disant que tu donnes des astuces pour senior. Moi j'ai une préoccupation qui la suivante, c'est que je n'arrive pas à passer un cramp dessus avec JavaScript, rassure toi pas parce que je trouve le langage au contraire j'ai pas de soucis là dessus, c'est plus par manque de stratégie, l'itinéraire à prendre, les types projets sur lesquels il faut bosser, même les exercices nécessaires pour consolider les connaissances sur les bases du langage.
Salut, merci pour ton retour sur la vidéo. Concrètement, je pense mettre en libre service sur mon site un workshop consacré à JavaScript en entreprise. Je vous préviendrai par email et par UA-cam quand ce sera disponible. Bon apprentissage à vous, Simon.
@@codeursenior Merci pour ta réponse, 😀 je viens de relire mon commentaire, j'ai vu qu'il y avait des mots manquants, mais je suppose que le message avait été compris. Merci une fois de plus.
Très belle vidéo. Par contre j’ai fait un tour sur ton site, rubrique mon histoire mais avec plein de fautes. Faudra faire un peu d’effort de ce côté hein 😂
nous pour unsubscribe on utilise first(). on est en mode api avec une app backend. et finalement on renvoie toujours des objets ça permets de pas s'embeter avec les unsubscribe à chaque fois.une fois le retour de l'api fait pouf unsub
Salut, de ma compréhension, avec seulement un «first», si l'observable n'emet pas au moins une fois, la fonction de «nétoyage» de l'observable (TeardownLogic) n'est jamais appelé et l'observable risque de continuer de «tourner en tâche de fond». (mais j'ai pas compris peut-être ce que tu veux dire par «on renvoie toujours des objets ça permets de pas s'embeter avec les unsubscribe»)
@@thm007 hey, merci pour le msg. C'est une bonne question. Peut être que c'est un effet de bord chez nous mais si j'ai bien compris first fait le teardown a chaque 1ere valeur émise. On a toujours ou next ou error qui est passé. Donc peut être qu'on contrôle pas assez... Mais en tout cas je ne vois pas de résidu de subscribe dans notre app, ce qui est notre comportement voulu. En tout cas je vais vérifier lundi 😉
@@toonpomme5178 Oui c'est piégeux aussi pour les observables qui tardent trop avant d’émettre leur valeurs ou ne font jamais de complete()… Du coup, sous angular, j’ai pris l’habitude de procéder avec «une seule» subscription pour tous les observable et souvent aussi des timeout : subs = new Subscription(); /*…*/ this.subs.add(obs1$.pipe(timeout(xxx)).subscribe() this.subs.add(obs2$.pipe(timeout(xxx)).subscribe() /*…*/ ngOnDestroy(): void { // unsubscribe pour tous en une fois this.subs.unsubscribe() }
Hello, les timesout sont sous-côté, et sont la stratégie pour refermer tout les cas possible pour un observable : next, error, complete et... timeout quand le serveur est dans les choux !
Une vidéo pertinente et instructive, comme tu en as l'habitude :-) Mais il faut vraiment que tu bannisses de tes vidéos ta phrase fétiche, qui ne te met pas du tout en valeur : "Je m'appelle Simon et j'ai été l'un des plus jeunes formateurs Javascript de France, puisqu'à seulement 26 ans, je formais des ingénieurs chez ATOS, l'une des plus grandes entreprises d'Europe avec plus de 110 000 collaborateurs." Rien ne va dans cette phrase. Ce que tu cherches à nous dire, c'est que tu es légitime pour nous parler de code. OK. Mais cette phrase, "Je m'appelle Simon..." dit tout le contraire; elle affaiblit ton propos. 1 Elle donne l'impression que tu t'accroches à ta gloire passée. Qui plus est, sur un exploit non significatif : "le plus jeune formateur Javascript de France". Être le plus jeune ça ne dure qu'un temps et ce n'est pas un exploit, encore moins un gage de qualité. 2 "Je formais des ingénieurs...", de nouveau, on est dans le passé. Mais cette phrase nous laisse aussi percevoir une forme de frustration de ne pas être ingénieur toi-même. Comme s'il fallait être ingénieur pour être un bon tech lead ou avoir de la légitimité. 3 "Avoir travaillé pour ATOS", on est toujours dans le passé, mais avec de nouveau un côté malaisant. Tu ne travailles plus pour eux parce qu'on t'a viré ? Parce que tu étais mauvais ? Parce que ce sont des requins et que dans ce type de boîte on n'est qu'un numéro ? etc.... Avoir travaillé pour ATOS n'est pas un gage de qualité. (Je suis déjà tombé sur des consultants ATOS qui étaient totalement incompétents). Je te propose de remplacer ta phrase par quelque chose de beaucoup moins "cringe" et malaisant : "Je m'appelle Simon et je suis tech lead et formateur Angular (depuis X ans)."
Hello, 1000 mercis pour ton message. C'est quelque chose que je répète en boucle depuis que j'ai lancé la chaîne pour me présenter, mais effectivement je sentais que quelque chose n'allait pas. Je vais regarder pour mettre à jour cela dans les prochaines vidéos. 👍
Mes 8 ans d'expérience sur Angular résumé en moins de 17 mins. Rien à dire, que des conseils efficaces.
Merci pour vos précieux commentaires, venant de quelqu'un de plus expérimenté que moi. 🙏
@@codeursenior c'est la qualité de l'expérience qui compte. J'apprends quand même des choses sur cette chaîne.
@@NaelMskine 🔥
J'utilise angular depuis 1 an et cette video liste exactement toutes les erreurs que j'ai fait quand je code. Merci pour la vidéo, ca m'a permis de m'en rendre compte
Au plaisir, vous êtes équipé pour faire de la propagande autour de vous sur ces anti-patterns désormais. 👍
Just do it, à force de chercher la perfection parfois on ralentit beaucoup,
cela dit très bon contenu
Excatement, "do it", mais après "refactor it" !
Merci pour les explications. Ca fait longtemps que je code en Angular et quand je vois tes vidéos je suis impréssionné par la compléxité du Framework et les mauvaises pratique que nous avons tous appliqué deçu et même si ça fonctionnait quand même. Le problème c'est que le framework est asseez jeune (2016) et constament mis a jour et la documentation en effet parfois diffcile à lire et donc on se met à faire ce qu'on peut genre en effet un subscribe dans un subscribe lol ! puis quelques mois plus tard on apprend enfin comment ne plus faire ça grace à ce genre de vidéos.
Encore merci c'était sympa à regarder
Au top, content que le format soit agréable tout en faisant de la saine propagande pour Angular. Et je suis d'accord avec vous, le framework est jeune et évolue très (trop) vite. Avec Angular 17 on est repartis pour de la montée en compétence.
Merci la vidéo
Est-ce que vous pouvez faire une vidéo sur authentification et le l'utilisation de guard
Hello, je ne pense pas faire une vidéo sur ce sujet. Mais je l'aborde dans mon workshop gratuit sur Angular 18, plus centré sur le code et la technique.
Pour les subscribes dans les subscribes, j'aurais invité à découvrir la vidéo que tu as faite sur le sujet car il n'y a pas que le switchMap pour orchester les asynchrones qui déclenchent des asynchrones... D'autres alternatives peuvent être plus adaptées en fonction de la stratégie dont on a besoin.
Hello @CedricLecocq, vous avez raison, voici le lien vers la vidéo :
SwitchMap vs ConcatMap vs ExhaustMap vs MergeMap => ua-cam.com/video/yZMPSkuNI6A/v-deo.html
Vidéo super intéressante surtout avec les solutions apportées merci.
Que penses-tu de l'opérateur firstValueFrom de RxJS pour transformer en promesse un observable, dans le cas des nested subscribe ? On viendrait attendre la première valeur émise avant d'aller chercher la seconde. Bien sûr on perd l'asynchronisme et le script est bloqué le temps de récupérer cette première valeur.
perso j'utilise ça :)
Salut, je ne connaissais pas cet opérateur.
Mais je pose la question, pourquoi ne pas utiliser une Promesse directement ?
Car il semble que vous n'avez pas besoin d'utiliser pas la réactivité apportée par les Observables si vous pouvez switch sur l'API des Promesses.
Excellente vidéo comme d'habitude ♥️ je reconnais un salon marocain derrière. Tu es au Maroc ?
Merci, au top !
Effectivement, je suis dans un salon Marocain. 👍
Bonsoir ou bonjour Simon, j'espère que ça va. excellente vidéo comme d'habitude. 😂 tu n'as pas en disant que tu donnes des astuces pour senior.
Moi j'ai une préoccupation qui la suivante, c'est que je n'arrive pas à passer un cramp dessus avec JavaScript, rassure toi pas parce que je trouve le langage au contraire j'ai pas de soucis là dessus, c'est plus par manque de stratégie, l'itinéraire à prendre, les types projets sur lesquels il faut bosser, même les exercices nécessaires pour consolider les connaissances sur les bases du langage.
Salut, merci pour ton retour sur la vidéo.
Concrètement, je pense mettre en libre service sur mon site un workshop consacré à JavaScript en entreprise.
Je vous préviendrai par email et par UA-cam quand ce sera disponible.
Bon apprentissage à vous,
Simon.
@@codeursenior Merci pour ta réponse, 😀 je viens de relire mon commentaire, j'ai vu qu'il y avait des mots manquants, mais je suppose que le message avait été compris. Merci une fois de plus.
@@djamalabdounassirharoun5878 Pas d'inquiétudes, je pense avoir bien compris. 😉
Ben j’ai du boulot encore 😂 ! Merci pour cette vidéo très enrichissante
Au top, que les mauvaises pratiques "retourne dans l'ombre". Je compte sur vous !
rien a dire vraiment bravo a toi
Au top, merci pour vos retours sur les bonnes pratiques présentées.
Très belle vidéo. Par contre j’ai fait un tour sur ton site, rubrique mon histoire mais avec plein de fautes. Faudra faire un peu d’effort de ce côté hein 😂
C'est fait ! Merci pour ton retour constructif. 👍
très cool merci beaucoup
🔥
Excellent !
J'espère que vous parlez de moi !
nous pour unsubscribe on utilise first(). on est en mode api avec une app backend. et finalement on renvoie toujours des objets ça permets de pas s'embeter avec les unsubscribe à chaque fois.une fois le retour de l'api fait pouf unsub
Salut, de ma compréhension, avec seulement un «first», si l'observable n'emet pas au moins une fois, la fonction de «nétoyage» de l'observable (TeardownLogic) n'est jamais appelé et l'observable risque de continuer de «tourner en tâche de fond». (mais j'ai pas compris peut-être ce que tu veux dire par «on renvoie toujours des objets ça permets de pas s'embeter avec les unsubscribe»)
@@thm007 hey, merci pour le msg. C'est une bonne question. Peut être que c'est un effet de bord chez nous mais si j'ai bien compris first fait le teardown a chaque 1ere valeur émise. On a toujours ou next ou error qui est passé. Donc peut être qu'on contrôle pas assez... Mais en tout cas je ne vois pas de résidu de subscribe dans notre app, ce qui est notre comportement voulu.
En tout cas je vais vérifier lundi 😉
@@toonpomme5178 Oui c'est piégeux aussi pour les observables qui tardent trop avant d’émettre leur valeurs ou ne font jamais de complete()…
Du coup, sous angular, j’ai pris l’habitude de procéder avec «une seule» subscription pour tous les observable et souvent aussi des timeout :
subs = new Subscription();
/*…*/
this.subs.add(obs1$.pipe(timeout(xxx)).subscribe()
this.subs.add(obs2$.pipe(timeout(xxx)).subscribe()
/*…*/
ngOnDestroy(): void {
// unsubscribe pour tous en une fois
this.subs.unsubscribe()
}
Hello, les timesout sont sous-côté, et sont la stratégie pour refermer tout les cas possible pour un observable : next, error, complete et... timeout quand le serveur est dans les choux !
Une vidéo pertinente et instructive, comme tu en as l'habitude :-)
Mais il faut vraiment que tu bannisses de tes vidéos ta phrase fétiche, qui ne te met pas du tout en valeur :
"Je m'appelle Simon et j'ai été l'un des plus jeunes formateurs Javascript de France, puisqu'à seulement 26 ans, je formais des ingénieurs chez ATOS, l'une des plus grandes entreprises d'Europe avec plus de 110 000 collaborateurs."
Rien ne va dans cette phrase.
Ce que tu cherches à nous dire, c'est que tu es légitime pour nous parler de code. OK.
Mais cette phrase, "Je m'appelle Simon..." dit tout le contraire; elle affaiblit ton propos.
1 Elle donne l'impression que tu t'accroches à ta gloire passée. Qui plus est, sur un exploit non significatif : "le plus jeune formateur Javascript de France". Être le plus jeune ça ne dure qu'un temps et ce n'est pas un exploit, encore moins un gage de qualité.
2 "Je formais des ingénieurs...", de nouveau, on est dans le passé. Mais cette phrase nous laisse aussi percevoir une forme de frustration de ne pas être ingénieur toi-même. Comme s'il fallait être ingénieur pour être un bon tech lead ou avoir de la légitimité.
3 "Avoir travaillé pour ATOS", on est toujours dans le passé, mais avec de nouveau un côté malaisant. Tu ne travailles plus pour eux parce qu'on t'a viré ? Parce que tu étais mauvais ? Parce que ce sont des requins et que dans ce type de boîte on n'est qu'un numéro ? etc.... Avoir travaillé pour ATOS n'est pas un gage de qualité. (Je suis déjà tombé sur des consultants ATOS qui étaient totalement incompétents).
Je te propose de remplacer ta phrase par quelque chose de beaucoup moins "cringe" et malaisant :
"Je m'appelle Simon et je suis tech lead et formateur Angular (depuis X ans)."
Hello, 1000 mercis pour ton message.
C'est quelque chose que je répète en boucle depuis que j'ai lancé la chaîne pour me présenter, mais effectivement je sentais que quelque chose n'allait pas. Je vais regarder pour mettre à jour cela dans les prochaines vidéos. 👍
Hé simon c est un salon Marocain là :]
Tout à fait, c'est un salon marocain. D'ailleurs la chaîne a toujours été sur ce sujet. 👍
La miniature xD xD
Ne soyez pas jaloux de mes mignatures légendaires. Merci.
Attention. Truand.
Où ça ? Heureusement que vous êtes là pour nous protéger !