jQuerified met Karl Swedberg

Ik heb onlangs het extreme plezier gehad om met Karl Swedberg te praten over Javascript en webontwikkeling in het algemeen. Karl is de auteur van verschillende Javascript-boeken, zoals Learning jQuery en jQuery Reference Guide. Ga met ons mee als we een kijkje nemen in de geest van een bescheiden en getalenteerde ontwikkelaar.

Degenen die misschien niet bekend zijn met u en uw werk, vertellen ons meer over uzelf en over wat u doet voor de kost

Ik ben een (meestal front-end) webontwikkelaar bij een klein bureau, Fusionary Media, in Grand Rapids, Michigan. Op mijn 41e ben ik waarschijnlijk ouder dan de meeste webontwikkelaars, maar meestal voel ik me nog steeds een kind. Buiten werk ben ik erg betrokken bij jQuery. Ik zit in het jQuery-projectteam en ik schrijf erover, train anderen hoe het te gebruiken en praat erover tijdens conferenties.

Hoe en waarom ben je voor het eerst betrokken geweest bij webontwikkeling?

Mijn allereerste betrokkenheid bij webontwikkeling was in 1995, toen ik een eenvoudige site bouwde voor een koffiehuis dat ik bezat. Daarna spendeerde ik hier en daar met webdingen, omdat ik er echt een kick van kreeg, maar ik begon het niet als een baan te doen tot ongeveer vier jaar geleden.

Wat zijn sommige van je hobby's als je niet werkt?

Ik hou van lezen, rennen en uitgaan met mijn familie. Tot een jaar geleden had ik ongeveer zeven jaar karate gestudeerd en ik overweeg om dat opnieuw te beginnen. Ik geniet ook van fotografie, het ontdekken van nieuwe muziek en geek uit met mijn vrienden.

Vertel ons meer over EnglishRules.com en hoe de website is gestart.

Het is een persoonlijke blog van mij die ik de laatste tijd verwaarloosd heb. Ik weet het niet meer precies toen ik eraan begon - 2000? 2001? - maar het idee was om wat informatie en links te bieden voor mijn studenten. Ik doceerde op dat moment High School English. Sindsdien is het een mengelmoes van mijn vluchtige interesses geworden. In 2003 heb ik Movable Type geladen en begonnen met bloggen. Op een gegeven moment dacht ik dat het leuk zou zijn om elke dag een nieuw woord te plaatsen van wat ik toevallig in die tijd las, dus dat deed ik een tijdje. Toen kreeg ik het gekke idee dat ik de vragen van de wereld over grammatica, interpunctie, stijl, spelling, enzovoort kon beantwoorden, maar dat duurde niet lang. Ik heb een aantal van mijn fotografie op de site geplaatst voor een tijdje, maar dat is ook een beetje vastgelopen. Waarschijnlijk de grootste motivatie om het draaiende te houden, was om vrienden en familie een momentopname te geven van wat ik aan het doen ben, maar de laatste tijd hebben Facebook en Twitter die behoefte ingevuld.

Wanneer ben je voor het eerst geïnteresseerd geraakt in de jQuery javascript-bibliotheek?

Ik begon jQuery ergens in mei of juni van 2006 te gebruiken. Ik heb nog steeds een kopie van "Rev 27" van het jQuery-kernbestand vanaf 2 mei 2006, voordat het zelfs een versienummer had. Het is een schande dat het bestand is gecomprimeerd en versluierd. Het zou erg leuk zijn om er doorheen te graven en te zien hoeveel er is veranderd.

Dat kwam eerst, LearningjQuery.com of het Learning jQuery-boek?

De site kwam eerst. Na een paar maanden met jQuery gespeeld te hebben, leek het me een goed idee om te beginnen met het documenteren van wat ik had geleerd. Ik vroeg John Resig of hij er bezwaar tegen had dat ik de naam jQuery gebruikte en blogde over mijn ervaringen, en hij was enthousiast over het idee.

Een paar maanden nadat ik met het blog begon, nam iemand van Packt Publishing contact met me op en vroeg of ik een boek wilde schrijven over jQuery - een aanbod dat me zowel gevleid en doodsbang maakte. Ik stemde ermee in om het te doen, maar alleen als mijn vriend (Jonathan Chaffer) het met mij kon schrijven. Hij is een veel betere programmeur dan ik, en ik was toen nog maar een beginneling.

Waarom jQuery? Waarom niet MooTools of Prototype?

