11559 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je ne sais pas si certains d'entre vous se reconnaîtront dans ma situation, mais je crois que c'est un problème assez fréquent avec Javascript.

Au cours de notre formation, nous avons souvent appris le Javascript à la manière DHTML (et encore souvent des formation totallement dépassée...). Nous avons appris à glaner des informations à gauche à droite et à utiliser jQuery pour arriver à nos fins.

Ce n'est en soit pas un problème. Mais ce faisant, combien d'entre-nous peuvent se considérer comme étant des "Développeurs Javascript" ?

Nous en faisons tous usage, à tous les jours. Mais, j'ai souvent l'impression que je passe à côté d'un language complexe et très complet sur lequel la facilité d'intégration nous a légèrement détourné des bonnes pratiques et des standards.

Je me demandais donc si certains n'auraient pas des références pour pousser notre connaissance du Javascript à un autre niveau:

- Ajouter beaucoup plus d'abstraction à nos applications,
- Mieux diviser son code (systèmes MVC, etc)
Et tout ce qui est bonne pratique en général et au final se mettre dans la voie de devenir un jour réellement un "Développeur Javascript".

Livre, vidéo, tutoriels en ligne, etc, etc. N'importe quoi !

Merci !

(pas que je songe à la reconversion, mais pour bien définir le genre de ressources que je recherche Smiley langue )
Je m'étais fait la même remarque que toi après un échange de tweets avec fcvh, un truc du genre "En JS y'a que 2 niveaux : gros noobs, expert gourou". Bref je vois tout à fait où tu veux en venir, c'est un language qui ne nécessite pas forcément de s'y plonger profondément pour en faire quelque chose (parce qu'il utilise beaucoup de concepts d'autres languages) et avec pleins d'outils pour simplifier les tâche les plus simples et fréquentes.

Développeur Javascript, je pense que ça n'existe que grâce aux applications web qui utilisent JS très lourdement où au fait qu'on peut maintenant utiliser JS côté serveur, mais je pense que c'est quand même relativement nouveau et que c'est rare que quelqu'un se spécialise là dedans comme un premier language. Un intégrateur très bon en JS ou un développeur back qui maîtrise aussi Node pourquoi pas, mais quelqu'un qui ne fasse que ça principalement, à l'heure actuelle je doute que ça existe, c'est trop récent pour qu'il y ait déjà des experts.

Bref, d'après mon expérience sur le sujet y'a 2 choses à côté desquelles on passe souvent sur JS, moi le premier :
- les sortes de hacks, les subtilités entre les différents navigateurs, ce genre de choses
- les éléments uniques du language comme son modèle de "POO" par exemple.

Pour le premier je pense que c'est intéressant de se pencher dessus, parce que c'est ce qui sert tous les jours. Les valeurs booléennes retournées par null, undefined, 0, 1, "" etc etc. C'est le genre de trucs relativement simples mais nombreux qui peuvent servir assez régulièrement.

Pour manipuler le dom y'a toutes les "listes dynamiques" qui se mettent à jour automatiquement sans forcément qu'on demande quoi que ce soit, etc etc.

Après y'a le reste, principalement la POO qui à mon goût n'est pas nécessaire dans le boulot de tous les jours, ou en tout cas pas le mien. J'ai pas à développer de frameworks, d'applications qui reposent lourdement sur JS, qui nécessitent du code 100% réutilisable au sein d'une même app etc etc, donc j'ai pas spécialement intérêt à créer des classes et des méthodes pour des objets simples que j'utilise sur une ou deux pas dans un projet.

En fonction de ce que tu souhaites faire ou apprendre ça peut être intéressant pourquoi pas, si tu veux du code plus simple/réutilisable découplé, pourquoi pas ne faire que des pluggins, et les appliquer en fonction de tes besoins, et les conserver si jamais tu veux te faire ta petite bibliothèque, mais dans mon cas ça n'a pas forcément de grand intérêt.

Mieux diviser son code, avec les regex, un système de template fait maison tout simple (une chaine de caractère avec ++tagVariable++ que je remplace à la volée, ça me suffisait largement. Pourquoi pas utiliser des fichiers ou autre, pour ma part j'avais un script qui ne faisait que contenir les templates du projet et je piochait dedans et je remplaçait mes tags par des variables avant de les insérer dans le dom. Pratique quand tu as besoin d'insérer le même code et que tu veux pas le modifier partout.

Pour ce qui est des bonnes pratiques, je pense dans un premier temps à "var" et à tout ce qui peut s'en rapprocher, à savoir ce qui fait partie du language ou de la syntaxe qui n'est pas obligatoire à part en mode strict mais qui aide à débugger, relire le code de quelqu'un d'autre, s'y retrouver dans le scope, etc etc... Comme les accolades, sur les if...else... et ce genre de broutilles.

Pour les conventions de nomage, j'utilise les même que pour tous les autres languages à savoir mes_variables mesInstances MesObjetes mesMéthodes à peu de choses prés... J'ai lu un bouquin sur comme écrire du joli code, ça complète bien les choses même si c'est assez facile d'utiliser var test pour tester un truc et d'oublier de le changer une fois que ça marche...

Definitive Javascript Book (v6) gros gros pâté. Difficile à lire parce qu'en survolant tout semble tomber sous le sense "mouais je sais déjà ça" et puis en s'arrêtant sur un paragraphe "ah merde je savais pas ça". Dans l'ensemble très théorique et relativement peu pratique, c'est une référence plus qu'un truc pour apprendre.

Il y a aussi http://addyosmani.com/resources/essentialjsdesignpatterns/book/ qui parle, entre autre des patterns pour faire de l'OOP. J'ai pas encore trop eût le temps de tout mettre en pratique mais ça semble intéressant. J'ai quelques ebooks que j'avais reçu dans une newsletter au sujet de JS que j'ai pas encore lu, va falloir que je m'y mette, si y'en a qui sont bien je re-passerai par ici pour en parler.
Bonjour,

Une étape indispensable à franchir : lire les specs (ECMAScript + DOM). Smiley smile

Voir aussi du côté de Douglas Crockford.

Pour le reste, une solide formation en ingénierie logicielle (universitaire ou autodidacte) est un plus.