Maîtriser JavaScript, 8 points et concepts qu'il faut connaître

Sdílet
Vložit
  • čas přidán 9. 07. 2024
  • Je parle de 8 points et concepts pour devenir expert JavaScript. Comme l’univers JavaScript et ses défauts peu connus.
    En 2023, l'environnement économique et le marché sont plus difficiles pour les développeurs, enfin surtout juniors (plus de challenge pour vous, c'est indéniable).
    Voici mes conseils pour devenir un maître en JavaScript.
    Chapitres :
    00:00 - Intro
    01:16 - L'univers JavaScript, et ses défauts
    05:07 - Savoir trier simplement un Array ou Objet
    06:45 - Les fonctions pures et l'immutabilité
    09:20 - La programmation fonctionnelle
    10:50 - Les classes et la programmations orientée objet
    12:21 - L'asynchrone et l'async/await
    13:05 - L'héritage des objets et le polymorphing
    14:50 - Les variables, var, let, et const
    Ma Newsletter avec plus de tips pour cartonner dans le dev et freelancing : devsfreelancesacademy.substack...
    Mon Insta : / julien_lucas
    Qui je suis?
    Développeur freelance depuis près de 10 ans, je travaille depuis 5 ans avec des startups, des scale-ups, des entreprises.
    Sur cette chaîne, je parle code, freelancing, business et liberté. La chaîne à suivre pour ceux qui veulent cartonner.
    #javascript #developpeurweb #développeurexpert
  • Věda a technologie

