J'ai récemment eu le plaisir extrême de discuter avec Karl Swedberg au sujet de Javascript et du développement Web en général. Karl est l'auteur de plusieurs livres Javascript tels que Learning jQuery et jQuery Reference Guide. Rejoignez-nous pour jeter un coup d'œil dans l'esprit d'un développeur humble et talentueux.
Je suis un développeur Web (principalement front-end) dans une petite agence, Fusionary Media, à Grand Rapids, dans le Michigan. À 41 ans, je suis probablement plus âgé que la plupart des développeurs Web, mais la plupart du temps, je me sens encore comme un enfant. En dehors du travail, je suis très impliqué dans jQuery. Je fais partie de l'équipe de projet jQuery. J'écris à ce sujet, je forme les autres à son utilisation et j'en parle à des conférences..
Ma toute première implication dans le développement Web remonte à 1995, lorsque j'ai construit un site simple pour un café que je possédais. Après cela, je me suis frotté à des trucs Web ici et là, parce que j’en ai vraiment pris un bon coup, mais je n’ai commencé à le faire en tant que travail il ya environ quatre ans..
J'aime lire, courir et passer du temps avec ma famille. Il y a un an à peine, j'avais étudié le karaté pendant environ sept ans et j'envisage de recommencer. J'aime aussi la photographie, découvrir de nouvelles musiques et sortir avec mes amis..
C'est un blog personnel que j'ai négligé ces derniers temps. Je ne me souviens plus exactement quand j'ai commencé - 2000? 2001? - mais l’idée était de fournir des informations et des liens à mes étudiants. J'enseignais l'anglais au lycée à l'époque. Depuis lors, c'est devenu un méli-mélo de mes intérêts éphémères. En 2003, j'ai chargé Movable Type et commencé à bloguer à ce sujet. À un moment donné, j'ai pensé qu'il serait amusant de publier un nouveau mot chaque jour à partir de ce que j'ai lu à l'époque, alors je l'ai fait pendant un moment. Ensuite, j'ai eu la folle idée de pouvoir répondre aux questions du monde concernant la grammaire, la ponctuation, le style, l'orthographe, etc., mais cela n'a pas duré longtemps. J'ai posté un certain nombre de mes photographies sur le site pendant un moment, mais cela a aussi stagné. La plus grande motivation pour continuer à fonctionner était probablement de donner à mes amis et à ma famille un instantané de ce que je faisais, mais récemment, Facebook et Twitter répondent à ce besoin..
J'ai commencé à utiliser jQuery vers le mois de mai ou juin 2006. Il me reste une copie de "Rev 27" du fichier principal de jQuery datant du 2 mai 2006, avant même qu’il n’ait eu un numéro de version. C'est dommage que le fichier soit compressé et obscurci. Ce serait vraiment amusant de creuser et de voir à quel point tout a changé.
Le site est venu en premier. Après avoir joué avec jQuery pendant quelques mois, j'ai pensé que ce serait une bonne idée de commencer à documenter ce que j'avais appris. J'ai demandé à John Resig s'il voulait bien utiliser le nom jQuery et bloguer à propos de mes expériences, et il était enthousiasmé par cette idée..
Quelques mois après le début de mon blog, une personne de Packt Publishing m'a contactée et m'a demandé si j'aimerais écrire un livre sur jQuery - une offre qui m'a à la fois flatté et terrifié. J'ai accepté de le faire, mais seulement si mon ami (Jonathan Chaffer) pouvait l'écrire avec moi. Il est bien meilleur programmeur que moi et j’étais encore novice à l’époque..
Choisir une bibliothèque JavaScript revient à choisir un appareil photo reflex numérique (une fois que vous enlevez le prix, bien sûr). Pourquoi Nikon? Pourquoi pas Canon ou Pentax? Je ne suis pas sûr que quiconque puisse répondre de manière satisfaisante à ces questions en se basant uniquement sur le mérite technique. Beaucoup de choses ont à voir avec les actifs incorporels: la communauté, le support, la compatibilité avec vos modèles mentaux déjà établis sur la manière dont les choses devraient fonctionner et se ressembler. Les utilisateurs envisagent également l'extensibilité - sous la forme d'objectifs et d'accessoires pour appareils photo, de plug-ins et de widgets pour les bibliothèques JavaScript. Bien sûr, le mérite technique joue un rôle. Les performances, les fonctionnalités et la fiabilité sont importantes. Mais comme dans le cas des sociétés de caméras, les développeurs de bibliothèques JavaScript continuent de se dépasser dans ces domaines, et le meilleur d'entre eux aujourd'hui n'est peut-être pas le meilleur dans ce domaine dans six mois..
La raison pour laquelle j'ai choisi jQuery en premier lieu, c'est que cela me paraissait logique presque instantanément. J'ai vu que je pouvais facilement transférer ma connaissance de CSS à jQuery avec son approche centrée sur DOM. Depuis lors, ayant appris davantage sur les techniques JavaScript avancées, j’ai trouvé le langage JavaScript suffisant pour traiter les zones du langage que jQuery ne traite pas et je n’ai pas ressenti le besoin de compter sur une bibliothèque pour ces zones. . J'aime aussi l'esprit communautaire, la générosité et la gentillesse des autres membres de l'équipe de projet et des contributeurs des listes de discussion..
La question que je vois le plus souvent sur la liste de discussion de jQuery (groupe Google) va dans le sens de "Pourquoi mes événements ne fonctionnent-ils plus après que j'ai inséré des éléments dans mon document?" Nous avons un sujet de FAQ détaillé qui répond à cette question. J'ai écrit quelques articles sur learningjquery.com à ce sujet. Nous avons le plugin Live Query et, à partir de jQuery 1.3, la méthode .live () qui résolvent le problème. Malgré tout, la question se pose encore quelques fois par semaine.
En plus de learningjquery.com et du livre Learning jQuery 1.3, il existe de très bonnes ressources. Remy Sharp publie d'excellents screencasts sur son site jQuery for Designers et j'ai lu d'excellents articles de Marc Grabanski et James Padolsey sur leurs blogs respectifs. Le groupe Google jQuery est très populaire, avec plus de 16 000 membres et le canal IRC #jquery sur freenode.net est très actif et utile..
Je souhaite que la méthode .live () fonctionne avec tous les types d'événements. Actuellement, il ne fonctionne qu'avec un sous-ensemble, vous ne pouvez donc pas l'utiliser avec les fonctions de modification, focus, flou, soumission, mouseenter ou mouseleave. Je pense aussi que ce serait bien de permettre à une fonction anonyme d'être utilisée comme argument pour .css (), .val () et .html () de la même manière que pour .attr ()..
J'ai bien peur que cela ressemble à des platitudes, mais voici: n'ayez pas peur d'apprendre au fur et à mesure. Vous n'avez pas besoin de tout savoir à l'avance. Être prêt à faire des erreurs. Continuez à apprendre de nouvelles choses sur la langue et essayez de faire des liens entre ce que vous savez déjà et ce que vous êtes en train d'apprendre..
Sûr. Une mauvaise pratique consiste à utiliser jQuery pour quelque chose que vous pourriez faire plus facilement et efficacement avec CSS. Par exemple, depuis des années, les développeurs Web modifient la position d'arrière-plan d'un sprite d'image lorsque la souris de l'utilisateur survole un lien. Il n'y a absolument aucune raison d'utiliser jQuery pour cela, à moins que le développeur ne veuille animer le changement d'état survolé..
Une autre mauvaise pratique consiste à répéter inutilement les sélecteurs. Au lieu de créer un autre objet jQuery chaque fois que vous souhaitez modifier quelque chose, enchaînez les méthodes ou stockez une référence à l'objet jQuery dans une variable et utilisez-la..
Lire des tutoriels de sites réputés. Posez des questions sur la liste de discussion et lisez les réponses aux questions des autres. En particulier, lisez tout ce que Michael Geary et Dave Methvin ont écrit sur la liste. Essayez d'imiter le code de grands auteurs de plugins tels que Mike Alsup, Ariel Flesler, Jörn Zaefferer et Brandon Aaron..
J'écris souvent le mien, mais j'en utilise quelques-uns assez fréquemment. Chaque client semble vouloir une sorte de rotateur d'image sur sa page d'accueil, j'utilise donc le plugin Cycle de Mike Alsup pour cela. J'utilise aussi un peu ses plugins Form et Media. Je me fie souvent au plugin Superfish de Joel Birch et au plugin hoverIntent de Brian Cherne lorsqu'un client veut des menus déroulants. Dernièrement, j'utilise jQuery UI de plus en plus pour la thématisation générale de widgets, les effets avancés, les curseurs et les éléments déplaçables / supprimables..
Je ne suis pas fou de certains noms de méthodes dans l'API. Dans les toutes premières versions de jQuery, il existait deux noms de méthode pour parcourir l'arborescence DOM: .parents () et .ancestors (). Lorsque la API a été réduite, .ancestors () a été abandonnée. J'aurais préféré supprimer .parents () car je pense que "ancêtres" décrit mieux ce qui est sélectionné. Et bien qu'en général j'aime la façon dont jQuery surcharge les méthodes, je pense que les méthodes .load () et .toggle () poussent l'idée un peu trop loin.
La partie la plus difficile est probablement de rester dans les temps. Mais il est absolument essentiel de fixer un calendrier raisonnable à l’avance et de le respecter tout au long du processus..
La plupart des modifications apportées au noyau de jQuery concernent les performances, la stabilité et les corrections de bugs. Je ne vois pas beaucoup de nouvelles fonctionnalités ajoutées au noyau. Pour les nouvelles fonctionnalités, gardez un œil sur l'interface utilisateur de jQuery. Il y a beaucoup de nouvelles choses en cours de développement là-bas.
Je suis l'un des nombreux réviseurs techniques d'un livre de recettes jQuery en préparation. Mais je n'écris actuellement aucun livre et je n'ai pas l'intention de le faire de si tôt.
Rien qui n'ait déjà été mentionné, mais merci pour l'offre!
Mon plaisir! Je suis flatté de votre intérêt pour ce que j'ai à dire.