Une entrevue avec David Walsh

David Walsh est un développeur Web bien connu, âgé de 26 ans. En plus de son blog, il a contribué à la création de Script and Style et fait partie de l'équipe principale du framework Mootools. Aujourd'hui, nous lui parlerons de son flux de travail quotidien, de JavaScript et du développement Web en général..

Pour ceux d'entre nous qui ne vous connaissent peut-être pas ou qui ne connaissent pas votre blog, parlez-nous un peu de vous et de ce que vous faites dans la vie..

Je m'appelle David Walsh et je me considère comme un programmeur Web flexible en PHP, CSS, HTML, JavaScript (MooTools et jQuery). Je passe la plupart du temps à genoux dans le code, à lutter contre les navigateurs ordures et les webmasters qui m’ont précédé..

Comment et pourquoi vous êtes-vous impliqué dans le développement web??

J'ai appris le HTML, le JavaScript et le CSS pendant ma première année au lycée. Je ne me souviens pas pourquoi je suis tombée amoureuse de la programmation Web, mais je ne pouvais tout simplement pas m'empêcher de bricoler, bricoler, bricoler. Dix ans plus tard, je suis toujours obsédé par la programmation Web et pousse chaque langage Web à ses limites..

Travaillez-vous actuellement pour une société de développement ou travaillez-vous à plein temps à la pige??

J'ai un travail normal de 8 à 5 jours mais j'apprécie le plus quelques heures après le travail. Cela me donne généralement le temps de prendre les problèmes rencontrés au cours de la journée et de les transformer en articles de blog. Mes possibilités d'expérimenter au travail sont limitées, de sorte que la liberté de bricoler après le travail me rafraîchit.

Sur bon nombre de vos sites Web, vous mentionnez Wynq Web Labs. Pouvez-vous nous en dire plus sur Wynq et le rôle que vous y avez joué?

Wynq Web Labs est mon bras de conseil / freelance. Wynq se spécialise dans l’amélioration de votre site Web vanilla avec MooTools ou jQuery. Tant de choses peuvent être faites à l'aide de ces bibliothèques javascript (ou de n'importe quelle autre) qu'il est toujours possible d'améliorer un site Web basique ou avancé..

Beaucoup de nos lecteurs se lancent dans le développement web, avez-vous des conseils spécifiques pour ceux qui espèrent réussir dans ce domaine? Que peut-on faire pour s'assurer que leur niveau de compétence est suffisant pour le marché du travail actuel?

Le meilleur conseil que je puisse donner est le suivant: déposez le livre, ouvrez votre éditeur de texte et le code. Code, code, code. Expérimenter, expérimenter, expérimenter. Bricoler, bricoler, bricoler. Il n’ya pas de meilleure expérience d’apprentissage que de s’asseoir, d’échouer, de réparer, d’échouer, de réparer, etc. Ne cessez jamais d’échouer et de ne jamais arrêter de réparer. Je recommande également de lire des sites Web de développement Web de qualité comme mon blog, Nettuts +, Dev-Tips et CSS-Tricks; il y a beaucoup à apprendre des personnes riches d'expérience.

Parlons maintenant de Javascript, est-il juste de dire que Javascript est ton langage de programmation préféré?

Oui, JavaScript est officiellement devenu mon langage de programmation préféré. J'aime la flexibilité de JavaScript et comment il peut, avec votre framework préféré et quelques lignes de code rapides, faire passer un site Web de 4 à 8. Il n’existe pas beaucoup d’autres langues / plates-formes qui existent. grand impact avec un temps relativement court.

Bien que vous soyez manifestement talentueux dans tous les domaines du développement Web, comment êtes-vous devenu si compétent avec le langage Javascript??

J'ai suivi mes propres conseils: expérimenter, expérimenter, expérimenter. J'ai commencé par me fixer un petit objectif: échouer, résoudre le problème et atteindre cet objectif. Ensuite, nous passons au test suivant. J'ai également commencé à suivre des blogs centrés sur JavaScript comme le mien et j'ai rejoint la salle MooTools IRC. Il n'y a vraiment pas de substitut à la passion, à l'ambition et à prendre le temps d'expérimenter.

Nous avons tous vu de nombreux articles, vidéos et articles soulignant les erreurs et les failles de la langue. Selon vous, quels sont les points forts de Javascript?

