11553 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous
J'utilise depuis longtemps le validateur Esprima
Je remarque qu'il ne reconnait pas la définition des propriétés en tête de la définition d'une classe.

class ClassName {
   a;
   b;
  constructor()   {
      ......
  }
}


Connaissez vous un autre validateur online qui supporte cette syntaxe ?
Modifié par PapyJP (05 Aug 2025 - 15:15)
Modérateur
Salut,

Pourquoi utilises-tu Eprisma ? C'est une librairie obsolète depuis un moment. La syntaxe que tu décris est récente (ES2022). Or, la dernière mise à jour d'Eprisma date de 4 ans.

Tu devrais résoudre ton problème avec cette syntaxe :


class MyClass{
    constructor(){
        this._a = null;
        this._b = null;
    }
}

* un attribut est soit protégé, soit privé. Mais pas public !
Modifié par Niuxe (05 Aug 2025 - 14:40)
Merci de cette remarque, mais cela ne répond pas à ma question : quel vérificateur utiliser qui soit compatible avec les récentes évolutions de ES ?
C'est en essayant de mettre à cette nouvelle norme que j'ai trouvé que Eprisma était obsolète.
D'un autre côté je ne suis pas sûr que tous les navigateurs aient un JS à la norme.
Je ferais peut-être bien de revenir à mon code précédent.
Modérateur
Raphael a écrit :
Hello,

De nos jours il me semble qu'ESlint est de loin le plus courant : https://eslint.org/


Il est cependant appelé à disparaitre lui aussi. BiomeJS Smiley smile Pourquoi Biome ? Parce qu'il cumule eslint, prettier et il est plus performant. Biome serait écrit en Rust
Modifié par Niuxe (05 Aug 2025 - 20:55)
Administrateur
Niuxe a écrit :

Il est cependant appelé à disparaitre lui aussi.

Ah, on lag déjà !

Par contre c'est pénible qu'il soit également un formatter et qu'il couvre en partie Prettier parce que c'était justement un problème pendant longtemps : Prettier et Stylelint couvraient parfois les mêmes domaines et on ne savait jamais qui s'occupait de quoi. La bonne nouvelle est que Stylelint 16+ n'empiète plus du tout sur les plates bandes de Prettier et leur cohabitation est maintenant parfaite.

Pas sûr que ce soit le cas entre Biome et Prettier.
J'ai essayé d'utiliser ESlint, je n'ai compris comment ça s'utilise.
Y a-t-il quelque chose à télécharger ? Si oui où trouve-t-on le ou les fichiers d'installation?

Concernant Biome, j'ai l'impression que ça fait beaucoup de choses qui me semblent plutôt parasites.
Je n'ai pas envie d'un produit qui reformate mon code ou le rend "plus joli" (aux yeux de qui ?)
Cela fait près de 60 ans que j'écris des programmes dans différents langages, j'ai mes propres règles de présentation, nommage de variables ou de fonctions, etc. développées ou cours des ans, je ne tiens pas à les modifier, ou -- pire-- à ce qu'un produit auquel je demande simplement de vérifier la syntaxe du code les modifie pour moi.

Pour l'instant je suis revenu en arrière sur la déclaration des propriétés et je continue à utiliser Esprima.
Modérateur
Raphael a écrit :

Ah, on lag déjà !

Smiley lol (tu m'as fait mon après midi lorsque j'ai lu cette punchline)

Bien sûr que non. Biome est assez récent apparemment. Je l'ai un peu testé sur un projet bidon. Ce que je reproche beaucoup à l'écosystème de NodeJS et Javascript, ça part dans tous les sens. Hier, nous utilisions Gulp, Grunt. On a vu passer Webpack, Rollup, Parcel, Snowpack et maintenant, c'est ViteJS.

Je t'avoue que ça devient pénible toutes ces évolutions provisoires. Dans tout ce m*****r, on a du mal à suivre. Le junior qui commence à apprendre le JS et son environnement, bonne chance !

Raphael a écrit :

Par contre c'est pénible qu'il soit également un formatter et qu'il couvre en partie Prettier parce que c'était justement un problème pendant longtemps : Prettier et Stylelint couvraient parfois les mêmes domaines et on ne savait jamais qui s'occupait de quoi. La bonne nouvelle est que Stylelint 16+ n'empiète plus du tout sur les plates bandes de Prettier et leur cohabitation est maintenant parfaite.

