Bonjour Julien, Je te suis depuis maintenant assez longtemps, je l'avoue et je regarde quasiment toutes tes vidéos avec toujours grand intérêt. J'ai un parcours scolaire assez chaotique, j'ai commencé à apprendre le développement quand j'avais encore 11-12ans et maintenant que je me retrouve en études supérieurs, j'ai eu ma première année en étant major de promo, mais depuis, impossible de passer ma deuxième année. Je m'ennuie à mourir pendant les cours, et j'ai toujours voulu me lancer un peu tout seul. Maintenant, voilà, je maitrise les compétences que tu liste ici, peut-être avec quelques lacunes car personne n'est parfait, mais disons que j'essaie de me débrouiller, de toujours optimiser et de rendre le code le plus lisible et accessible possible. Je touche à énormément de langages différents, mais je tiens en horreur, je dis bien en horreur, le CSS. Je suis capable de gérer un backend tout seul (J'ai réussi à me faire embaucher en tant que responsable de pôle R&D en CDI pendant un temps dans une petite entreprise avant de partir à cause de problèmes en interne), mais alors le frontend... Très honnêtement, je ne sais pas quoi faire. Je voudrais me lancer sur Fiverr, mais que proposer ? Qu'est-ce que je peux mettre en avant qui me donnerait une légitimité face à un autre ? L'année prochaine, je re-tente une deuxième année, mais c'est la dernière chance, et j'avoue que j'aimerais bien avoir de l'argent car ça fait déjà 3 ans de "mis à la poubelle" pour ma famille, et aussi car j'ai envie de passer au dessus de l'ennui des cours etc. C'est un peu sans filtre, mais cette situation me ronge pas mal, et j'hésite depuis un moment à te poser la question. Merci de m'avoir lu si tu l'as fais, Excellente journée à qui lira ce commentaire. Charles.
Hello Charles, J'aime bien ton histoire du coup je te fais une réponse. J'ai 15 ans d'XP dans le dev. Déjà, premier conseil, c'est toujours mieux de finir tes études, mais ça tu dois t'en douter. Ça facilitera ton entrée sur le marché du travail, pour au moins les 5 premières années. Maintenant, dans le cas contraire, on peut aussi faire son chemin dans le dev sans diplôme. Pour trouver un job quand on a pas d'XP, il faut finir de se former, et en apporter la preuve, et ça la seule façon c'est de faire des projets persos. Le top est de trouver un truc un peu original, et d'aller carrément au bout, tu sors un petit site et tu essaies de trouver des utilisateurs, c'est la meilleure approche parce que tu vas t'approprier le projet et avoir envie de le peaufiner au top, c'est plus motivant. Sinon, tu peux faire un copie d'un truc qui existe, spotify, réseau social, eCommerce, blog, ce que tu veux. Tu choisis une stack bien recherchée genre Next + Mysql + Express, le tout en typescript, et tu codes un truc qui bute le plus possible. Ensuite tu te fais un petit portfolio et tu mets le lien dedans avec des images. Si c'est juste un projet lambda, tu mets tout le code sur github, et tu mets ça aussi en accès public. Ce projet sera ta carte de visite. Tu vas apprendre énormément en le codant, et tu pourras mettre de vrai ref de tech dans ton CV. Pour ton aversion pour le CSS, on a tous un truc sur lequel on bloque un peu plus, le CSS est une logique un peu différente, et demande surtout du temps pour être maîtrisé. Si tu en fais tous les jours au boulot, tu finis par intégrer la logique. Maintenant si ça te saoule, utilise tailwind, ça simplifie le problème, et c'est une très bonne ref sur un CV.
Bonjour, je me permets de commenter parce que pour une vidéo qui parle de maîtriser le JS, il y a des approximations voir des erreurs qui ne sont pas acceptables. * Tout d'abord, dans la partie "l'univers Javascript et ses défauts" vous dîtes que "les variables primitives existent qu'une seul fois en mémoire", j'émets un gros doute vis à vis de cette affirmation, je n'ai pas pu trouver de ressource la confirmant ou la contredisant. Ça me paraîtrait aberrant pour un interpréteur JS qu'à chaque fois que l'on affecte une valeur, celui ci parcours sa mémoire à la recherche de la donnée, que si il ne la trouve pas, il l'a stocke, puis l'index (pour accélérer la recherche). Le gain de mémoire versus la perte de rapidité ne serait pas du tout intéressant (QUID des probabilités d'apparition multiple d'une même primitive à un instant T d'un programme ?). De plus, les spécifications EcmaScript ne disent pas réellement comment les moteurs JS doivent être implémentés mais plutôt comment le langage doit réagir quand on l'utilise. Par contre, il aurait été plus pertinent de dire que les objets sont affectés ou passés en paramètre par référence et qu'à l'inverse les primitives sont affectées ou passées en paramètre par copie! (Concept à connaître très important dans tous les langages!!!) * Ensuite, dans la partie "Savoir trier simplements un Array ou un Objet", à aucun moment vous parler de trie, sur les tableaux, il existe une méthode "sort" qui fait très bien le taf (Qui doit sûrement être une implémentation de l'algorithme QuickSort...). Il n'y a donc pas besoin d'implémenter soit même une fonction de trie. Quand à votre fonction permettant d'échanger la place de deux valeurs, je suis désolé mais elle ne fait rien parce que vous recopié le tableau au tout début de votre fonction, vous ne travailler donc pas sur l'instance du tableau que vous avez passé en paramètre. Si c'est réellement le but de ne pas modifier les données passées via paramètre, il aurait fallu au moins retourner la nouvelle instance du tableau en fin de fonction. Ensuite, la solution proposé via l'utilisation du splice me parait fonctionnelle, elle est cependant un peu compliqué pour ce que vous souhaitez faire. Un simple : const tmpValue = newArray[newIndex]; newArray[newIndex] = newArray[oldIndex]; newArray[oldIndex] = tmpValue; aurait suffit. Tout le monde comprend directement ce que l'on fait et en plus la solution est plus efficace que l'utilisation du splice! * Dans la partie "Les classes et la programmations orientée objet", vous dites que l'on peut créer des classes statiques. Désolé mais non, les classes statiques n'existent pas en JS. Une classe statique est une classe dont tous les membres sont statiques et que l'on ne peut pas instancier. Hors même si on met tous les membres en statiques dans une classe, rien n'empêche de quand même l'instancier. * Dans la partie "L'héritage des objets et le polymorphing", c'est ici que vous faites les plus grosses erreurs. Tout d'abord l'héritage, vous dites que c'est fait pour importer des membres au sein d'une autre classe, et que donc cette import est la CAUSE du choix de l'héritage. Hors, en terme de conception logiciel, il s'agit d'une grosse erreur. On ne devrait jamais utiliser l'héritage parce que l'on veut récupérer des membres d'une autre classe. En effet, le fait de récupérer les membres d'une autre classe doit être une CONSÉQUENCE! Le fait de choisir si une classe B hérite d'une classe A, c'est parce que le concept défini par la classe A correspond aussi à la classe B. Un exemple, si je défini une classe "Vehicule" qui contient une méthode "deplacer", je peux très bien créer une classe "Bateau" qui hérite de "Vehciule", ou encore "Avion" qui hérite de "Vehicule" car les deux sont des véhicules, par conséquence les deux classes posséderont la méthode "déplacer". Cependant, si je veux aussi avoir une classe "Personne" que je veux aussi pouvoir "déplacer", en aucun cas je dois la faire hériter de "Vehciule". Ça pourrait peut être fonctionner mais sur le long terme, vous pouvez être sur que votre programme va finir en usine à gaz. * Dans cette même partie, vous dites que le "polymorphing" permet de modifier une méthode au sein d'une classe, ce que vous faites plus tard mais on va y revenir. Alors, je ne suis pas sur de bien comprendre ce que vous tentez d'expliquer. Il existe plusieurs forme de polymorphisme (polymorphism en anglais). Mais, quand on parle de polymorphisme en POO, on parle qu'une même méthode au sein de classes différentes (méthode avec le même nom et le même prototype) n'exécute pas le même code mais pour la même finalité (celui de la fonction). Si on reprend l'exemple plus haut de la méthode "deplacer" dans les classes "Bateau" et "Avion", le corps de la méthode "deplacer" dans la classe "Bateau" contiendrait des instructions pour le faire naviguer sur l'eau alors que le corps de la méthode "deplacer" dans la classe "Avion" contiendrait des instructions pour le faire voler. Dans les deux cas, notre véhicule se déplace mais pas de la même façon. C'est simplement ça le principe de polymorphisme en POO! * Dans cette même partie, vous voulez donner un exemple de polymorphisme en venant modifier le prototype de la classe MegaStar. NON, ce n'est pas du polymorphisme, vous êtes juste venu modifier la définition de la classe MegaStar. Si vous travaillez avec des classes JS, vous ne devez jamais venir modifier le prototype de cette classe. En effet, à l'origine, JS n'était pas un langage objet, il s'agissait d'un langage basé sur les prototypes, il n'y avait pas de classe (il y a une certaine ressemblance entre les deux concepts mais ce n'est pas la même chose). Ce n'est que depuis la norme ES2015 que les classes sont apparues! Beaucoup de devs utilisaient des mécaniques permettant de faire de la POO en utilisant des librairies alternatives qui s'appuyaient elle même sur les prototype, ils ont fini par intégrer ses mécaniques de classes en natif (mais elle s'appuie quand même sur les prototypes). En faisant ce que vous avez fait avec le prototype, vous avez juste modifier la méthode directement dans la définition de la classe. Tous les objets qui instancient cette classe ont donc vu leur méthode "getDetails" modifiée. Si vous souhaitez réellement que la méthode "getDetails" renvoie le nom plutôt que le prénom autant l'écrire directement dans la définition de la classe. Ça évitera à vos collèges qui viennent maintenir votre code de se tirer les cheveux parce qu'ils ne comprennent pas pourquoi votre classe qui défini une fonction, n'a pas le même comportement que celui marqué dans la définition de la classe! * Si vous voulez aller plus loin en ce qui concerne les prototypes, et les mécaniques de classe et d'héritage, je vous conseil fortement de vous intéresser au principe de chaîne de prototype en JS.
@user-no7oc1dc3u par rapport à ce message : "Si vous voulez aller plus loin en ce qui concerne les prototypes, et les mécaniques de classe et d'héritage, je vous conseil fortement de vous intéresser au principe de chaîne de prototype en JS." À qui vous adressez-vous?
@@remix2die4 Je suis désolé, je viens d'une formation diplômante et mes références, c'est les études que j'ai faites. On m'a d'abord appris l'algorithmie, différentes méthodologies de conception logiciels, le fonctionnement d'un ordinateur, d'un SGBD, des protocoles, des bonnes pratiques, de la sécurité, etc. Après, je suis quelqu'un de curieux, je me suis formé aussi à coté tout seul. J'ai appris aussi des personnes qui m'entouraient au travail ! Je suis resté critique vis à vis de ce que l'on me dit! En cas de doute, je vais vérifier une information en croisant les sources. Mais si j'ai pu faire ça, c'est grâce au connaissance de base : l'algorithmie, la conception logiciel et surtout de la curiosité. Quand on a les bases, et de la culture informatiques, apprendre un nouveau langage, ça se fait très vite, on retrouve quasiment toujours les mêmes fonctionnalités dans tous les langages, c'est surtout de la syntaxe qui change, mais ça va vite !!!! Je n'ai malheureusement pas de ressources à vous conseiller particulièrement, je vous conseillerai plutôt d'aller voir à différents endroits afin de croiser les sources histoires d'être certains que ce que dit la personne qui a écrit un livre, que c'elle qui à un écrit un article, que c'elle qui a tourné une vidéo, que ce que l'on vous a dit est vrai et n'est pas déformé voir faux ! Après, les sciences de l'information ce n'est pas une science pur! Ce n'est pas parce que quelqu'un dit qu'il faut faire comme ça que c'est forcément vrai ! C'est beaucoup d'expérimentation et de retour d'expérience. Voir ce qui marche, et voir ce qui ne marche pas. Ce faire son expérience ! Et pour ce faire son expérience, il faut tester et pratiquer ! A la rigueur, un gars qui me parait assez sérieux dans ce qu'il dit, qui se tient assez informé des nouveautés autour des technologies de l'information, et qui a pas mal de contenu à proposer, ça serait Grafikart. Mais comme je disais plus haut, il ne faut pas hésiter à aller voir ailleurs !
@@JulienLucas, avec tout le respect que je vous dois, à vous ! Je ne suis pas certains, d'après votre démonstration, que vous comprenez bien ce que vous faites quand vous venez modifier le prototype de la classe MegaStar!
Je suis content que tu sois plus régulier qu'avant, honnêtement tu fais de très bonnes vidéos, très intéressantes et qui sortent des tutoriels pour débutant
Salut Julien, je suis débutant en reconversion, merci pour ton partage, c'est précieux de trouver des contenus comme celui que tu proposes, je m'abonne, je trouverais certainement d'autres choses qui pourront me servir ! Et y'en a un paquet haha !
Ce que je pourrais ajouter de ma petite expérience c'est de maîtriser la programmation asynchrone (asynchrone/await). Je dirais même que c'est capital pour tirer autant que possible de sa puissance. JS est un langage single-threaded il ne bénéficie pas des avantages des langages multithreadé. Mais il les mime un event-loop. Alors la programmation asynchrones permettra d'écrire des programmes non-bloquant au besoin, et ainsi dans certaines situations exécuter plusieurs instructions indépendants simultanément (avec Promise.all(), Promise.race(), Promise.any() et Promise.allSettled()). Ceci demeure encore plus vrai lorsqu'on utilise JS pour front-end (navigateurs). La manipulation du DOM est assez coûteuse et peut conduire à un gel de l'interface si c'est mal géré (langage single-threaded). L'utilisation des outils asynchrones (Promises, setInterval(), setTimeout()) sont à privilégier. Comme dit dans la vidéo, JS est un langage ouvert et permissif , ce qui en fait un force (barrière d'entrée basse) mais également une faiblesse si tous les concepts mentionnés dans la vidéo ne sont pas pris en compte. Avec JavaScript l'enfer et paradis ont la même adresse. Je proposerais dans la mesure du possible d'utiliser TypeScript afin d'avoir une couche de rigueur sur certains de ces aspects afin de limiter les effets indésirables. Enfin, avant d'écrire une fonction complexe qui peut vous prendre de sacrés minutes ou heures, rassurez vous qu'elle n'existe pas déjà dans la Doc. Mine de rien JS (et Python) sont des langages tellement bien fournis en bibliothèque standard que pour certains aspects vous n'aurez même pas besoin de plugins ou d'écrire vous même certaines fonctions.
Je viens de découvrir la chaîne et elle tombe à point, j'ai besoin d'apprendre Javascript pour un projet perso et rien sur cette vidéo j'ai pu m'engloutir quelques chinoiseries sans m'ennuyer une seconde (jolie rythme côté montage ^^). J'ai fait un peu de script en bash il y a quelques années lorsque je faisait mumuse sous Debian mais rien de folichon & ce type de vidéo qui va à l'essentiel est rassurant mais surtout motivant. Je m'en vais dévorer le tuto d'1h illico. Merci bien & bonne continuation ^^
Des révisions qui ne font pas de mal... et des découvertes. Merci. Je suis développeur back mais j'utilise souvent JS et pas forcément toujours de la bonne manière apparemment. Je vais vous suivre de plus près maintenant 😅
👋 Hello, super vidéo ! Très intéressante et agréable à écouter ! 😄 De mon côté, je me demande pourquoi je n'ai jamais jeté un œil à JS. En ce moment, je commence à m'y plonger. Cela fait déjà 4 ans que je fais du développement par passion (pas pour le boulot), et j'ai appris en autodidacte plusieurs langages : C++, C#, F# (qui, au fait, personne ne connaît 😂), Java, PHP, et Kotlin. Eh oui, vous l'avez bien vu, pas de Python ni de JS dans le lot. Pourquoi ? Parce que je les trouvais trop "basiques/simplet" 🤦♂ au niveau de la syntaxe. À 15 ans (j'en ai maintenant 23), j'ai commencé avec le dev sur : Java et C++, et j'en ai chier.. vraiment.. Surtout si tu te sent concerner ou pas d'ailleurs, lis ce texte ou je partage des connaissances et informations, qui aurait changer beaucoup de choses si j'étais tomber dessus il y a maintenant 8 ans... et qui vont juste te demander 5 minutes de lectures ⭐😁 1 ) Mais voilà récemment, j'ai pris la décision de me reconvertir professionnelement, pour exercer ma passion (du moins on croise les doigts 😂). Et devinez quoi ? Je suis maintenant obligé de plonger dans JS et Python, car c'est la base comme tous le monde le dit ou en parle....(flemme..) 2 ) Et devinez quoi encore ? Vous avez raison ! 😭 Surtout, ne faites pas la même erreur que moi (je n'ai eu personne pour me guider, ni de près ni de loin...). JS, c'est incroyable. On peut commencer rapidement et aller très loin. Et oui, c'est "basique/simplet" au niveau de la syntaxe et ca peut etre brouillon car peu de choses imposer par le langage de bases, mais qu'est ce que c'est facile, fluide a prendre en main et oui.. c'est le top pour débuter! Qu'on le veuille ou non, il est moins exigeant et plus accessible que tout ce que j'ai appris avant...(ou il m'as fallu parfois des semaines a comprendre la gestions de dépendances complexe a n'en plus pouvoir, pour que apres 2-3 semaines de taff apres les cours, j'arrivais enfin a executer ma premiere fonction.. qui me permettais de !!! (calculer la somme de 2 entier et l'afficher en format text...) (Je réalise maintenant que j'ai gaspillé tellement de TEMPS à me lancer dans des paradigmes trop complexes...) 3 ) Si vous ne connaissez pas les langages que j'ai cités (tant mieux pour vous, d'une certaine façon), imaginez que pour faire le moindre script de traitement de fichier texte, il fallait déjà maîtriser des concepts comme le polymorphisme, les objets, les classes, les itérations, les namespaces (faciles à comprendre, mais sans réel intérêt, et des galére en C# à la compilation), les instanciations, et la gestion de la mémoire cache. Bref, tout cela devait être connu par cœur... 3 ) Alors oui, même si je suis toujours passionné par C#, qui évolue à un rythme effréné (surtout avec C# v12 et son intégration .NET 8), il est temps de reconnaître que JS est une porte d'entrée fantastique. C'est simple, natif (pas de frameworks à apprendre à chaque fois comme JS 😂!!), et à la compilation, votre code peut être exécuté PARTOUT : Web, SysAdmin, iOS, Android, Windows, Linux, RASPBERRY PI, et même sur tous les objets connectés qui nous entourent ! C'est vrai, SANS CHANGER 1 LIGNE DE CODE d'un appareil à l'autre ! Plus besoin d'apprendre de nouvelles syntaxes pour chaque plateforme. Le compilateur s'en charge pour vous. C'est la beauté de la compilation C# 12 .NET 8. 🚀 En conclusion, commencez avec JS/Python (JS est recommandé pour sa simplicité et scalabilité, et as plus de point commun avec les nouvelles technologie), puis, prenez un moment pour explorer l'actualité de C# et du développement chez Microsoft. Microsoft est en train de bouleverser le monde du développement, et c'est passionnant (pour moi en tout cas 😁❤). Mais retenez bien : NE FAITES PAS COMME MOI en commençant par des choses compliquées. Jetez un œil à C#, car, après avoir maîtrisé JS, vous verrez que C# est beaucoup plus abordable, avec moins de documentation complexe à suivre. Heureusement, le langage a beaucoup évolué et est bien plus simple qu'il y a seulement un an. Aujourd'hui, vous pouvez écrire : var x = 42; console.Write(x); [Résultat : La console affiche 42 !]. C'est devenu tellement logique, non ?! Il y a à peine un an, il fallait créer une classe, la méthode associée, et importer des tonnes de "using System.*****" au début de chaque fichier. Mais les performances étaient toujours au rendez-vous ! Parfois jusqu'à 10 fois plus performant que JS sur un projet de taille moyenne, comme un e-commerce local. Et plus le projet est gros, plus ça brille ! Donc voilà, si vous êtes toujours là pour lire... bravo, vous avez de la persévérance, mon ami ! Et sachez que, personnellement, dès que j'ai commencé à m'amuser avec JS, tout a coulé de source. Vous ouvrez la console sur Chrome/Edge, et vous pouvez déjà commencer à coder ! Gardez un œil sur l'actualité de C#, et quand vous vous y intéresserez, vous aurez la chance de profiter des dernières nouveautés, grâce à votre expérience avec JS. Pas besoin d'efforts démesurés ni de temps mental (loin de l'époque du .NET Framework 4 et des Windows Forms... nous avons bien avancé en termes d'évolutions et d'améliorations, en très peu de temps, là où JS n'a pas beaucoup évolué malgré ses 27 ans d'existence sur le terrain 😂). Voilà, j'ai terminé. Bon, franchement, je doute que quelqu'un lira tout ça, mais si cela peut aider ne serait-ce qu'une personne à ne pas perdre son temps comme moi ou à jeter un coup d'œil à C# grâce à ce message qui m'a pris 50 minutes à écrire, alors je serais déjà super content. Je l'ai rédigé comme si je pouvais remonter le temps, afin que ce message puisse sauver des semaines voire des mois de travail à quelqu'un, car personne ne m'a expliqué tout cela... Bonne journée/soirée/matinée, et peut-être à bientôt sur les forums Microsoft C# (parce que la communauté française n'est pas encore assez présente là-bas 😭😭) ! PS : Pour C#, je vous recommande ses créateurs, qui vous feront gagner du temps, croyez-moi !! (Et merci pour leur travail fourni ❤) ⇒
Excellence vidéo, j'ai appris beaucoup de choses grâce à toi. J'ai une suggestion concernant l'asynchrone: la librairie rxjs qui est notamment très utilisée avec Angular et qui permet d'utiliser des Observables (je suis junior, n'hésite pas à me corriger si je fais une confusion)
L'envie est là, la clarté des explications pas forcément mais c'est comme le code ça s'apprend et ça ne se fait pas d'un claquement de doigts. Continue sur ta lancée et ne perds pas trop de temps avec les débats en com', on sait que ton avis n'engage que toi ! Courage pour la suite 😉
@@JulienLucas Je ne voulais absolument pas t'offenser en disant cela. Je pense que créer du contenu prend du temps et les conseils que tu donnes sont issus de ton expérience personnelle, donc subjectifs, mais il n'y a pas de mal à ça ! Après, si tu revisionnes ta vidéo, tu te rendras surement compte qu'il y a des passages où les explications/éclaircissements que tu donnes ne sont pas éloquents. Et ça arrive même a des formateurs professionnels ! Désolé que tu l'aies mal pris. Néanmoins, je renouvelle sincèrement mes encouragements pour la suite.
Hello Julien. Peux-tu expliquer en quoi utiliser .map()/.filter() serait un problème (10:17) ? Ça fait quelques années (depuis l'arrivée des linters, de webpack et des builds) qu'on nous vend le "clean code" comme LE truc à garder en tête quand on dev et que l'énorme majorité des équipes préfèrent ça à des lignes inutiles.
Il faut quand même noter qu'aujourdh'ui la POO et les classes se font très rares en JS. Si on fait du front, on se retrouve à faire du React, de l'Angular, du Svelte, Du NextJS, du Solid, etc. Ces frameworks n'utilisent pas de classes (sauf Angular mais même dans ce cas c'est une utilisation très limitée des classes) . Je me retrouve sur des projets en React ou NextJS dans lesquels le mot clé "class" n'est même pas présent une seule fois (car ce n'est pas du tout la philosophie de ces frameworks). Si on fait du back en NodeJS on peut se retrouver à manipuler un peu plus de classes notamment avec des ORMs mais là aussi c'est une utilisation assez limitée des classes vu que dans la plupart du temps elles servent juste à définir des entités.
La POO sur tout un projet j'en ai jamais vu effectivement. Ça date comme paradigme. Mais on peut trouver quelque modules codés en POO. C'est quand même bon d'avoir quelque notions. 😉
Les classes en javascript sont des functions avec des prototypes. La notions de class est différente dans ce contexte, c'est juste un choix stylistique.
Ta video ma decouragé de me lancer dans la programation, c quoi ce charabia, j’arrive pas a comprendre l’utilité, ou sa nous mène. Hors mis les function qui sont des boutons, et tout ce qui est en rapport avec html
J'ai aime ta video, perso je veux etre expert en js ... j'ai une longue experience en prog mais debutant a intermediaire en js quels conseils ou livres ou meme tutos me conseiller de suivre je trouve parfois des cours qui donnet souvent les bases , le pire ils donnent des solutions sans preciser pourquoi telle solution vs autre ... je trouve ca desolant pour ceux qui pretendent etre des maitres en la matiere Mille merci
Sympa ta video, Petite remarque sur le async/await: Le ".then" n'est pas un truc d'avant. Il est encore trés utile selon les cas. Le "await" par définition, attend la résolution de la requete pour continuer, ce qui bloque le processus, contrairement au .then Desfois nous ne voulons pas bloquer le processus, desfois si. L'usage du .then et du await sont différents, et utilisé au sein d'un meme projet régulierement.
On est pas d'accord alors. 🙂 Il faut quand même attendre la fin du processus avec .then(). La promesse then() s'exécute seulement s'il y a requête effectuée avec succès. Par contre il y a le finally() depuis quelque années. Qu'on peut exécuter à la fin peu importe le succès ou l'échec.
@@JulienLucas IMHO ce qu'il veut dire c'est que dans le flux d'éxécition de ton code, ce qu'il y a dans le then est asynchrone par rapport a ce qu'il y a juste après lui, alors qu'avec async/await, ta promesses attendra avant de continuer les lignes d'instructions. 🤔 .then/.catch console.log('BEFORE THE READFILE CONTENT'); readFile('test.txt', { encoding: 'utf8' }) .then(console.log) .catch(console.error); console.log('BEFORE THE READFILE CONTENT'); Result: BEFORE THE READFILE CONTENT BEFORE THE READFILE CONTENT MY FILE CONTENT (async () => { console.log('BEFORE THE READFILE CONTENT'); console.log(await readFile('test.txt', { encoding: 'utf8' })); console.log('AFTER THE READFILE CONTENT'); })(); Result: BEFORE THE READFILE CONTENT MY FILE CONTENT AFTER THE READFILE CONTENT
@dieu930 a raison le mot clef await et l'utilisation de then ou catch c'est 2 use case différent. On ne peut pas dire que c'est plus propres ou moins propres
Je pense qu'il y a eu confusion dans les propos de @JulienLucas, car en effet tu as raison, non seulement "then" est encore d'actualité, mais en plus on peut combiner les deux, au sein d'un même programme dans certaines situations, selon ce que l'on recherche comme comportement.
J'ai adoré. Mais ça fait 6 mois que je travaille tous les jours avec JS et "écosystème" ( react,Next, Prisma, meme Astro 😅) je commence à aimer . Mais j'ai un truc a dire PHP c'est la vie ajajaha et non je parle pas de symfony . Merci pour la vidéo ;) +1abonné
Merci de tes conseils d'expert ! Très bonne vidéo, je ne comprend pas le peu de succès que tu as. très je pense que ton heure viendra, j'en suis persuadé. PS: à mon humble avis tu devrait réduire les bruits de clavier durant les démonstrations de code !
Merci beaucoup pour ton com. Yes j'aimerai avoir plus d'audience. Mais d'abord faire des vidéos à forte valeur ajoutée. Si c'était facile de faire beaucoup d'audience RUclips tout le monde le ferait. 😊
Merci pour cette vidéo . Juste une question ; j'ai vu que la methode __proto-- était déconseillée , et qu'il fallait privilégier Obectj.create(). Tu es d'accord, ou bien ça se discute? merci de me donner ton avis . cordialement
Bon vu tout ce que tu nous donne je laisse un petit comm et un like, j'ai jamais liker jamais commenter même si tes vidéo était incroyable (pour moi) parce que je voulais garder la chaine private, mais tu le mérite alors bon courage et continue comme ca, tes un boss !
Hello, si tu sais que dans ta fonction tu n'utilise pas de fonctions mutables, est-ce nécessaire de créer une copie de l'array en question (pour faire echo à l'exemple que t'as donné dans cette vidéo) ? Le fait de faire du polymorphisme ne rentre pas en contradiction avec le principe de clean code (pas de mutation) ?
Si tu modifie une variable extérieure, alors il vaut mieux faire une copie. Par sécurité. Pour le polymorphisme perso je m'en suis jamais servi, pas eu le projet pour. Mais il y a des partisans qui disent que ça peut causer de la confusion sur une grosse codebase (ne plus savoir d'où vient l'objet hérité). Pratique à peser je dirai. ☺️
je vais me regarder plus de vidéo sur l'univers JS, je suis apprenant en reconversion actuellement. J'ai pas trop compris le principe d'immuabilité, faudrait que je reregarde la vidéo ^^
une petite question : en 2023, apprendre les classes pour comprendre le fonctionnement de JS d'accord, mais en pratique peut on s'en passer ? le code modderne utilise des fonctions, react les hook, vuejs 3 des fonctions.. qu'en pensez vous ?
Les classes servent pour regrouper des fonctions similaires. Ça permet de structurer des modules de code, c'est ça qui est intéressant. Après la POO c'est allé plus, mais effectivement plus trop utilisé. Essais d'utiliser des classes JS, tu verras c'est intéressant. 👌
Respectant l'opinion exprimée dans la vidéo, commencer le développement comme professionnel en 2023 n'est pas compliqué, même si le salaire pourrait être légèrement inférieur. L'évolution constante est une réalité et ne devrait pas être considérée comme une barrière, mais plutôt comme une opportunité de se tenir à jour.
Merci pour ce commentaire finement formulé. 😉 Départ avec petites missions au forfait, souvent. Ou petit job CDI/CDD. Même si une solide formation certifiante sera un gros plus.
Bonsoir, Vidéo très interessante. En ce qui concerne l'immutabilité, je pense que ca peut être utile dans certains cas, mais personnellement j'aime bien travailler avec les références des objets. Je pense que si c'est bien géré y'a pas de réel soucis à se faire, néanmoins si le code doit être repris par quelqu'un d'autre derrière ca ne sera pas forcément évident. Et sur des gros projets, si on doit recréer à chaque fois un nouvel objet pour assurer son immutabilité je trouve ca dommage, ca prend de l'espace mémoire de manière inutile qui aurait pu être évité si on gère bien nos références et qu'on est prudent sur ce qu'on fait
@@JulienLucas Ok d'acc, c'est vrai que la façon dont vous l'amenez dans la vidéo laisse penser qu'il faut nécessairement avoir recours à l'immutabilité. Par ailleurs, quand vous évoquez le concept de programmation fonctionnelle, je pense qu'il aurait pu être interessant d'évoquer le fait qu'il s'agisse d'un paradigme de programmation, lors de votre première approche sur ce sujet c'est difficilement perceptible et c'est plus lorsque vous commencez à expliquer qu'il est possible d'avoir recours à de la POO et de la programmtion fonctionnelle qu'on commence à comprendre la nuance ! Sinon la vidéo est vraiment cool :D J'irai voir ce que vous proposez comme autre contenu :D
Salut ! Merci pour la vidéo Top les concepts et bien expliqués 👌 J'ai vu que tu étais dev freelance, Je sais que c'est un peu compliqué et d'ailleurs j'ai l'impression que c'est pour ça que je trouve pas trop d'info mais ce serait intéressant de connaître la productivité d'un freelance Genre créer un dashboard ou reproduire une maquette, créer une API CB de temps ça te prend ?
On sait que la productivité d'un freelance est supérieure à celle d'un salarié. Il est plus soucieux de la satisfaction client. Après je sais pas si j'irai coder un dashboard pour en faire une vidéo RUclips. C'est du boulot. 😉
@@JulienLucas oui je me doute ^^ Le dashboard c'était juste un exemple Le truc auquel je pensais c'était de présenter une feature que tu as fait et détailler un peu le temps que tu as passé dessus pour nous faire une idée
Salut Julien, je commence typescript je me demande si tu pouvais faire une vidéo sur les écriture qu'on utilise le plus en js sous forme de typescript par exemple const app = document.querySelector(selectors: ".app") as HTMLElement un truc du genre. Merci !
euh pour inverser deux valeurs pourquoi ne pas simplement faire ca avec le destructuring? "tableau = [12, -2, 55, 68,80]; [tableau[1], tableau[3]] = [tableau[3], tableau[1]];"
@@Spirit-Templar c'est la solution scalable. C'est beaucoup plus performant, en terme de run time mais aussi de memoire requise, et le code est plus court/clean/maintainable. Creer une copie du tableau c'est la solution naive qui n'est pas scalable. Et le code est moche.
Ok j'ai pigé en effet ma solution n'est pas scalable. par contre je me demande si il y a vraiment un tableau qui est crée avec ma solution vu qu'on ne nomme aucun tableau ?
le problem c est le “[…array]”. Ca creer une copie, mais si l’objectif c’est de pas modifier l’originale, alors oui c’est bien de faire une copie. Si il y as pas de contrainte c’est plus rapide de modifier sur place
Je suis junior, je m'attendais à des concepts de dingue et là, je suis surpris que des dev pros puissent faire ces erreurs. Par contre javascript n'est pas du tout type à la base
Bonjour, encore une fois vous dites ce qu'il faut faire mais pas comment, des exemples concrets des fois. L'intérêt de la poo ou pokymorphisme ou Heritage...ca reste une video bien faite mais vraiment pour debutants.
Je me demande si les nouveaux concepts de javascript qui sont sortis il ya 8 ans maintenant était très vite compris par les seniors ou si comme les débutants ils se sont grattés la tête
Pour 0.1 + 0.2 !== 0.3 c'est pas qu'en Javascript. Tous les langages de programmation impératifs qui ne reposent pas sur un moteur de calcul formel ont cette imperfection. Tout simplement parce que la représentation binaire, en mémoire, d'un flottant n'est pas faisable directement sur 32bit : Il faut donc ruser et trouver des compromis qui donnent ce résultat. Ce "problème" est donc le même en Python, C, C++, Java, R ... par contre Xcas, utilisé dans géogebra par exemple, lui te donnera une égalité entre 0.3 et 0.1 + 0.2
ce qui est commun a tous les languages c'est que representer des entiers avec un format de float c'est la merde. La specificite de js c'est que y a que un seul type de literal pour les nombres, et c'est un float64. Tous les autre languages mainstream ont des types specific pour int et float et donc n'ont pas ce problem si tu utilises des int
Imprécis ce que j'ai dit oui. Var est la seule variable que tu puisses accéder dans une fonction peu importe si elle est imbriquée dans des {}. C'est l'exemple avec var que je montre dans la vidéo.
Beaucoup des concepts dont tu parles ne sont pas propre au Javascript mais à la programmation en général et que tu appliques dans le cadre du JS. Très bonne vidéo cependant.
Pas d'accord sur ton interprétation de la programmation fonctionnelle, ni sur le principe du polymorphisme... Je pense qu'il serait utile de faire un petit erratum pour corriger le tir... Ta communauté appréciera encore plus 😁👍
Non, je suis pas d'accord toi. Il faut pas confondre avec les choses manquantes. SI j'ai besoin de préciser dans une autre vidéo, je le ferai. 🤙 Tu as laissé 3 commentaires. J'en retire 2. Merci à toi,
JavaScript est en intéressant en surface car beaucoup de facilité. Mais pour un dev (pas du « dev web ») bein tu t’aperçoit très vite quand vrai js n’est clairement pas opti et qu’il n’est qu’une grosse usine à gaz. La plupart des gars qui font du js ne connaissent rien au fonctionnement de base d’un système, a l’opti, a la mémoire et j’en passe.. et ça c’est un gros problème car ça ce proclame développeur et dénigre le métier…
C'est peut-être une usine à gaz derrière. Mais il y a pas de remplaçant à JS pour le dev web. Après l'optimisation mémoire et performance, c'est un problématique commune à la programmation en générale. Dont tous les devs devraient se soucier. Tu as bien raison. 😄
Super vidéo! Toutefois pas sur d'être tout à fait d'accord avec ta vision de la programmation fonctionnelle -> fr.wikipedia.org/wiki/Programmation_fonctionnelle
Bonjour Julien,
Je te suis depuis maintenant assez longtemps, je l'avoue et je regarde quasiment toutes tes vidéos avec toujours grand intérêt. J'ai un parcours scolaire assez chaotique, j'ai commencé à apprendre le développement quand j'avais encore 11-12ans et maintenant que je me retrouve en études supérieurs, j'ai eu ma première année en étant major de promo, mais depuis, impossible de passer ma deuxième année. Je m'ennuie à mourir pendant les cours, et j'ai toujours voulu me lancer un peu tout seul. Maintenant, voilà, je maitrise les compétences que tu liste ici, peut-être avec quelques lacunes car personne n'est parfait, mais disons que j'essaie de me débrouiller, de toujours optimiser et de rendre le code le plus lisible et accessible possible. Je touche à énormément de langages différents, mais je tiens en horreur, je dis bien en horreur, le CSS. Je suis capable de gérer un backend tout seul (J'ai réussi à me faire embaucher en tant que responsable de pôle R&D en CDI pendant un temps dans une petite entreprise avant de partir à cause de problèmes en interne), mais alors le frontend...
Très honnêtement, je ne sais pas quoi faire. Je voudrais me lancer sur Fiverr, mais que proposer ? Qu'est-ce que je peux mettre en avant qui me donnerait une légitimité face à un autre ? L'année prochaine, je re-tente une deuxième année, mais c'est la dernière chance, et j'avoue que j'aimerais bien avoir de l'argent car ça fait déjà 3 ans de "mis à la poubelle" pour ma famille, et aussi car j'ai envie de passer au dessus de l'ennui des cours etc.
C'est un peu sans filtre, mais cette situation me ronge pas mal, et j'hésite depuis un moment à te poser la question.
Merci de m'avoir lu si tu l'as fais,
Excellente journée à qui lira ce commentaire.
Charles.
Hello Charles,
J'aime bien ton histoire du coup je te fais une réponse. J'ai 15 ans d'XP dans le dev.
Déjà, premier conseil, c'est toujours mieux de finir tes études, mais ça tu dois t'en douter. Ça facilitera ton entrée sur le marché du travail, pour au moins les 5 premières années.
Maintenant, dans le cas contraire, on peut aussi faire son chemin dans le dev sans diplôme.
Pour trouver un job quand on a pas d'XP, il faut finir de se former, et en apporter la preuve, et ça la seule façon c'est de faire des projets persos.
Le top est de trouver un truc un peu original, et d'aller carrément au bout, tu sors un petit site et tu essaies de trouver des utilisateurs, c'est la meilleure approche parce que tu vas t'approprier le projet et avoir envie de le peaufiner au top, c'est plus motivant.
Sinon, tu peux faire un copie d'un truc qui existe, spotify, réseau social, eCommerce, blog, ce que tu veux. Tu choisis une stack bien recherchée genre Next + Mysql + Express, le tout en typescript, et tu codes un truc qui bute le plus possible.
Ensuite tu te fais un petit portfolio et tu mets le lien dedans avec des images.
Si c'est juste un projet lambda, tu mets tout le code sur github, et tu mets ça aussi en accès public.
Ce projet sera ta carte de visite. Tu vas apprendre énormément en le codant, et tu pourras mettre de vrai ref de tech dans ton CV.
Pour ton aversion pour le CSS, on a tous un truc sur lequel on bloque un peu plus, le CSS est une logique un peu différente, et demande surtout du temps pour être maîtrisé. Si tu en fais tous les jours au boulot, tu finis par intégrer la logique. Maintenant si ça te saoule, utilise tailwind, ça simplifie le problème, et c'est une très bonne ref sur un CV.
ruclips.net/video/_IwMAUbc2tA/видео.html
Bonjour,
je me permets de commenter parce que pour une vidéo qui parle de maîtriser le JS, il y a des approximations voir des erreurs qui ne sont pas acceptables.
* Tout d'abord, dans la partie "l'univers Javascript et ses défauts" vous dîtes que "les variables primitives existent qu'une seul fois en mémoire", j'émets un gros doute vis à vis de cette affirmation, je n'ai pas pu trouver de ressource la confirmant ou la contredisant. Ça me paraîtrait aberrant pour un interpréteur JS qu'à chaque fois que l'on affecte une valeur, celui ci parcours sa mémoire à la recherche de la donnée, que si il ne la trouve pas, il l'a stocke, puis l'index (pour accélérer la recherche). Le gain de mémoire versus la perte de rapidité ne serait pas du tout intéressant (QUID des probabilités d'apparition multiple d'une même primitive à un instant T d'un programme ?). De plus, les spécifications EcmaScript ne disent pas réellement comment les moteurs JS doivent être implémentés mais plutôt comment le langage doit réagir quand on l'utilise. Par contre, il aurait été plus pertinent de dire que les objets sont affectés ou passés en paramètre par référence et qu'à l'inverse les primitives sont affectées ou passées en paramètre par copie! (Concept à connaître très important dans tous les langages!!!)
* Ensuite, dans la partie "Savoir trier simplements un Array ou un Objet", à aucun moment vous parler de trie, sur les tableaux, il existe une méthode "sort" qui fait très bien le taf (Qui doit sûrement être une implémentation de l'algorithme QuickSort...). Il n'y a donc pas besoin d'implémenter soit même une fonction de trie. Quand à votre fonction permettant d'échanger la place de deux valeurs, je suis désolé mais elle ne fait rien parce que vous recopié le tableau au tout début de votre fonction, vous ne travailler donc pas sur l'instance du tableau que vous avez passé en paramètre. Si c'est réellement le but de ne pas modifier les données passées via paramètre, il aurait fallu au moins retourner la nouvelle instance du tableau en fin de fonction. Ensuite, la solution proposé via l'utilisation du splice me parait fonctionnelle, elle est cependant un peu compliqué pour ce que vous souhaitez faire. Un simple :
const tmpValue = newArray[newIndex];
newArray[newIndex] = newArray[oldIndex];
newArray[oldIndex] = tmpValue;
aurait suffit. Tout le monde comprend directement ce que l'on fait et en plus la solution est plus efficace que l'utilisation du splice!
* Dans la partie "Les classes et la programmations orientée objet", vous dites que l'on peut créer des classes statiques. Désolé mais non, les classes statiques n'existent pas en JS. Une classe statique est une classe dont tous les membres sont statiques et que l'on ne peut pas instancier. Hors même si on met tous les membres en statiques dans une classe, rien n'empêche de quand même l'instancier.
* Dans la partie "L'héritage des objets et le polymorphing", c'est ici que vous faites les plus grosses erreurs. Tout d'abord l'héritage, vous dites que c'est fait pour importer des membres au sein d'une autre classe, et que donc cette import est la CAUSE du choix de l'héritage. Hors, en terme de conception logiciel, il s'agit d'une grosse erreur. On ne devrait jamais utiliser l'héritage parce que l'on veut récupérer des membres d'une autre classe. En effet, le fait de récupérer les membres d'une autre classe doit être une CONSÉQUENCE! Le fait de choisir si une classe B hérite d'une classe A, c'est parce que le concept défini par la classe A correspond aussi à la classe B. Un exemple, si je défini une classe "Vehicule" qui contient une méthode "deplacer", je peux très bien créer une classe "Bateau" qui hérite de "Vehciule", ou encore "Avion" qui hérite de "Vehicule" car les deux sont des véhicules, par conséquence les deux classes posséderont la méthode "déplacer". Cependant, si je veux aussi avoir une classe "Personne" que je veux aussi pouvoir "déplacer", en aucun cas je dois la faire hériter de "Vehciule". Ça pourrait peut être fonctionner mais sur le long terme, vous pouvez être sur que votre programme va finir en usine à gaz.
* Dans cette même partie, vous dites que le "polymorphing" permet de modifier une méthode au sein d'une classe, ce que vous faites plus tard mais on va y revenir. Alors, je ne suis pas sur de bien comprendre ce que vous tentez d'expliquer. Il existe plusieurs forme de polymorphisme (polymorphism en anglais). Mais, quand on parle de polymorphisme en POO, on parle qu'une même méthode au sein de classes différentes (méthode avec le même nom et le même prototype) n'exécute pas le même code mais pour la même finalité (celui de la fonction). Si on reprend l'exemple plus haut de la méthode "deplacer" dans les classes "Bateau" et "Avion", le corps de la méthode "deplacer" dans la classe "Bateau" contiendrait des instructions pour le faire naviguer sur l'eau alors que le corps de la méthode "deplacer" dans la classe "Avion" contiendrait des instructions pour le faire voler. Dans les deux cas, notre véhicule se déplace mais pas de la même façon. C'est simplement ça le principe de polymorphisme en POO!
* Dans cette même partie, vous voulez donner un exemple de polymorphisme en venant modifier le prototype de la classe MegaStar. NON, ce n'est pas du polymorphisme, vous êtes juste venu modifier la définition de la classe MegaStar. Si vous travaillez avec des classes JS, vous ne devez jamais venir modifier le prototype de cette classe. En effet, à l'origine, JS n'était pas un langage objet, il s'agissait d'un langage basé sur les prototypes, il n'y avait pas de classe (il y a une certaine ressemblance entre les deux concepts mais ce n'est pas la même chose). Ce n'est que depuis la norme ES2015 que les classes sont apparues! Beaucoup de devs utilisaient des mécaniques permettant de faire de la POO en utilisant des librairies alternatives qui s'appuyaient elle même sur les prototype, ils ont fini par intégrer ses mécaniques de classes en natif (mais elle s'appuie quand même sur les prototypes). En faisant ce que vous avez fait avec le prototype, vous avez juste modifier la méthode directement dans la définition de la classe. Tous les objets qui instancient cette classe ont donc vu leur méthode "getDetails" modifiée. Si vous souhaitez réellement que la méthode "getDetails" renvoie le nom plutôt que le prénom autant l'écrire directement dans la définition de la classe. Ça évitera à vos collèges qui viennent maintenir votre code de se tirer les cheveux parce qu'ils ne comprennent pas pourquoi votre classe qui défini une fonction, n'a pas le même comportement que celui marqué dans la définition de la classe!
* Si vous voulez aller plus loin en ce qui concerne les prototypes, et les mécaniques de classe et d'héritage, je vous conseil fortement de vous intéresser au principe de chaîne de prototype en JS.
Quelles resources recommanderiez-vous pour apprendre en profondeur le JS ? (livres, auteurs, youtubeurs, etc.....)
Je +1 ton commentaire.
Beaucoup d'approximations.
@user-no7oc1dc3u par rapport à ce message : "Si vous voulez aller plus loin en ce qui concerne les prototypes, et les mécaniques de classe et d'héritage, je vous conseil fortement de vous intéresser au principe de chaîne de prototype en JS."
À qui vous adressez-vous?
@@remix2die4 Je suis désolé, je viens d'une formation diplômante et mes références, c'est les études que j'ai faites. On m'a d'abord appris l'algorithmie, différentes méthodologies de conception logiciels, le fonctionnement d'un ordinateur, d'un SGBD, des protocoles, des bonnes pratiques, de la sécurité, etc. Après, je suis quelqu'un de curieux, je me suis formé aussi à coté tout seul. J'ai appris aussi des personnes qui m'entouraient au travail ! Je suis resté critique vis à vis de ce que l'on me dit! En cas de doute, je vais vérifier une information en croisant les sources. Mais si j'ai pu faire ça, c'est grâce au connaissance de base : l'algorithmie, la conception logiciel et surtout de la curiosité. Quand on a les bases, et de la culture informatiques, apprendre un nouveau langage, ça se fait très vite, on retrouve quasiment toujours les mêmes fonctionnalités dans tous les langages, c'est surtout de la syntaxe qui change, mais ça va vite !!!!
Je n'ai malheureusement pas de ressources à vous conseiller particulièrement, je vous conseillerai plutôt d'aller voir à différents endroits afin de croiser les sources histoires d'être certains que ce que dit la personne qui a écrit un livre, que c'elle qui à un écrit un article, que c'elle qui a tourné une vidéo, que ce que l'on vous a dit est vrai et n'est pas déformé voir faux ! Après, les sciences de l'information ce n'est pas une science pur! Ce n'est pas parce que quelqu'un dit qu'il faut faire comme ça que c'est forcément vrai ! C'est beaucoup d'expérimentation et de retour d'expérience. Voir ce qui marche, et voir ce qui ne marche pas. Ce faire son expérience ! Et pour ce faire son expérience, il faut tester et pratiquer !
A la rigueur, un gars qui me parait assez sérieux dans ce qu'il dit, qui se tient assez informé des nouveautés autour des technologies de l'information, et qui a pas mal de contenu à proposer, ça serait Grafikart. Mais comme je disais plus haut, il ne faut pas hésiter à aller voir ailleurs !
@@JulienLucas, avec tout le respect que je vous dois, à vous ! Je ne suis pas certains, d'après votre démonstration, que vous comprenez bien ce que vous faites quand vous venez modifier le prototype de la classe MegaStar!
Je suis content que tu sois plus régulier qu'avant, honnêtement tu fais de très bonnes vidéos, très intéressantes et qui sortent des tutoriels pour débutant
Un grand merci à toi. Je suis relativement satisfait de ma vulgarisation. 😀 Il y a des concepts avancés dedans aussi.
ruclips.net/video/_IwMAUbc2tA/видео.html
triller 😂 première fois que je le vois écris comme ça, sinon excellent comme d’hab
Salut Julien, je suis débutant en reconversion, merci pour ton partage, c'est précieux de trouver des contenus comme celui que tu proposes, je m'abonne, je trouverais certainement d'autres choses qui pourront me servir ! Et y'en a un paquet haha !
Ce que je pourrais ajouter de ma petite expérience c'est de maîtriser la programmation asynchrone (asynchrone/await). Je dirais même que c'est capital pour tirer autant que possible de sa puissance.
JS est un langage single-threaded il ne bénéficie pas des avantages des langages multithreadé. Mais il les mime un event-loop.
Alors la programmation asynchrones permettra d'écrire des programmes non-bloquant au besoin, et ainsi dans certaines situations exécuter plusieurs instructions indépendants simultanément (avec Promise.all(), Promise.race(), Promise.any() et Promise.allSettled()).
Ceci demeure encore plus vrai lorsqu'on utilise JS pour front-end (navigateurs). La manipulation du DOM est assez coûteuse et peut conduire à un gel de l'interface si c'est mal géré (langage single-threaded). L'utilisation des outils asynchrones (Promises, setInterval(), setTimeout()) sont à privilégier.
Comme dit dans la vidéo, JS est un langage ouvert et permissif , ce qui en fait un force (barrière d'entrée basse) mais également une faiblesse si tous les concepts mentionnés dans la vidéo ne sont pas pris en compte. Avec JavaScript l'enfer et paradis ont la même adresse.
Je proposerais dans la mesure du possible d'utiliser TypeScript afin d'avoir une couche de rigueur sur certains de ces aspects afin de limiter les effets indésirables.
Enfin, avant d'écrire une fonction complexe qui peut vous prendre de sacrés minutes ou heures, rassurez vous qu'elle n'existe pas déjà dans la Doc. Mine de rien JS (et Python) sont des langages tellement bien fournis en bibliothèque standard que pour certains aspects vous n'aurez même pas besoin de plugins ou d'écrire vous même certaines fonctions.
Je viens de découvrir la chaîne et elle tombe à point, j'ai besoin d'apprendre Javascript pour un projet perso et rien sur cette vidéo j'ai pu m'engloutir quelques chinoiseries sans m'ennuyer une seconde (jolie rythme côté montage ^^). J'ai fait un peu de script en bash il y a quelques années lorsque je faisait mumuse sous Debian mais rien de folichon & ce type de vidéo qui va à l'essentiel est rassurant mais surtout motivant. Je m'en vais dévorer le tuto d'1h illico. Merci bien & bonne continuation ^^
Très bon à savoir moi qui me concentre totalement en javascript actuellement
Des révisions qui ne font pas de mal... et des découvertes. Merci. Je suis développeur back mais j'utilise souvent JS et pas forcément toujours de la bonne manière apparemment. Je vais vous suivre de plus près maintenant 😅
Merci pour ton com. 😉
ruclips.net/video/_IwMAUbc2tA/видео.html
La blague de Dave était si inattendue que j'ai explosé de rire. Merci !
Tu m'as vraiment aidé à m'informer merci bien.
Très bon contenu pour débutant et professionnel. C’est ma première vidéo, et je suis déjà au ange. J’espère en apprendre davantage sur votre chaîne.
je ne commente pas souvent j'ai beaucoup apprecier franchement tres bonne video merci
excellent sujet, merci beaucoup 👍
👋 Hello, super vidéo ! Très intéressante et agréable à écouter ! 😄
De mon côté, je me demande pourquoi je n'ai jamais jeté un œil à JS. En ce moment, je commence à m'y plonger. Cela fait déjà 4 ans que je fais du développement par passion (pas pour le boulot), et j'ai appris en autodidacte plusieurs langages : C++, C#, F# (qui, au fait, personne ne connaît 😂), Java, PHP, et Kotlin. Eh oui, vous l'avez bien vu, pas de Python ni de JS dans le lot. Pourquoi ? Parce que je les trouvais trop "basiques/simplet" 🤦♂ au niveau de la syntaxe. À 15 ans (j'en ai maintenant 23), j'ai commencé avec le dev sur : Java et C++, et j'en ai chier.. vraiment.. Surtout si tu te sent concerner ou pas d'ailleurs, lis ce texte ou je partage des connaissances et informations, qui aurait changer beaucoup de choses si j'étais tomber dessus il y a maintenant 8 ans... et qui vont juste te demander 5 minutes de lectures ⭐😁
1 ) Mais voilà récemment, j'ai pris la décision de me reconvertir professionnelement, pour exercer ma passion (du moins on croise les doigts 😂). Et devinez quoi ? Je suis maintenant obligé de plonger dans JS et Python, car c'est la base comme tous le monde le dit ou en parle....(flemme..)
2 ) Et devinez quoi encore ? Vous avez raison ! 😭 Surtout, ne faites pas la même erreur que moi (je n'ai eu personne pour me guider, ni de près ni de loin...). JS, c'est incroyable. On peut commencer rapidement et aller très loin. Et oui, c'est "basique/simplet" au niveau de la syntaxe et ca peut etre brouillon car peu de choses imposer par le langage de bases, mais qu'est ce que c'est facile, fluide a prendre en main et oui.. c'est le top pour débuter!
Qu'on le veuille ou non, il est moins exigeant et plus accessible que tout ce que j'ai appris avant...(ou il m'as fallu parfois des semaines a comprendre la gestions de dépendances complexe a n'en plus pouvoir, pour que apres 2-3 semaines de taff apres les cours, j'arrivais enfin a executer ma premiere fonction.. qui me permettais de !!! (calculer la somme de 2 entier et l'afficher en format text...)
(Je réalise maintenant que j'ai gaspillé tellement de TEMPS à me lancer dans des paradigmes trop complexes...)
3 ) Si vous ne connaissez pas les langages que j'ai cités (tant mieux pour vous, d'une certaine façon), imaginez que pour faire le moindre script de traitement de fichier texte, il fallait déjà maîtriser des concepts comme le polymorphisme, les objets, les classes, les itérations, les namespaces (faciles à comprendre, mais sans réel intérêt, et des galére en C# à la compilation), les instanciations, et la gestion de la mémoire cache. Bref, tout cela devait être connu par cœur...
3 ) Alors oui, même si je suis toujours passionné par C#, qui évolue à un rythme effréné (surtout avec C# v12 et son intégration .NET 8), il est temps de reconnaître que JS est une porte d'entrée fantastique. C'est simple, natif (pas de frameworks à apprendre à chaque fois comme JS 😂!!), et à la compilation, votre code peut être exécuté PARTOUT : Web, SysAdmin, iOS, Android, Windows, Linux, RASPBERRY PI, et même sur tous les objets connectés qui nous entourent !
C'est vrai, SANS CHANGER 1 LIGNE DE CODE d'un appareil à l'autre !
Plus besoin d'apprendre de nouvelles syntaxes pour chaque plateforme. Le compilateur s'en charge pour vous. C'est la beauté de la compilation C# 12 .NET 8. 🚀
En conclusion, commencez avec JS/Python (JS est recommandé pour sa simplicité et scalabilité, et as plus de point commun avec les nouvelles technologie), puis, prenez un moment pour explorer l'actualité de C# et du développement chez Microsoft. Microsoft est en train de bouleverser le monde du développement, et c'est passionnant (pour moi en tout cas 😁❤).
Mais retenez bien : NE FAITES PAS COMME MOI en commençant par des choses compliquées. Jetez un œil à C#, car, après avoir maîtrisé JS, vous verrez que C# est beaucoup plus abordable, avec moins de documentation complexe à suivre. Heureusement, le langage a beaucoup évolué et est bien plus simple qu'il y a seulement un an. Aujourd'hui, vous pouvez écrire : var x = 42; console.Write(x); [Résultat : La console affiche 42 !]. C'est devenu tellement logique, non ?!
Il y a à peine un an, il fallait créer une classe, la méthode associée, et importer des tonnes de "using System.*****" au début de chaque fichier. Mais les performances étaient toujours au rendez-vous ! Parfois jusqu'à 10 fois plus performant que JS sur un projet de taille moyenne, comme un e-commerce local. Et plus le projet est gros, plus ça brille !
Donc voilà, si vous êtes toujours là pour lire... bravo, vous avez de la persévérance, mon ami ! Et sachez que, personnellement, dès que j'ai commencé à m'amuser avec JS, tout a coulé de source. Vous ouvrez la console sur Chrome/Edge, et vous pouvez déjà commencer à coder !
Gardez un œil sur l'actualité de C#, et quand vous vous y intéresserez, vous aurez la chance de profiter des dernières nouveautés, grâce à votre expérience avec JS. Pas besoin d'efforts démesurés ni de temps mental (loin de l'époque du .NET Framework 4 et des Windows Forms... nous avons bien avancé en termes d'évolutions et d'améliorations, en très peu de temps, là où JS n'a pas beaucoup évolué malgré ses 27 ans d'existence sur le terrain 😂).
Voilà, j'ai terminé. Bon, franchement, je doute que quelqu'un lira tout ça, mais si cela peut aider ne serait-ce qu'une personne à ne pas perdre son temps comme moi ou à jeter un coup d'œil à C# grâce à ce message qui m'a pris 50 minutes à écrire, alors je serais déjà super content. Je l'ai rédigé comme si je pouvais remonter le temps, afin que ce message puisse sauver des semaines voire des mois de travail à quelqu'un, car personne ne m'a expliqué tout cela...
Bonne journée/soirée/matinée, et peut-être à bientôt sur les forums Microsoft C# (parce que la communauté française n'est pas encore assez présente là-bas 😭😭) !
PS : Pour C#, je vous recommande ses créateurs, qui vous feront gagner du temps, croyez-moi !! (Et merci pour leur travail fourni ❤) ⇒
J'ai lu jusqu'au bout 😊
C'était top, merci pour le taff!
Merci pour ce commentaire! ☺️ C'est du taf. Et pour ceux qui veulent aller plus loin, il y a des courses de 32heures.
Vidéo utilissime
Excellence vidéo, j'ai appris beaucoup de choses grâce à toi. J'ai une suggestion concernant l'asynchrone: la librairie rxjs qui est notamment très utilisée avec Angular et qui permet d'utiliser des Observables (je suis junior, n'hésite pas à me corriger si je fais une confusion)
Merci pour cette vidéo, c'est la première que je regarde de cette chaine et elle me sera bien utile pour bien débuter avec ce langage =)
ruclips.net/video/_IwMAUbc2tA/видео.html
L'envie est là, la clarté des explications pas forcément mais c'est comme le code ça s'apprend et ça ne se fait pas d'un claquement de doigts.
Continue sur ta lancée et ne perds pas trop de temps avec les débats en com', on sait que ton avis n'engage que toi ! Courage pour la suite 😉
Génial, heureusement que tu es là avec ton avis et tes conseils. 👌 Tu devrais ouvrir une chaîne RUclips pour donner des conseils aux RUclipsrs.
@@JulienLucas Je ne voulais absolument pas t'offenser en disant cela. Je pense que créer du contenu prend du temps et les conseils que tu donnes sont issus de ton expérience personnelle, donc subjectifs, mais il n'y a pas de mal à ça !
Après, si tu revisionnes ta vidéo, tu te rendras surement compte qu'il y a des passages où les explications/éclaircissements que tu donnes ne sont pas éloquents. Et ça arrive même a des formateurs professionnels !
Désolé que tu l'aies mal pris. Néanmoins, je renouvelle sincèrement mes encouragements pour la suite.
Hello Julien. Peux-tu expliquer en quoi utiliser .map()/.filter() serait un problème (10:17) ? Ça fait quelques années (depuis l'arrivée des linters, de webpack et des builds) qu'on nous vend le "clean code" comme LE truc à garder en tête quand on dev et que l'énorme majorité des équipes préfèrent ça à des lignes inutiles.
ruclips.net/video/_IwMAUbc2tA/видео.html
Très utile, Merci.
Il faut quand même noter qu'aujourdh'ui la POO et les classes se font très rares en JS.
Si on fait du front, on se retrouve à faire du React, de l'Angular, du Svelte, Du NextJS, du Solid, etc. Ces frameworks n'utilisent pas de classes (sauf Angular mais même dans ce cas c'est une utilisation très limitée des classes) . Je me retrouve sur des projets en React ou NextJS dans lesquels le mot clé "class" n'est même pas présent une seule fois (car ce n'est pas du tout la philosophie de ces frameworks).
Si on fait du back en NodeJS on peut se retrouver à manipuler un peu plus de classes notamment avec des ORMs mais là aussi c'est une utilisation assez limitée des classes vu que dans la plupart du temps elles servent juste à définir des entités.
La POO sur tout un projet j'en ai jamais vu effectivement. Ça date comme paradigme.
Mais on peut trouver quelque modules codés en POO.
C'est quand même bon d'avoir quelque notions. 😉
Les classes en javascript sont des functions avec des prototypes. La notions de class est différente dans ce contexte, c'est juste un choix stylistique.
Ta video ma decouragé de me lancer dans la programation, c quoi ce charabia, j’arrive pas a comprendre l’utilité, ou sa nous mène. Hors mis les function qui sont des boutons, et tout ce qui est en rapport avec html
Franchement tes vids sont uniques bravo
J'ai aime ta video, perso je veux etre expert en js ... j'ai une longue experience en prog mais debutant a intermediaire en js
quels conseils ou livres ou meme tutos me conseiller de suivre
je trouve parfois des cours qui donnet souvent les bases , le pire ils donnent des solutions sans preciser pourquoi telle solution vs autre ... je trouve ca desolant pour ceux qui pretendent etre des maitres en la matiere
Mille merci
Sympa ta video,
Petite remarque sur le async/await: Le ".then" n'est pas un truc d'avant. Il est encore trés utile selon les cas. Le "await" par définition, attend la résolution de la requete pour continuer, ce qui bloque le processus, contrairement au .then
Desfois nous ne voulons pas bloquer le processus, desfois si.
L'usage du .then et du await sont différents, et utilisé au sein d'un meme projet régulierement.
On est pas d'accord alors. 🙂
Il faut quand même attendre la fin du processus avec .then(). La promesse then() s'exécute seulement s'il y a requête effectuée avec succès.
Par contre il y a le finally() depuis quelque années. Qu'on peut exécuter à la fin peu importe le succès ou l'échec.
@@JulienLucas IMHO ce qu'il veut dire c'est que dans le flux d'éxécition de ton code, ce qu'il y a dans le then est asynchrone par rapport a ce qu'il y a juste après lui, alors qu'avec async/await, ta promesses attendra avant de continuer les lignes d'instructions. 🤔
.then/.catch
console.log('BEFORE THE READFILE CONTENT');
readFile('test.txt', { encoding: 'utf8' })
.then(console.log)
.catch(console.error);
console.log('BEFORE THE READFILE CONTENT');
Result:
BEFORE THE READFILE CONTENT
BEFORE THE READFILE CONTENT
MY FILE CONTENT
(async () => {
console.log('BEFORE THE READFILE CONTENT');
console.log(await readFile('test.txt', { encoding: 'utf8' }));
console.log('AFTER THE READFILE CONTENT');
})();
Result:
BEFORE THE READFILE CONTENT
MY FILE CONTENT
AFTER THE READFILE CONTENT
@dieu930 a raison le mot clef await et l'utilisation de then ou catch c'est 2 use case différent. On ne peut pas dire que c'est plus propres ou moins propres
Je pense qu'il y a eu confusion dans les propos de @JulienLucas, car en effet tu as raison, non seulement "then" est encore d'actualité, mais en plus on peut combiner les deux, au sein d'un même programme dans certaines situations, selon ce que l'on recherche comme comportement.
Merci bonne vidéo.
je me suis abonne direct
Merci pour ces précieux conseils
J'ai adoré. Mais ça fait 6 mois que je travaille tous les jours avec JS et "écosystème" ( react,Next, Prisma, meme Astro 😅) je commence à aimer . Mais j'ai un truc a dire PHP c'est la vie ajajaha et non je parle pas de symfony . Merci pour la vidéo ;)
+1abonné
une très bonne vidéo julien
, Merci
Merci, pour tes compétences
beaucoup d'approximation dans cette vidéo, et au fond on n'y apprend pas grand chose.
Merci de tes conseils d'expert ! Très bonne vidéo, je ne comprend pas le peu de succès que tu as. très
je pense que ton heure viendra, j'en suis persuadé.
PS: à mon humble avis tu devrait réduire les bruits de clavier durant les démonstrations de code !
Merci beaucoup pour ton com. Yes j'aimerai avoir plus d'audience. Mais d'abord faire des vidéos à forte valeur ajoutée.
Si c'était facile de faire beaucoup d'audience RUclips tout le monde le ferait. 😊
franchement génial merci :)
Merci à toi. 😉
J'aurai aimé que tu abordes (pas forcément longtemps) le concept de TypeScript qui supprime énormément de défauts à JavaScript
Yes, pas inintéressant. TS aurait pu avoir un petite place dans cette vidéo.
Mais qui sait, ensuite on m'aurait dit que j'ai pas assez détaillé TS. 🤭
@@JulienLucas Hélas dans le monde du dev y'aura toujours un milliard de moyen de faire la même chose
ruclips.net/video/_IwMAUbc2tA/видео.html
Je comprends pas pourquoi tu donnes l'exemple du 0.1 +0.2===0.3?
C'est un problème qui touche tous les langages comme le C ou le python. 😶
Il aurait peut-être aussi été intéressant de parler de Typescript, qui vient solidifier JS. Merci pour ces vidéos.
ruclips.net/video/_IwMAUbc2tA/видео.html
Merci pour cette vidéo . Juste une question ; j'ai vu que la methode __proto-- était déconseillée , et qu'il fallait privilégier Obectj.create(). Tu es d'accord, ou bien ça se discute? merci de me donner ton avis . cordialement
Eh bien tu vois j'ai jamais beaucoup utilisé l'héritage. 😉
Pas fonctionnel systématiquement _proto_ apparement. Déprécié.
Bon vu tout ce que tu nous donne je laisse un petit comm et un like, j'ai jamais liker jamais commenter même si tes vidéo était incroyable (pour moi) parce que je voulais garder la chaine private, mais tu le mérite alors bon courage et continue comme ca, tes un boss !
Merci à toi. Où va le monde si on like pas les vidéos qu'on aime.
Hello, si tu sais que dans ta fonction tu n'utilise pas de fonctions mutables, est-ce nécessaire de créer une copie de l'array en question (pour faire echo à l'exemple que t'as donné dans cette vidéo) ?
Le fait de faire du polymorphisme ne rentre pas en contradiction avec le principe de clean code (pas de mutation) ?
Si tu modifie une variable extérieure, alors il vaut mieux faire une copie. Par sécurité.
Pour le polymorphisme perso je m'en suis jamais servi, pas eu le projet pour. Mais il y a des partisans qui disent que ça peut causer de la confusion sur une grosse codebase (ne plus savoir d'où vient l'objet hérité).
Pratique à peser je dirai. ☺️
@@JulienLucas Merci pour le retour 😊
je vais me regarder plus de vidéo sur l'univers JS, je suis apprenant en reconversion actuellement.
J'ai pas trop compris le principe d'immuabilité, faudrait que je reregarde la vidéo ^^
Yes normal, on peut pas tout acquérir dès le début. L'important c'est de savoir quoi savoir. 🤙
une petite question : en 2023, apprendre les classes pour comprendre le fonctionnement de JS d'accord, mais en pratique peut on s'en passer ? le code modderne utilise des fonctions, react les hook, vuejs 3 des fonctions.. qu'en pensez vous ?
Les classes servent pour regrouper des fonctions similaires. Ça permet de structurer des modules de code, c'est ça qui est intéressant.
Après la POO c'est allé plus, mais effectivement plus trop utilisé.
Essais d'utiliser des classes JS, tu verras c'est intéressant. 👌
Merci !
Respectant l'opinion exprimée dans la vidéo, commencer le développement comme professionnel en 2023 n'est pas compliqué, même si le salaire pourrait être légèrement inférieur.
L'évolution constante est une réalité et ne devrait pas être considérée comme une barrière, mais plutôt comme une opportunité de se tenir à jour.
Merci pour ce commentaire finement formulé. 😉
Départ avec petites missions au forfait, souvent. Ou petit job CDI/CDD. Même si une solide formation certifiante sera un gros plus.
Bonsoir,
Vidéo très interessante.
En ce qui concerne l'immutabilité, je pense que ca peut être utile dans certains cas, mais personnellement j'aime bien travailler avec les références des objets.
Je pense que si c'est bien géré y'a pas de réel soucis à se faire, néanmoins si le code doit être repris par quelqu'un d'autre derrière ca ne sera pas forcément évident.
Et sur des gros projets, si on doit recréer à chaque fois un nouvel objet pour assurer son immutabilité je trouve ca dommage, ca prend de l'espace mémoire de manière inutile qui aurait pu être évité si on gère bien nos références et qu'on est prudent sur ce qu'on fait
Yes, on devrait surtout utiliser une fonction pure quand on a un doute. Ou quand la fonction est complexe. 😊
@@JulienLucas Ok d'acc, c'est vrai que la façon dont vous l'amenez dans la vidéo laisse penser qu'il faut nécessairement avoir recours à l'immutabilité.
Par ailleurs, quand vous évoquez le concept de programmation fonctionnelle, je pense qu'il aurait pu être interessant d'évoquer le fait qu'il s'agisse d'un paradigme de programmation, lors de votre première approche sur ce sujet c'est difficilement perceptible et c'est plus lorsque vous commencez à expliquer qu'il est possible d'avoir recours à de la POO et de la programmtion fonctionnelle qu'on commence à comprendre la nuance !
Sinon la vidéo est vraiment cool :D
J'irai voir ce que vous proposez comme autre contenu :D
Salut ! Merci pour la vidéo
Top les concepts et bien expliqués 👌
J'ai vu que tu étais dev freelance,
Je sais que c'est un peu compliqué et d'ailleurs j'ai l'impression que c'est pour ça que je trouve pas trop d'info mais ce serait intéressant de connaître la productivité d'un freelance
Genre créer un dashboard ou reproduire une maquette, créer une API
CB de temps ça te prend ?
On sait que la productivité d'un freelance est supérieure à celle d'un salarié. Il est plus soucieux de la satisfaction client.
Après je sais pas si j'irai coder un dashboard pour en faire une vidéo RUclips. C'est du boulot. 😉
@@JulienLucas oui je me doute ^^
Le dashboard c'était juste un exemple
Le truc auquel je pensais c'était de présenter une feature que tu as fait et détailler un peu le temps que tu as passé dessus pour nous faire une idée
Salut Julien, je commence typescript je me demande si tu pouvais faire une vidéo sur les écriture qu'on utilise le plus en js sous forme de typescript par exemple const app = document.querySelector(selectors: ".app") as HTMLElement un truc du genre. Merci !
ruclips.net/video/_IwMAUbc2tA/видео.html
euh pour inverser deux valeurs pourquoi ne pas simplement faire ca avec le destructuring? "tableau = [12, -2, 55, 68,80];
[tableau[1], tableau[3]] = [tableau[3], tableau[1]];"
C'est pas scalable 😉
@@Spirit-Templar c'est la solution scalable. C'est beaucoup plus performant, en terme de run time mais aussi de memoire requise, et le code est plus court/clean/maintainable. Creer une copie du tableau c'est la solution naive qui n'est pas scalable. Et le code est moche.
@@Spirit-Templar pourrais tu m’en dire un peu plus stp ? (Juste une piste je chercherai)
Ok j'ai pigé en effet ma solution n'est pas scalable. par contre je me demande si il y a vraiment un tableau qui est crée avec ma solution vu qu'on ne nomme aucun tableau ?
le problem c est le “[…array]”. Ca creer une copie, mais si l’objectif c’est de pas modifier l’originale, alors oui c’est bien de faire une copie. Si il y as pas de contrainte c’est plus rapide de modifier sur place
Merci
Je suis junior,
je m'attendais à des concepts de dingue et là,
je suis surpris que des dev pros puissent faire ces erreurs.
Par contre javascript n'est pas du tout type à la base
Bonjour, encore une fois vous dites ce qu'il faut faire mais pas comment, des exemples concrets des fois.
L'intérêt de la poo ou pokymorphisme ou Heritage...ca reste une video bien faite mais vraiment pour debutants.
Je me demande si les nouveaux concepts de javascript qui sont sortis il ya 8 ans maintenant était très vite compris par les seniors ou si comme les débutants ils se sont grattés la tête
Il y a des conventions JS à chaque fois, qui présentent les nouvelles fonctionnalités à des devs plus à la page. 😁
Polymorphisme c'est le concept de POO et pas de js???
Pour 0.1 + 0.2 !== 0.3 c'est pas qu'en Javascript. Tous les langages de programmation impératifs qui ne reposent pas sur un moteur de calcul formel ont cette imperfection.
Tout simplement parce que la représentation binaire, en mémoire, d'un flottant n'est pas faisable directement sur 32bit : Il faut donc ruser et trouver des compromis qui donnent ce résultat.
Ce "problème" est donc le même en Python, C, C++, Java, R ... par contre Xcas, utilisé dans géogebra par exemple, lui te donnera une égalité entre 0.3 et 0.1 + 0.2
Intéressant je ne savais pas, merci pour ce complément. J'espère que d'autres le liront. 😊
Merci pour vos explication T'entame des sujets intéressants mais t'accélère trop vite
1:33 oui mais ça c’est commun à tout les langages non ? Pas que de JS
Bonne question.
Possible si c'est lié à la virgule flottante, je ne peux parler que de JS. Haha.🤗
ce qui est commun a tous les languages c'est que representer des entiers avec un format de float c'est la merde. La specificite de js c'est que y a que un seul type de literal pour les nombres, et c'est un float64. Tous les autre languages mainstream ont des types specific pour int et float et donc n'ont pas ce problem si tu utilises des int
Ah d'accord ! Merci pour vos réponses 😊
Moi j’attends toujours la sortie du pipe operator 😢#fonctionalProgramming
15:48 non, `var` ne crée pas une variable sur le scope globale
Imprécis ce que j'ai dit oui.
Var est la seule variable que tu puisses accéder dans une fonction peu importe si elle est imbriquée dans des {}.
C'est l'exemple avec var que je montre dans la vidéo.
Beaucoup des concepts dont tu parles ne sont pas propre au Javascript mais à la programmation en général et que tu appliques dans le cadre du JS.
Très bonne vidéo cependant.
Pas d'accord sur ton interprétation de la programmation fonctionnelle, ni sur le principe du polymorphisme...
Je pense qu'il serait utile de faire un petit erratum pour corriger le tir... Ta communauté appréciera encore plus 😁👍
Non, je suis pas d'accord toi.
Il faut pas confondre avec les choses manquantes. SI j'ai besoin de préciser dans une autre vidéo, je le ferai. 🤙
Tu as laissé 3 commentaires. J'en retire 2.
Merci à toi,
Encore une vidéo avec de la "musique" en bruit de fond. Insupportable.
JavaScript est en intéressant en surface car beaucoup de facilité. Mais pour un dev (pas du « dev web ») bein tu t’aperçoit très vite quand vrai js n’est clairement pas opti et qu’il n’est qu’une grosse usine à gaz. La plupart des gars qui font du js ne connaissent rien au fonctionnement de base d’un système, a l’opti, a la mémoire et j’en passe.. et ça c’est un gros problème car ça ce proclame développeur et dénigre le métier…
C'est peut-être une usine à gaz derrière. Mais il y a pas de remplaçant à JS pour le dev web.
Après l'optimisation mémoire et performance, c'est un problématique commune à la programmation en générale. Dont tous les devs devraient se soucier. Tu as bien raison. 😄
C'est trop difficile à comprendre 😂😂
Javascript c'est du grand n'importe quoi.
L'anarchie c'est magique , tu peux faire ce que tu veux avec.
Grave
Comme quoi ?
Super, m'empêche que comment se fait il que le language le plus pourri soit le plus populaire. J'avoue que ça m'intrigue quand-même.
Langage du web?
@@JulienLucas ce n'est pas le seul il le semble...
Il va falloir t'accrocher, pas sur qu'il se fera déloger. 🙂
@@JulienLucas j'avoue j'y compte pas.
Super vidéo! Toutefois pas sur d'être tout à fait d'accord avec ta vision de la programmation fonctionnelle -> fr.wikipedia.org/wiki/Programmation_fonctionnelle