Ce qui est génial avec JavaScript, c’est qu’il s’agit du seul standard pour les scripts de navigateur. Certaines personnes déplorent le fait qu’il s’agit du seul langage de script pour navigateur et que nous sommes «coincés» avec ce dernier. Pensez-y: si chaque navigateur gère son implémentation JavaScript différemment (comme il le fait maintenant), imaginez que de nombreux langages au sein de chaque navigateur soient gérés différemment. Quel cauchemard!

J'aime que JavaScript soit typé de manière lâche et que vous puissiez modifier les prototypes d'objets natifs. J'aime aussi le fait que les fonctions puissent être stockées sous forme de variables et transmises sous forme d'arguments (/ moi éblouit en PHP). J'aime surtout le fait que JavaScript nous fournisse l’outil nécessaire pour lutter contre les sites Web ennuyeux - la seule limite à ce que nous pouvons faire est un manque d’imagination..

Vous avez publié des centaines de conseils en matière de Javascript et des conseils sur votre site Web. Quelles sont les erreurs Javascript courantes que vous voyez souvent chez les débutants??

L'erreur JavaScript la plus courante que je vois est que les développeurs (ou les webmasters) copient un extrait de code javascript dans la page, le constatant que cela ne fonctionne pas et se plaignent par la suite que le code n'est pas correct. Les développeurs doivent prendre quelques instants pour étudier et comprendre le code - et ne pas seulement s’attendre à ce que cela fonctionne. Parmi les autres erreurs que je vois fréquemment, citons la résolution du problème «bien, ça marche» au lieu d’optimiser et d’utiliser JavaScript pour remplacer les tâches côté serveur. Supplément: oui; remplacer: non.

D'un coup d'œil aux publications de votre site Web, il est évident pour quiconque que vous êtes un fan de MooTools. Pouvez-vous nous en dire plus sur votre implication avec MooTools??

J'ai commencé à bloguer sur MooTools parce que j'aimais tellement le framework. Il y a environ un an, le développeur principal de MooTools, Aaron Newton, m'a demandé d'envisager de contribuer à la base de code et à la communauté du framework. Un mois plus tard, Valerio m'a demandé de rejoindre l'équipe MooTools. Aujourd'hui, je consacre la majeure partie de mon temps à communiquer au sein de l'équipe, à contacter les organisations à propos de MooTools, à discuter avec des membres de la communauté MooTools et à rédiger des didacticiels MooTools. Cela prend beaucoup de mon temps libre, mais être entouré de certains des plus brillants esprits JavaScript du monde est une façon bienvenue de le dépenser..

Outre la documentation MooTools, existe-t-il des ressources ou des domaines spécifiques dans lesquels les développeurs peuvent trouver des informations supplémentaires et / ou des réponses à leurs questions sur la bibliothèque??

Absolument! Les concepteurs et les développeurs Web peuvent obtenir de l'aide avec MooTools à de nombreux endroits. Le meilleur endroit est la salle MooTools IRC sur Freenode: #mootools. Le groupe Google MooTools est un autre excellent endroit pour obtenir de l'aide. La plupart des développeurs et contributeurs MooTools Core ont des blogs qui traitent de problèmes élémentaires à avancés de MooTools. C'est difficile de ne pas trouver de l'aide!

Y a-t-il une fonctionnalité ou fonction spécifique que vous souhaitez voir incluse dans MooTools à l'avenir?

Beaucoup! Chaque cadre peut toujours être amélioré. J'aimerais que MooTools intègre un gestionnaire de dépendance afin que les développeurs puissent charger des scripts en fonction de leurs besoins. Par exemple:

 // javascript $ require ('Drag.Move');

Le code ci-dessus ajouterait Drag.Move support (et ses dépendances) s'il n'est pas déjà inclus dans la page. Je sais que Dojo et YUI ont implémenté cela. J'aimerais que MooTools mette cela en œuvre. En tant que membre de l'équipe, je ne peux tout simplement pas attendre que cela se produise. :) J'ai hâte de travailler avec certains de mes collègues pour définir comment créer un tel système..

Remarque: MooTools a publié Depender, un outil de compilation côté serveur qui utilise PHP ou Python: http://github.com/mootools/mootools-depender/