Pas sûr que ce soit le cas entre Biome et Prettier.


Je n'ai jamais utilisé Styleint. Pour mes projets persos, je n'utilise pas eslint ou prettier. J'ai seulement un fichier .editorconfig. Je peux toujours rajouter deux extensions de coc : coc-eslint ou coc-prettier, mais je n'en ai pas eu le besoin.

petite anecdote : pour un projet, j'ai eu 2 bundlers : un qui formatait/validait/etc. pour le build final et l'autre pour les autres tâches Smiley biggol

@papyjp : eslint reste la meilleure alternative du moment pour valider un fichier js. En cherchant sur le net, tu vas vite trouver un bon tuto. C'est un outil très répandu dans le monde professionnel. eslint est utile pour de gros projets lorsqu'il y a beaucoup de développeurs. Ma recommandation est : fait simple dans tes règles ! Si tu utilises VSC, il me semble qu'il y ait des extensions pour prettier et eslint.
Modifié par Niuxe (07 Aug 2025 - 00:42)
Administrateur
PapyJP a écrit :
J'ai essayé d'utiliser ESlint, je n'ai compris comment ça s'utilise.
Y a-t-il quelque chose à télécharger ? Si oui où trouve-t-on le ou les fichiers d'installation?
ESlint est un plugin NodeJS : https://eslint.org/docs/latest/use/getting-started
Il faudra donc l'installer via npm, pnpm, yarn ou d'autres méthodes de ce genre.
Si tu n'es pas dans un environnement NodeJS ou ne souhaites pas l'être, tu peux déjà oublier la suite Smiley cligne
Salut,
Niuxe a écrit :
Smiley lol (tu m'as fait mon après midi lorsque j'ai lu cette punchline)

Bien sûr que non. Biome est assez récent apparemment. Je l'ai un peu testé sur un projet bidon. Ce que je reproche beaucoup à l'écosystème de NodeJS et Javascript, ça part dans tous les sens. Hier, nous utilisions Gulp, Grunt. On a vu passer Webpack, Rollup, Parcel, Snowpack et maintenant, c'est ViteJS.

Je t'avoue que ça devient pénible toutes ces évolutions provisoires. Dans tout ce m*****r, on a du mal à suivre. Le junior qui commence à apprendre le JS et son environnement, bonne chance !

C'est ce qui me saoule avec l'environnement JavaScript, les breaking change, encore et encore et encore... En plus l'écosystème est pourri dans une grande mesure, et quand ce n'est pas le cas nombre de bibliothèques se concurrencent les unes les autres sans pour autant apporter beaucoup de valeur ajoutée... Il faut choisir soigneusement ses dépendances et pour cela avoir beaucoup de recul sur l'écosystème.

Après 10 ans sur Node.js/Express/Fastify/Playwright je vais garder mes acquis mais me prépare désormais à parcourir d'autres mondes.

J'en ai marre de customiser ma 2CV pour qu'elle gagne 10-20% de rapidité ou de robustesse. Tu montes en compétence sur ta stack, tu mets en concurrence tes opérations pour gagner en performance avec des workers... tout cela pour répondre à des problèmes qui seraient optimisés sous d'autres environnements. Je ne veux plus de tout ça, je veux désormais évoluer sur un écosystème pro, performant, concurrentiel.

J'ai un profil data-first, les langages fonctionnels sont donc naturellement fait pour moi. À terme je passerai à Elixir/BEAM, avec parfois un peu de configuration Rust, en attendant je passe du côté obscur de la force avec ASP.NET que je manipulerai avec F# plutôt que C#. L'écosystème est génial : hyper performant, concurrentiel, très bien outillé ; ça fait maintenant une dizaine d'années qu'il est passé en open source. La communauté F# est petite, mais l'avantage pour un dev' en 2025 est de pouvoir recourir à l'IA qui peut exposer les bons patterns.
Modifié par Olivier C (07 Aug 2025 - 12:38)
Raphael a écrit :
ESlint est un plugin NodeJS : https://eslint.org/docs/latest/use/getting-started
Il faudra donc l'installer via npm, pnpm, yarn ou d'autres méthodes de ce genre.
Si tu n'es pas dans un environnement NodeJS ou ne souhaites pas l'être, tu peux déjà oublier la suite Smiley cligne

