Hello les agrumes,
Comme suggéré par victor dans mon topic à ce sujet, je vous fait un topic pour regrouper les ressources intéressantes que je trouve au cours de mon apprentissage de Javascript.
N’hésitez pas à en suggérer dans la suite.
Hypothèses
- Je lis couramment l’anglais.
- J’ai des bases en Javascript, et sait déjà programmer dans d’autres langages.
- Mes besoins ne sont plus les mêmes du tout que dans le précédent topic, là j’essaie de monter un projet avec vue.js (en ES6, peut-être en TypeScript plus tard).
- Je développe avec IntelliJ (ça pourrait être WebStorm, mais j’ai déjà une licence IntelliJ et y’a les mêmes outils dedans).
Méthodologie
La manière générale de procéder
En trois mots : curiosité, documentation et tests.
Je m’intéresse à un concept, je lis la doc à son sujet, je la recroise avec ce que je trouve ailleurs sur le net si ça me parait louche, et surtout j’essaie.
À noter que c’est assez lent comme processus : il faut prendre le temps de découvrir et tester.
Le linter
Un truc vachement pratique aussi, c’est de coller un linter (analyseur de code) en mode « paranoïaque » et d’aller se renseigner sur chaque insulte qu’il sort en analysant le code. Le but est surtout de comprendre pourquoi il définit telle ou telle règle.
C’est très intéressant parce que ça donne les bonnes pratiques du langage (selon le réglage du linter), et permet de découvrir des tas de trucs et astuces que j’aurais jamais eu l’idée de chercher sans ça.
Personnellement j’utilise ESLint avec les profiles airbnb-base et vue/recommended.
Liens
Javascript et dérivés
- La bible du JS : Le MDN (à lire à chaque fois qu’on a besoin d’un concept ou d’un point de langage précis)
- Mais finalement y’a quoi dans ES6 ?
Outils
- vue.js : la doc (y compris la VF) me semble pas mal foutue avec une application sandbox pour faire des tests.
- D’ailleurs, de la doc pour Vue.js.
- babel pour éviter de se faire chier avec la compatibilité des navigateurs (et browserslist pour encore moins se faire chier).
- webpack pour gérer les modules
- (En fait tout ce petit monde est déjà configuré par l’outil CLI de vue.js)
- npm pour gérer tout ce bordel.
- axios pour faire de l’AJAX (dans vue.js, mais pas que)
- Sass/scss, parce que quitte à moderniser JS, autant moderniser aussi CSS.
En prime, hallucination du jour : en plus du package.json
(description des dépendances), npm nous génère un joli package-lock.json
, qui si j’ai bien compris sert à avoir exactement la même version des dépendances si on clone le projet. Pour moi ça devrait être le boulot du package.json
, mais soit. Non, ce qui me fait vraiment halluciner, c’est qu’un projet vue.js de base, sans les frameworks de test, et donc sur un outil qui n’est pas connu pour être le plus lourd de l’écosystème, me génère à l’initialisation un descriptif de dépendances de plus de 12 000 lignes et 420 ko…