Avez-vous l’intention de créer votre propre framework Javascript ou préférez-vous vous concentrer sur les bibliothèques existantes??

Créer mon propre framework JavaScript n'est tout simplement pas dans les cartes. Je suis entouré de brillants développeurs de l'équipe MooTools et je respecte le travail effectué par les équipes jQuery, Dojo et Ext. Je préférerais passer mon temps à améliorer MooTools plutôt qu’à tenter de réinventer la roue..

En parlant de frameworks Javascript, quelles sont vos réflexions générales sur l’impact de ces frameworks sur le développement web? Que pensez-vous de l'avenir pour les frameworks Javascript?

Je pense que les frameworks JavaScript sont les entités qui poussent le plus les navigateurs à faire mieux, à aller plus vite, à avancer. Prenez du recul et réfléchissez à ce que nous faisons actuellement avec l'interface utilisateur Web que nous ne faisions pas il y a un an ou deux. Tout cela grâce à JavaScript (et à un groupe de programmeurs très talentueux).

Attendez-vous à des progrès incroyables de chacun des frameworks JavaScript. Nous sommes tous engagés pour le long terme et chaque jour offre la possibilité d'un saut en avant géant..

Au fil du temps et de l’amélioration de la technologie, il semble que CSS ait tenté de prendre en charge des fonctionnalités Web que l’on pouvait s’attendre à voir à partir de Javascript (animations / transitions CSS). Quelles sont vos pensées sur l'utilisation de CSS pour faire des choses normalement réservées à Javascript??

Je pense que CSS et JavaScript se volent parfois les rôles. Si quelque chose peut être fait (de manière fiable) avec CSS, un développeur doit utiliser CSS. Le problème est que CSS n’avance pas assez vite (ou du moins d’une manière normalisée) et que notre seule option est de pirater une solution avec JavaScript. Les coins arrondis et l'opacité en sont d'excellents exemples. Chaque navigateur a sa propre structure de code CSS pour obtenir la fonctionnalité souhaitée, ce qui rend le piratage CSS inefficace. Les frameworks JavaScript éliminent tous les soucis liés aux navigateurs et nous permettent de coder quelque chose et d'aller de l'avant. Je doute que cela changera de sitôt.

Vous savez que nous devions demander, MooTools ou jQuery? Pourquoi? Quels sont selon vous les avantages ou les inconvénients de chaque cadre par rapport à l’autre??

Je me considère habile dans les deux cadres et préfère MooTools. En fait, apprendre jQuery m'a fait aimer davantage MooTools. À chacun ses goûts. MooTools me convient parfaitement. La nature de la POO de MooTools me passionne et cette philosophie me permet de coder plus rapidement. Je trouve également que le code de MooTools est plus lisible en raison de son utilisation de getters, de setters et de mots d'action utilisés pour les noms de méthodes. MooTools me permet également de créer ma propre version, adaptée au projet sur lequel je travaille, afin de réduire la taille du fichier..

"En fait, apprendre jQuery m'a fait aimer davantage MooTools."

Si vous n'approuvez pas la modification du prototype d'objet natif (MooTools et Prototype le font), jQuery est le meilleur choix. La syntaxe de jQuery est généralement plus courte que celle de MooTools. jQuery est également connu pour avoir une courbe d'apprentissage plus facile que d'autres frameworks. Je félicite également jQuery pour son organisation, sa promotion et ses efforts de coordination - Rey Bango et son équipe font un excellent travail..

En fin de compte, il est important de savoir que vous ne pouvez pas perdre avec l'un ou l'autre des cadres. Je dirais que tout bon développeur JavaScript devrait maîtriser les deux. Le meilleur de tous est qu'ils peuvent travailler ensemble dans la même page.

Pour ceux qui ne le savent peut-être pas, pouvez-vous expliquer certaines des différences fondamentales entre MooTools et jQuery?

Sûr. MooTools modifie les prototypes de certains objets JavaScript natifs (chaînes, fonctions, tableaux, etc.) pour les rendre plus flexibles et plus puissants. MooTools implémente également un système de classe / héritage OOP très solide qui vous permet d'étendre facilement les classes MooTools. MooTools est également très modulaire, vous n'avez donc qu'à télécharger les morceaux dont vous avez besoin.