Het kiezen van een JavaScript-bibliotheek lijkt veel op het kiezen van een digitale SLR-camera (als je eenmaal de prijs uit de vergelijking haalt, natuurlijk). Waarom Nikon? Waarom niet Canon of Pentax? Ik weet niet zeker of iemand deze vragen op bevredigende wijze kan beantwoorden op basis van technische verdiensten alleen. Veel heeft te maken met immateriële zaken: gemeenschap, ondersteuning, compatibiliteit met je reeds gevestigde mentale modellen over hoe dingen zouden moeten werken en eruit moeten zien en voelen. Mensen overwegen ook uitbreidbaarheid - in de vorm van lenzen en accessoires voor camera's en plug-ins en widgets voor JavaScript-bibliotheken. Natuurlijk, technische verdienste speelt wel een rol. Prestaties, functies en betrouwbaarheid zijn belangrijk. Maar net als bij de camerabedrijven blijven de ontwikkelaars van de JavaScript-bibliotheek elkaar in deze gebieden overvallen, en de beste in een van deze gebieden vandaag is misschien niet de beste in dat gebied zes maanden vanaf nu.

De reden dat ik jQuery koos, is dat het bijna meteen logisch voor me was. Ik zag dat ik mijn kennis van CSS gemakkelijk kon overdragen naar jQuery met zijn DOM-gerichte benadering. Sindsdien, omdat ik meer heb geleerd over geavanceerde JavaScript-technieken, heb ik duidelijk JavaScript voldoende gevonden om de gebieden van de taal te behandelen die jQuery niet behandelt, en heb ik niet de behoefte gevoeld om voor die gebieden op een bibliotheek te vertrouwen. . Ik hou ook van de gemeenschapszin en de vrijgevigheid en hoffelijkheid van de andere leden van het projectteam en de bijdragers aan de discussielijsten.

Welk deel van jQuery, of Javascript in het algemeen, vind je dat nieuwe ontwikkelaars het meest worstelen?

De vraag die ik het vaakst op de jQuery-discussielijst (Google Group) zie, is in de trant van "Waarom stoppen mijn activiteiten niet meer nadat ik elementen in mijn document heb ingevoegd?" We hebben een gedetailleerd FAQ-onderwerp dat deze vraag beantwoordt. Ik heb er een aantal artikelen over learnjquery.com over geschreven. We hebben de Live Query-plug-in en, vanaf jQuery 1.3, de .live () -methode die het probleem oplost. Maar ondanks dat komt de vraag nog steeds een paar keer per week.

Naast de jQuery-documenten kunnen gebruikers andere jQuery-bronnen vinden om eventuele problemen met de bibliotheek op te lossen.?

Afgezien van learnjquery.com en het Learning jQuery 1.3-boek, zijn er nogal wat geweldige bronnen. Remy Sharp heeft geweldige screencasts op zijn jQuery for Designers, site en ik heb enkele geweldige artikelen van Marc Grabanski en James Padolsey gezien op hun respectievelijke blogs. De jQuery Google Group is erg populair, met meer dan 16.000 leden en het #jquery IRC-kanaal op freenode.net is behoorlijk actief en nuttig.

Kunt u een functie noemen die u wenst, jQuery is meegeleverd met die die momenteel niet wordt geleverd

Ik zou willen dat de .live () -methode zou werken met alle gebeurtenistypen. Momenteel werkt het alleen met een subset, dus je kunt het niet gebruiken met wijzigen, scherpstellen, vervagen, indienen, mouseenter of mouseleave. Ik denk ook dat het cool zou zijn als een anonieme functie kon worden gebruikt als argument voor .css (), .val () en .html () op dezelfde manier als voor .attr ().

Welke tips of adviezen kunt u bieden die relatief nieuw zijn voor Javascript? Moeten ze Javascript leren voordat ze naar jQuery gaan om het onderwerp beter te begrijpen??

Ik ben bang dat deze als platitudes zullen klinken, maar hier geldt: wees niet bang om te leren terwijl je gaat. Je hoeft niet alles van tevoren uit te rekenen. Wees bereid om fouten te maken. Blijf nieuwe dingen leren over de taal en probeer verbanden te leggen tussen wat je al weet en wat je momenteel aan het leren bent.

Kun je enkele 'slechte praktijken' noemen waarvan je ziet dat ze vaak met jQuery worden gebruikt??