Franchement je ne vais pas me lancer dans ce genre d'aventure, j'ai passé l'âge...
Le temps d'apprendre à me servir de tout ça j'aurai quitté ce monde...
Smiley biggrin
Modérateur
PapyJP a écrit :

Franchement je ne vais pas me lancer dans ce genre d'aventure, j'ai passé l'âge...
Le temps d'apprendre à me servir de tout ça j'aurai quitté ce monde...
Smiley biggrin


de mémoire, tu as des configs préinstallées pour prettier et eslint. En général, quand on utilise ce genre d'outil, c'est pour les gros projets couplés à sonarcube/Gitlab/jenkins/etc.

Olivier C a écrit :

C'est ce qui me saoule avec l'environnement JavaScript, les breaking change, encore et encore et encore... En plus l'écosystème est pourri dans une grande mesure, et quand ce n'est pas le cas nombre de bibliothèques se concurrencent les unes les autres sans pour autant apporter beaucoup de valeur ajoutée... Il faut choisir soigneusement ses dépendances et pour cela avoir beaucoup de recul sur l'écosystème.


Quand il y a une nouvelle librairie en JS, je fais de la veille très passive. Avant que j'investisse vraiment du temps, je dois avoir un réel besoin. Aussi, je regarde autour de moi. Il y a quand même quelques exceptions. J'ai tout de suite adhéré à Svelte (simple et efficace).

Il y a quelques mois, j'ai entendu parler de qwikjs. La énième révolution JS. Quand j'ai vu une démo, je me suis dit, elle est déjà mort né. Le pire, tu vois des offres d'emploi sur de vieux projets et le recruteur a du mal a trouver. Mauvaise décision dès le départ.

Olivier C a écrit :

Après 10 ans sur Node.js/Express/Fastify/Playwright je vais garder mes acquis mais me prépare désormais à parcourir d'autres mondes.


Je n'ai même pas regardé Fastify et Gatsby. Ce sont des librairies tendances du moment. 2 ans après, plus personne les utilisent. Heureusement, ça s'est un peu calmé la sortie des libriairies tous les mois.

Olivier C a écrit :

J'en ai marre de customiser ma 2CV pour qu'elle gagne 10-20% de rapidité ou de robustesse. Tu montes en compétence sur ta stack, tu mets en concurrence tes opérations pour gagner en performance avec des workers... tout cela pour répondre à des problèmes qui seraient optimisés sous d'autres environnements. Je ne veux plus de tout ça, je veux désormais évoluer sur un écosystème pro, performant, concurrentiel.

J'ai un profil data-first, les langages fonctionnels sont donc naturellement fait pour moi. À terme je passerai à Elixir/BEAM, avec parfois un peu de configuration Rust, en attendant je passe du côté obscur de la force avec ASP.NET que je manipulerai avec F# plutôt que C#. L'écosystème est génial : hyper performant, concurrentiel, très bien outillé ; ça fait maintenant une dizaine d'années qu'il est passé en open source. La communauté F# est petite, mais l'avantage pour un dev' en 2025 est de pouvoir recourir à l'IA qui peut exposer les bons patterns.


Je te comprends tout à fait et j'ai à peu près le même point de vue. Le JS est un bon langage (encore jeune (es6)). Tu peux faire pas mal de choses maintenant. Cependant, pour des gros projets (il y en a pas beaucoup à ma connaissance), le JS n'est peut être pas la bonne solution (sauf si tu as le budget). Et encore, le JS n'est pas tout seul... Je pense à un gros projet dans lequel le front et une partie du back est fait en JS. Mais je vrai backend, c'est du Java. Le seul framework backend en JS assez bien foutu, c'est Adonis. Meteor, Nest, Koa, c'est bof bof. (je ne parle même pas de ces pseudos backend Next/Nuxt/Sveltekit) Adonis ne vaut pas un Django ou Symfony ou Spring ou J2e ou .not.
Modifié par Niuxe (08 Aug 2025 - 00:45)