jQuery habilite les éléments de l'objet jQuery, raison pour laquelle vous voyez souvent “$ (Ceci)” - "ce" n'est pas excrété sans le $ (). Tous les plugins sont ajoutés à la fonction $. JQuery est essentiellement une fonction puissante ($) avec de nombreuses autres fonctions ($ .each, par exemple). La syntaxe jQuery est généralement plus courte que la syntaxe MooTools et les mêmes méthodes sont utilisées pour obtenir et définir les styles, les attributs, etc..

J'y pense de cette façon: MooTools prend des objets natifs et les place sur des périodes stériles. jQuery leur donne un "$" shell de pouvoir. Aaron Newton a écrit un excellent article sur la différence et la similitude entre les deux frameworks: http://jqueryvsmootools.com. Je recommande vivement aux développeurs JavaScript de prendre le temps de lire le message d'Aaron et d'essayer eux-mêmes les deux cadres.

Il semble que chaque framework Javascript vienne avec sa juste part de plugins et de scripts personnalisés. Avez-vous des plugins ou des scripts de framework personnalisés que vous souhaitez partager avec nous??

Trop à compter! Je suis particulièrement fier de mes plugins MooTools: ScrollSpy, ContextMenu, Dotter, jQuery Events, LazyLoad et ScrollSide. Vous pouvez consulter tous mes plug-ins MooTools sur mon site Web ou sur MooTools Forge. J'ai aussi pas mal de plugins jQuery disponibles sur mon site web. Les démos de mes plugins sont disponibles sur http://davidwalsh.name/demos.

Quels autres langages de programmation ou de script utilisez-vous actuellement??

L'un de mes professeurs d'université a déclaré un jour que «tout développeur digne de ce nom apprendra un langage de programmation par an» et j'essaie généralement de suivre ce principe. Mes langues principales sont PHP / MySQL et HTML / CSS / JavaScript. Bien que Git ne soit pas une langue, il est certain que le diable peut être un défi, et c'est ce sur quoi je me concentre actuellement. J'espère plonger dans Ruby et Python sous peu. Malheureusement, il ne semble jamais y avoir assez de temps pour apprendre tout ce que je veux!

Vous avez participé, avec Chris Coyier, au développement et à la production du populaire "Modèle de site Web de groupe". Quels étaient certains des obstacles ou des difficultés rencontrés dans ce projet? Quelles sont les fonctionnalités dont vous êtes le plus fier??

Le modèle de site Web du groupe s'est incroyablement harmonisé grâce aux excellentes compétences en conception et en CSS de Chris. Créer un installateur solide était probablement la partie la plus difficile du modèle pour moi. BWT nécessite certaines connaissances de WebDev, mais nous voulions simplifier la configuration pour les consommateurs les moins avertis. Une fois le programme d'installation créé, le reste était facile. Je suis fier du directeur du Gig, aussi simple soit-il. Je suis également fier de la qualité de la réception et de l'absence de courriels d'assistance. Nous avons définitivement obtenu un résultat positif.!

Script & Style, un tableau de liaison populaire pour les concepteurs et les développeurs Web, a également été créé par Chris Coyier et vous-même. Est-ce que vous collaborez souvent souvent? Chris a mentionné que cela impliquait un travail de développement personnalisé et délicat de votre part, ce qui fonctionnait sur S & S comme?

Chris et moi collaborons beaucoup. Parfois, il s'agit de gros projets comme Script & Style et Template de site Web de groupe et d'autres fois, il écrit des articles de blog en parallèle. J'écris souvent le didacticiel MooTools qui reflète son didacticiel jQuery..

Script & Style était définitivement un défi. Je devais pirater certaines des fonctionnalités par défaut des flux RSS de WordPress. Nous avons également récemment ajouté des captures d'écran de la page Web de l'article, qui nécessitaient une mise en cache des images et un codage d'API de capture d'écran. Malgré les défis, le site a été très enrichissant et j'ai hâte de le développer davantage.

Quelle est la question la plus importante que vous posiez lors de la première réunion avec un client pour discuter d’un nouveau projet de site??