Zeker. Een slechte gewoonte is om jQuery te gebruiken voor iets dat je eenvoudiger en efficiënter met CSS kunt doen. Web-ontwikkelaars hebben bijvoorbeeld al jaren de achtergrondpositie van een beeldsprite gewijzigd wanneer de muis van de gebruiker over een link zweeft. Er is absoluut geen reden om jQuery hiervoor te gebruiken, tenzij de ontwikkelaar wil dat de zweeftoestandswijziging wordt geanimeerd.

Een andere slechte oefening is het onnodig herhalen van selectors. In plaats van een ander jQuery-object te maken elke keer dat u iets wilt doen met een bepaalde set elementen, keten de methoden of sla een verwijzing op naar het jQuery-object in een variabele en gebruik dat.

Wat zijn enkele manieren om hun kennis van jQuery te verbeteren en efficiënter te worden wanneer u met het framework werkt?

Lees handleidingen van gerenommeerde sites. Stel vragen op de discussielijst en lees de antwoorden op vragen van andere mensen. Lees in het bijzonder alles wat Michael Geary en Dave Methvin op de lijst plaatsen. Probeer de code van geweldige plugin-auteurs te emuleren, zoals Mike Alsup, Ariel Flesler, Jörn Zaefferer en Brandon Aaron.

De ontwikkeling van jQuery-plug-ins is de afgelopen twee jaar echt van de grond gekomen, heb je favoriete plug-ins die je vaak gebruikt of schrijf je liever zelf?

Ik schrijf vaak mijn eigen, maar ik gebruik er wel een paar vrij vaak. Elke klant lijkt op zijn homepage een soort van beeldrotator te willen hebben, daarom gebruik ik daarvoor Mike Alsup's Cycle-plug-in. Ik gebruik zijn Form en Media plug-ins ook best een beetje. Ik vertrouw vaak op de Superfish-plug-in van Joel Birch en de hoverIntent-plug-in van Brian Cherne wanneer een klant vervolgkeuzemenu's wil. De laatste tijd gebruik ik jQuery UI meer en meer voor algemene widgetthema's, geavanceerde effecten, schuifregelaars en versleepbare / uitwerpbare elementen.

Zijn er specifieke kenmerken (of het ontbreken daarvan) die je niet bevalt aan jQuery?

Ik ben niet gek op enkele van de methodamen in de API. In zeer vroege versies van jQuery waren er twee methodamen voor het doorlopen van de DOM-tree: .parents () and .ancestors (). Toen de API werd getrimd, werden .ancestors () verwijderd. Ik had in plaats daarvan liever .parents () laten vallen omdat ik denk dat 'voorouders' beter beschrijven wat er wordt geselecteerd. En hoewel ik het over het algemeen leuk vind dat jQuery methoden overbelast, denk ik dat de methoden .load () en .toggle () het idee een beetje te ver voeren.

Je hebt talloze boeken over jQuery geschreven, wat is het moeilijkste deel van het publiceren van deze boeken?

Het moeilijkste deel is waarschijnlijk gewoon op schema blijven. Maar het is absoluut noodzakelijk om van tevoren een redelijk schema op te stellen en dit de hele tijd door te houden.

Wat denk je dat de toekomst zal brengen voor het jQuery-raamwerk?

De meeste wijzigingen in de kern van jQuery zullen zich voordoen op het gebied van prestatie, stabiliteit en bugfixes. Ik zie niet veel nieuwe functies toegevoegd aan de kern. Voor nieuwe functies houdt u de gebruikersinterface van jQuery in de gaten. Er worden daar veel geweldige nieuwe dingen ontwikkeld.

Heeft u nog meer boeken die u binnenkort wilt publiceren??

Ik ben een van de technische reviewers voor een jQuery-kookboek dat in de maak is. Maar ik schrijf momenteel geen boeken en ik ben niet van plan dit binnenkort te doen.

Heb je schaamteloze pluggen waarvan je wilt dat onze lezers het weten??

Niets dat nog niet is genoemd, maar bedankt voor het aanbod!

Heel erg bedankt dat je de tijd hebt genomen om met mij Karl te kletsen, en bedankt voor alle geweldige jQuery-bronnen, -trucs en -handleidingen die je in de loop der jaren aan de community hebt gegeven.

Graag gedaan! Ik ben gevleid door uw interesse in wat ik te zeggen heb.

  • Volg ons op Twitter, of abonneer je op de NETTUTS RSS-feed voor meer dagelijkse webontwikkelingen, tuts en artikelen.