Komentáře • 128

  • @lordkiwi9083
    @lordkiwi9083 Před rokem +9

    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.

    • @mathieu1258
      @mathieu1258 Před rokem +6

      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.

    • @dapria
      @dapria Před 8 měsíci

      czcams.com/video/_IwMAUbc2tA/video.html

  • @ananasfraise4303
    @ananasfraise4303 Před rokem +10

    triller 😂 première fois que je le vois écris comme ça, sinon excellent comme d’hab

  • @killeak999
    @killeak999 Před rokem

    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 ^^

  • @shujin240
    @shujin240 Před rokem +3

    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

    • @JulienLucas
      @JulienLucas  Před rokem +3

      Un grand merci à toi. Je suis relativement satisfait de ma vulgarisation. 😀 Il y a des concepts avancés dedans aussi.

    • @dapria
      @dapria Před 8 měsíci

      czcams.com/video/_IwMAUbc2tA/video.html

  • @frankdearr2772
    @frankdearr2772 Před 6 měsíci

    excellent sujet, merci beaucoup 👍

  • @felixfale964
    @felixfale964 Před 10 měsíci

    Très utile, Merci.

  • @dieudonnepaqui8362
    @dieudonnepaqui8362 Před rokem

    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.

  • @user-no7oc1dc3u
    @user-no7oc1dc3u Před rokem +10

    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.

    • @remix2die4
      @remix2die4 Před rokem

      Quelles resources recommanderiez-vous pour apprendre en profondeur le JS ? (livres, auteurs, youtubeurs, etc.....)

    • @thebattinson1278
      @thebattinson1278 Před rokem

      Je +1 ton commentaire.
      Beaucoup d'approximations.

    • @JulienLucas
      @JulienLucas  Před rokem

      @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?

    • @user-no7oc1dc3u
      @user-no7oc1dc3u Před rokem +1

      @@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 !

    • @user-no7oc1dc3u
      @user-no7oc1dc3u Před rokem

      @@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!

  • @oupsoups4813
    @oupsoups4813 Před rokem

    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)

  • @bastienv6233
    @bastienv6233 Před rokem

    Merci pour ces précieux conseils

  • @gautekillfr5344
    @gautekillfr5344 Před rokem

    C'était top, merci pour le taff!

    • @JulienLucas
      @JulienLucas  Před rokem

      Merci pour ce commentaire! ☺️ C'est du taf. Et pour ceux qui veulent aller plus loin, il y a des courses de 32heures.

  • @milzuv1575
    @milzuv1575 Před rokem

    Merci bonne vidéo.

  • @ranarisonassim880
    @ranarisonassim880 Před rokem

    Très bon à savoir moi qui me concentre totalement en javascript actuellement

  • @ousmanououzeima1133
    @ousmanououzeima1133 Před 2 měsíci

    Tu m'as vraiment aidé à m'informer merci bien.

  • @polyglotteclub
    @polyglotteclub Před rokem

    Merci, pour tes compétences

  • @megretmicha4670
    @megretmicha4670 Před rokem +1

    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 😅

    • @JulienLucas
      @JulienLucas  Před rokem

      Merci pour ton com. 😉

    • @dapria
      @dapria Před 8 měsíci

      czcams.com/video/_IwMAUbc2tA/video.html

  • @GVideoplanet
    @GVideoplanet Před měsícem +1

    Vidéo utilissime

  • @Mellifico
    @Mellifico Před rokem

    Merci !

  • @excaliburnes9858
    @excaliburnes9858 Před rokem

    franchement génial merci :)

  • @ArrakeenHD
    @ArrakeenHD Před rokem +4

    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.

    • @dapria
      @dapria Před 8 měsíci

      czcams.com/video/_IwMAUbc2tA/video.html

  • @yanntrad2304
    @yanntrad2304 Před 4 měsíci

    Franchement tes vids sont uniques bravo

  • @myers1270
    @myers1270 Před měsícem

    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

  • @remykennyl.2850
    @remykennyl.2850 Před 7 měsíci

    La blague de Dave était si inattendue que j'ai explosé de rire. Merci !

  • @jawadach
    @jawadach Před rokem +1

    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

  • @diogo_apl
    @diogo_apl Před 3 měsíci

    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é

  • @thibaudcad.1742
    @thibaudcad.1742 Před 8 měsíci +1

    👋 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 ❤) ⇒

  • @AlexandreCbt
    @AlexandreCbt Před rokem +4

    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.

    • @JulienLucas
      @JulienLucas  Před rokem +2

      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.

    • @otmanm4095
      @otmanm4095 Před rokem

      ​@@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

    • @xNsKalfa
      @xNsKalfa Před rokem

      @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

    • @wisdom6739
      @wisdom6739 Před 2 měsíci

      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.

  • @TheJRFH
    @TheJRFH Před rokem

    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 =)

    • @dapria
      @dapria Před 8 měsíci

      czcams.com/video/_IwMAUbc2tA/video.html

  • @tee-rz7ddcsddqdde
    @tee-rz7ddcsddqdde Před rokem

    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 !

    • @JulienLucas
      @JulienLucas  Před rokem

      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 CZcams tout le monde le ferait. 😊

  • @patriciak.3279
    @patriciak.3279 Před rokem

    Merci

  • @pepew7102
    @pepew7102 Před rokem +1

    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.

    • @JulienLucas
      @JulienLucas  Před rokem +2

      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. 😉

    • @placedelechange
      @placedelechange Před rokem

      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.

  • @apustuflu
    @apustuflu Před rokem

    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) ?

    • @JulienLucas
      @JulienLucas  Před rokem +1

      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. ☺️

    • @apustuflu
      @apustuflu Před rokem

      @@JulienLucas Merci pour le retour 😊

  • @galluladavid8631
    @galluladavid8631 Před rokem

    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

    • @JulienLucas
      @JulienLucas  Před rokem

      Eh bien tu vois j'ai jamais beaucoup utilisé l'héritage. 😉
      Pas fonctionnel systématiquement _proto_ apparement. Déprécié.

  • @CyrilHskt
    @CyrilHskt Před rokem

    Il aurait peut-être aussi été intéressant de parler de Typescript, qui vient solidifier JS. Merci pour ces vidéos.

    • @dapria
      @dapria Před 8 měsíci

      czcams.com/video/_IwMAUbc2tA/video.html

  • @PEDIasblRDC
    @PEDIasblRDC Před 5 měsíci

    une très bonne vidéo julien
    , Merci

  • @onclesol8617
    @onclesol8617 Před rokem

    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
      @JulienLucas  Před rokem

      Génial, heureusement que tu es là avec ton avis et tes conseils. 👌 Tu devrais ouvrir une chaîne CZcams pour donner des conseils aux CZcamsrs.

    • @onclesol8617
      @onclesol8617 Před rokem

      @@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.

  • @nabsbladeofmiquella2315

    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 !

    • @dapria
      @dapria Před 8 měsíci

      czcams.com/video/_IwMAUbc2tA/video.html

  • @Katermuke
    @Katermuke Před rokem

    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 !

    • @JulienLucas
      @JulienLucas  Před rokem

      Merci à toi. Où va le monde si on like pas les vidéos qu'on aime.

  • @arthurderuelle5975
    @arthurderuelle5975 Před rokem

    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 ?

    • @JulienLucas
      @JulienLucas  Před rokem

      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. 👌

  • @xeinel8112
    @xeinel8112 Před rokem

    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
      @JulienLucas  Před rokem

      Yes, on devrait surtout utiliser une fonction pure quand on a un doute. Ou quand la fonction est complexe. 😊

    • @xeinel8112
      @xeinel8112 Před rokem

      @@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

  • @NecroticSiko
    @NecroticSiko Před rokem

    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 ^^

    • @JulienLucas
      @JulienLucas  Před rokem +1

      Yes normal, on peut pas tout acquérir dès le début. L'important c'est de savoir quoi savoir. 🤙

  • @gregoiremaria1078
    @gregoiremaria1078 Před rokem

    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 ?

    • @JulienLucas
      @JulienLucas  Před rokem +1

      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 CZcams. C'est du boulot. 😉

    • @gregoiremaria1078
      @gregoiremaria1078 Před rokem

      @@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

  • @naka1550
    @naka1550 Před rokem

    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

    • @JulienLucas
      @JulienLucas  Před rokem +1

      Il y a des conventions JS à chaque fois, qui présentent les nouvelles fonctionnalités à des devs plus à la page. 😁

  • @flamme8587
    @flamme8587 Před rokem

    J'aurai aimé que tu abordes (pas forcément longtemps) le concept de TypeScript qui supprime énormément de défauts à JavaScript

    • @JulienLucas
      @JulienLucas  Před rokem

      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. 🤭

    • @flamme8587
      @flamme8587 Před rokem

      @@JulienLucas Hélas dans le monde du dev y'aura toujours un milliard de moyen de faire la même chose

    • @dapria
      @dapria Před 8 měsíci

      czcams.com/video/_IwMAUbc2tA/video.html

  • @bra5081
    @bra5081 Před 7 měsíci

    Un point que j'ai pas trop compris. Vous dites d'éviter d'utiliser map et filter dans la partie programmation fonctionnelle. Pourtant map et filter respectent l'immutabilité. Vous mettez en avant push et pop qui modifient le tableau au lieu de créer un nouveau tableau, et qui ont plus leur place dans le paradigme POO de la partie suivante ?

    • @JulienLucas
      @JulienLucas  Před 7 měsíci

      Point pas développé sur la la prog fonctionnelle.
      Je dis que la prog fonctionnelle consiste à utiliser l'étendue de la doc ECMAScript. Toutes les méthodes dispo.
      Mais c'est évidemment plus que ça (higher order functions, ect...).
      Il y a des livres de 400pages sur ça.
      Vaste sujet dont je ne suis pas expert 😊

  • @Azer_Oner
    @Azer_Oner Před rokem

    1:33 oui mais ça c’est commun à tout les langages non ? Pas que de JS

    • @JulienLucas
      @JulienLucas  Před rokem +1

      Bonne question.
      Possible si c'est lié à la virgule flottante, je ne peux parler que de JS. Haha.🤗

    • @ludo534
      @ludo534 Před rokem

      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

    • @Azer_Oner
      @Azer_Oner Před rokem

      Ah d'accord ! Merci pour vos réponses 😊

  • @_yukulele
    @_yukulele Před rokem

    15:48 non, `var` ne crée pas une variable sur le scope globale

    • @JulienLucas
      @JulienLucas  Před rokem

      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.

  • @moneyismygame5908
    @moneyismygame5908 Před 5 měsíci

    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

  • @333juniorb
    @333juniorb Před rokem

    Moi j’attends toujours la sortie du pipe operator 😢#fonctionalProgramming

  • @moussasouag8838
    @moussasouag8838 Před rokem

    Merci pour vos explication T'entame des sujets intéressants mais t'accélère trop vite

  • @etienneg222
    @etienneg222 Před rokem

    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.

    • @JulienLucas
      @JulienLucas  Před rokem

      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.

  • @christophegorski6778
    @christophegorski6778 Před rokem +1

    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
      @Spirit-Templar Před rokem +1

      C'est pas scalable 😉

    • @ludo534
      @ludo534 Před rokem +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.

    • @christophegorski6778
      @christophegorski6778 Před rokem

      @@Spirit-Templar pourrais tu m’en dire un peu plus stp ? (Juste une piste je chercherai)

    • @christophegorski6778
      @christophegorski6778 Před rokem

      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 ?

    • @ludo534
      @ludo534 Před rokem

      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

  • @mklk7377
    @mklk7377 Před 4 měsíci

    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. 😶

  • @FerasOfficiel
    @FerasOfficiel Před rokem

    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

    • @JulienLucas
      @JulienLucas  Před rokem

      Intéressant je ne savais pas, merci pour ce complément. J'espère que d'autres le liront. 😊

  • @arnaques-tuto-informatique

    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.

  • @jeaneude8109
    @jeaneude8109 Před rokem

    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.

  • @GeofreyvanHecke
    @GeofreyvanHecke Před rokem

    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 😁👍

    • @JulienLucas
      @JulienLucas  Před rokem

      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,

  • @sebastientisserand866

    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…

    • @JulienLucas
      @JulienLucas  Před rokem

      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. 😄

  • @user-ox8tu7tn7i
    @user-ox8tu7tn7i Před 7 měsíci +5

    Javascript c'est du grand n'importe quoi.

  • @shevafire
    @shevafire Před rokem

    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.

    • @JulienLucas
      @JulienLucas  Před rokem

      Langage du web?

    • @shevafire
      @shevafire Před rokem

      @@JulienLucas ce n'est pas le seul il le semble...

    • @JulienLucas
      @JulienLucas  Před rokem

      Il va falloir t'accrocher, pas sur qu'il se fera déloger. 🙂

    • @shevafire
      @shevafire Před rokem

      @@JulienLucas j'avoue j'y compte pas.

  • @ota1998
    @ota1998 Před rokem

    Encore une vidéo avec de la "musique" en bruit de fond. Insupportable.

  • @magicmangus
    @magicmangus Před rokem +1

    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