Budget. Budget vous dit presque tout ce que vous devez savoir sur un client. S'ils respecteront le travail que vous faites. S'ils vont nécessiter beaucoup d'entretien. Si leurs objectifs avec le site Web seront en ligne avec vos objectifs pour le projet. Rappelez-vous qu'ils ne vous choisissent pas seulement… vous les choisissez également.

Trouvez-vous utile de travailler avec d'autres développeurs talentueux sur un projet ou préférez-vous travailler seul??

Une excellente question. Cela dépend généralement du projet. Parfois, il est bon de ne garder qu'un seul chef en cuisine. J'essaie généralement de travailler avec un groupe de développeurs talentueux. Plus vous pouvez vous attaquer au problème, plus vous avez d'esprits expérimentés et meilleures sont vos chances de dépasser les attentes.

Quels sont certains de vos sites Web préférés pour suivre les tendances et les meilleures pratiques en matière de développement Web??

Curieusement, je n'ai que quelques sites Web de base que je suis, à part Nettuts +. Je suis toujours sûr de voir ce que Chris Coyier a à dire et aime lire les articles de A List Apart. Je vérifie surtout les articles entrant dans Script & Style. Je cherche de l'inspiration dans ces publications: moyens d'améliorer leur code ou de le transférer dans un autre framework JavaScript. Je garde également une oreille attentive dans la rue Twitter pour voir quels articles enthousiasment les gens..

. Pouvez-vous nous donner quelques exemples de traits qu'un bon développeur pourrait posséder??

Un bon développeur est un bon solutionneur de problèmes qui explore toutes les pistes pour atteindre un objectif. Un bon développeur tire des leçons de ses erreurs passées et met tout en œuvre pour éviter de les répéter. Enfin, un bon développeur web est une personne qui maîtrise toutes les technologies et qui passe plus de temps à les comprendre et à les expérimenter..

Sur quels types de projets travaillez-vous ces jours-ci? Des aperçus ou des choses que vous pouvez partager avec nous?

En plus d’essayer de publier d’autres publications MooTools et jQuery sur mon blog, j’ai quelques projets parallèles. Un projet s'appelle OPTMZR, un site Web qui offrira de nombreux outils pour optimiser votre JavaScript, CSS, HTML, les images, etc. L’autre projet sur lequel je travaille est un site Web pour mon prochain mariage. Je vais ajouter quelques techniques MooTools qui feront l'objet d'un blog une fois le site terminé..

Puisque vous écrivez beaucoup, tous les plans d'un livre écrit par David Walsh à l'avenir?

On m'a déjà demandé d'écrire des livres MooTools, mais tout ce que j'ai entendu dire, c'est que c'est une tonne de travail avec très peu de retour. J'aimerais voir mon nom imprimé, mais je pense que mon temps est mieux servi que de bloguer quotidiennement et d'aider les gens sur IRC. J'espère qu'un jour je pourrai publier le livre de David Walsh qui mettrait en vedette tous mes articles de blog au fil des ans..

Avez-vous des sites Web ou des projets que vous voudriez connecter sans vergogne à plus de 50 000 abonnés?

Je recommande vraiment aux internautes de consulter mon blog. J'ai de nombreux didacticiels jQuery et MooTools, ainsi que des démonstrations qui vous permettront de mieux comprendre les deux cadres. N'hésitez pas à me suivre sur Twitter: @davidwalshblog. Je recommande également de visiter Script & Style - Chris Coyier et moi-même, modérons et approuvons des articles HTML / Javascript / CSS de qualité supérieure rédigés par des experts du secteur. Et n'oubliez pas de visiter MooTools Forge - des centaines de plug-ins MooTools de qualité conçus par des concepteurs et des développeurs comme vous! MooTools FTW!

Écrire un tutoriel Plus

Saviez-vous que vous pouvez gagner jusqu'à 600 USD en écrivant un tutoriel et / ou un screencast PLUS pour nous?? Nous recherchons des didacticiels détaillés et bien écrits sur HTML, CSS, PHP et JavaScript. Si vous en avez la possibilité, veuillez contacter Jeffrey à l'adresse [email protected]..

Veuillez noter que la rémunération réelle dépendra de la qualité du didacticiel final et du screencast..

  • Suivez-nous sur Twitter ou abonnez-vous au fil RSS Nettuts + pour obtenir les meilleurs tutoriels de développement Web sur le Web..