jQuerified med Karl Swedberg

Jeg har nylig hatt ekstrem glede av å chatte med Karl Swedberg om Javascript og webutvikling generelt. Karl er forfatter av flere Javascript-bøker som læring jQuery og jQuery Reference Guide. Bli med oss ​​når vi tar en titt inne i en ydmyk og talentfull utvikler.

For de av oss som kanskje ikke er kjent med deg og ditt arbeid, fortell oss mer om deg selv og hva du gjør for å leve

Jeg er en (hovedsakelig frontend) webutvikler ved et lite byrå, Fusionary Media, i Grand Rapids, Michigan. Ved 41 er jeg antagelig eldre enn de fleste webutviklere, men mesteparten av tiden føler jeg meg fortsatt som et barn. Utenfor jobben er jeg veldig involvert i jQuery. Jeg er på jQuery-prosjektteamet, og jeg skriver om det, trener andre hvordan man bruker det og snakker om det på konferanser.

Hvordan og hvorfor ble du først involvert i webutvikling?

Mitt aller første engasjement med webutvikling var i 1995, da jeg bygget et enkelt nettsted for et kaffebar jeg eide. Etter det dabbled jeg med webspor her og der, fordi jeg virkelig fikk et spark ut av det, men jeg begynte ikke å gjøre det som en jobb for omtrent fire år siden.

Hva er noen av dine hobbyer når du ikke jobber?

Jeg liker å lese, løpe og slappe av med familien min. Inntil for et år siden, hadde jeg studert karate i omtrent syv år, og jeg vurderer å starte opp igjen. Jeg liker også fotografering, oppdage ny musikk og geeking ut med vennene mine.

Fortell oss mer om EnglishRules.com og hvordan nettstedet startet.

Det er en personlig blogg av meg som jeg har forsømt i det siste. Jeg kan ikke huske nøyaktig når jeg startet det - 2000? 2001? - men ideen var å gi litt informasjon og lenker til studentene mine. Jeg lærte High School English på den tiden. Siden da har det blitt en mishmash av mine flyktige interesser. I 2003 lastet jeg opp Movable Type og begynte å blogge på den. På et tidspunkt syntes jeg det ville være morsomt å legge inn et nytt ord hver dag fra det jeg skjedde å lese på det tidspunktet, så gjorde jeg det en stund. Da hadde jeg det galne forestillingen om at jeg kunne svare på verdens spørsmål om grammatikk, tegnsetting, stil, stavemåte osv., Men det var ikke lenge. Jeg postet en haug med fotografiet mitt på nettstedet for en stund, men det har også stanset. Sannsynligvis den største motivasjonen for å holde det i gang, var å gi venner og familie et øyeblikksbilde av hva jeg gjør, men i det siste har Facebook og Twitter fylt det behovet.

Når ble du først interessert i jQuery javascript biblioteket?

Jeg begynte å bruke jQuery en gang i løpet av mai eller juni 2006. Jeg har fortsatt en kopi av "Rev 27" av jQuery-kjernefilen fra 2. mai 2006, før den hadde et versjonsnummer. Det er synd at filen er komprimert og forvirret. Det ville være veldig gøy å grave gjennom det og se hvor mye har endret seg.

Som kom først, LearningjQuery.com eller Learning jQuery-boken?

Siden kom først. Etter å ha spilt med jQuery i et par måneder, trodde jeg det ville være en god ide å begynne å dokumentere hva jeg hadde lært. Jeg spurte John Resig om han ville tenke meg å bruke jQuery-navnet og blogge om mine erfaringer, og han var begeistret for ideen.

Noen måneder etter at jeg startet bloggen, ble noen fra Packt Publishing kontaktet meg og spurte om jeg vil skrive en bok om jQuery - et tilbud som både smigret og skremt meg. Jeg ble enige om å gjøre det, men bare hvis min venn (Jonathan Chaffer) kunne skrive det med meg. Han er en mye bedre programmerer enn jeg, og jeg var fortsatt bare en nybegynner på den tiden.

Hvorfor jQuery? Hvorfor ikke MooTools eller Prototype?

Å velge et JavaScript-bibliotek er mye som å velge et digitalt speilreflekskamera (når du tar pris ut av ligningen, selvsagt). Hvorfor Nikon? Hvorfor ikke Canon eller Pentax? Jeg er ikke sikker på at noen kan tilfredsstillende svare på disse spørsmålene basert på teknisk fortjeneste alene. Mye har å gjøre med immaterielle ressurser: samfunn, støtte, kompatibilitet med dine allerede etablerte mentale modeller om hvordan ting skal fungere og se og føle. Folk vurderer også utvidbarhet - i form av linser og tilbehør til kameraer og plugins og widgets for JavaScript-biblioteker. Sikker, teknisk merit spiller en rolle. Ytelse, funksjoner og pålitelighet er viktige. Men som med kamerabedrifter fortsetter JavaScript-bibliotekets utviklere å hoppe over hverandre i disse områdene, og den beste i noen av disse områdene i dag er kanskje ikke den beste i dette området seks måneder fra nå.

Grunnen til at jeg valgte jQuery i utgangspunktet er at det var fornuftig for meg nesten umiddelbart. Jeg så at jeg enkelt kunne overføre min kunnskap om CSS til jQuery med sin DOM-sentrert tilnærming. Siden da, som jeg har lært mer om avanserte JavaScript-teknikker, har jeg funnet vanlig JavaScript tilstrekkelig til å håndtere områdene på språket som jQuery ikke adresserer, og har ikke følt behov for å stole på et bibliotek for de områdene . Jeg elsker også fellesskapets ånd og generøsiteten og nådigheten til de andre medlemmene av prosjektgruppen og bidragsyterne til diskusjonslistene.

Hvilken del av jQuery, eller Javascript generelt, finner du at nye utviklere sliter med mest?

Spørsmålet jeg ser ofte stillet på jQuery-diskusjonslisten (Google-gruppen) er i tråd med "Hvorfor stopper hendelsene mine etter at jeg har satt inn elementer i dokumentet mitt?" Vi har et detaljert FAQ-tema som svarer på dette spørsmålet. Jeg har skrevet et par artikler om learningjquery.com om det. Vi har Live Query-plugin-modulen, og fra jQuery 1.3, .live () -metoden som løser problemet. Til tross for alt dette kommer spørsmålet fortsatt opp noen ganger i uken.

Foruten jQuery-dokumentene, hvor kan brukere finne andre jQuery-ressurser for å løse eventuelle problemer de måtte ha med biblioteket?

Bortsett fra learningjquery.com og Learning jQuery 1.3-boken, er det ganske mange gode ressurser. Remy Sharp har noen fantastiske screencasts på sin jQuery for Designers, site, og jeg har sett noen gode artikler fra Marc Grabanski og James Padolsey på deres respektive blogger. Google-gruppen jQuery er veldig populær, med over 16.000 medlemmer og #jquery IRC-kanalen på freenode.net er ganske aktiv og nyttig.

Kan du nevne en funksjon du ønsker jQuery kom pakket med det den for øyeblikket ikke gjør

Jeg ønsker at .live () -metoden ville fungere med alle hendelsestyper. For tiden fungerer det bare med en delmengde, slik at du ikke kan bruke den med endring, fokus, uskarp, send, musenter eller mouseleave. Jeg tror også det ville være kult å la en anonym funksjon bli brukt som et argument for .css (), .val () og .html () på samme måte som .attr ().

Hvilke tips eller råd kan du tilby de som er relativt nye for Javascript? Skal de lære Javascript før de beveger seg på jQuery for å bedre forstå emnet?

Jeg er redd for at disse skal høres ut som platituder, men her går: Ikke vær redd for å lære når du går. Du trenger ikke å ha alt funnet ut på forhånd. Vær villig til å gjøre feil. Fortsett å lære nye ting om språket, og prøv å gjøre sammenhenger mellom det du allerede vet og hva du for tiden lærer.

Kan du nevne noen "dårlige praksis" du ser blir brukt ofte med jQuery?

Sikker. En dårlig praksis bruker jQuery til noe du kan gjøre lettere og effektivt med CSS. For eksempel har webutviklere i mange år forandret bakgrunnsposisjonen til en bildesprite når brukerens mus svinger over en lenke. Det er absolutt ingen grunn til å bruke jQuery for dette, med mindre utvikleren vil at svinge-state endringen skal animeres.

En annen dårlig praksis er unødvendig repeterende selektorer. I stedet for å opprette et annet jQuery-objekt hver gang du vil gjøre noe med et bestemt sett med elementer, kan du koble metodene eller lagre en referanse til jQuery-objektet i en variabel og bruke det.

Hva er noen måter man kan forbedre sin kunnskap om jQuery og bli mer effektiv når man arbeider med rammen?

Les veiledning fra anerkjente nettsteder. Still spørsmål på diskusjonslisten og les svar på andres spørsmål. Les spesielt alt Michael Geary og Dave Methvin posterer på listen. Prøv å etterligne koden til store pluginforfattere som Mike Alsup, Ariel Flesler, Jörn Zaefferer og Brandon Aaron.

jQuery plugin utvikling har virkelig tatt av de siste to årene, har du noen favoritt plugins du ofte bruker eller foretrekker du å skrive din egen?

Jeg skriver ofte min egen, men jeg bruker noen ganske ofte. Hver klient synes å ha en slags bilderotator på deres hjemmeside, så jeg bruker Mike Alsups Cycle plugin for det. Jeg bruker også hans Form og Media plugins ganske mye. Jeg stoler ofte på Joel Birchs Superfish-plugin og Brian Cherne's hoverIntent-plugin når en klient ønsker rullegardinmenyer. I det siste har jeg brukt jQuery-brukergrensesnittet mer og mer for generell widget-temaer, avanserte effekter, glidebrytere og trekkbare / droppbare elementer.

Er det noen spesifikke funksjoner (eller mangel på det) som du ikke liker om jQuery?

Jeg er ikke gal om noen av metodens navn i API. I svært tidlige versjoner av jQuery var det to metodenavn for å krysse hele DOM-treet: .parents () og .ancestors (). Når API ble trimmet, ble .ancestors () droppet. Jeg ville ha foretrukket å droppe .parents () i stedet fordi jeg tror "forfedre" bedre beskriver hva som blir valgt. Og mens jeg generelt liker hvordan jQuery overloads metoder, tror jeg at .load () og .toggle () metodene tar ideen litt for langt.

Du har skrevet mange bøker på jQuery, hva er den vanskeligste delen av å få disse bøkene publisert?

Den tøffeste delen er sannsynligvis bare å holde seg på planen. Men det er helt avgjørende å sette en rimelig tidsplan på forhånd og holde seg til den hele veien gjennom.

Hva tror du fremtiden har for jQuery-rammen?

De fleste endringene i jQuery-kjernen kommer til å ligge innen ytelse, stabilitet og feilrettinger. Jeg ser ikke mange nye funksjoner som legges til kjerne. For nye funksjoner, hold øye med jQuery UI. Det er mange flotte nye ting som blir utviklet der.

Har du flere bøker du planlegger å publisere når som helst snart?

Jeg er en av flere tekniske anmeldere for en jQuery kokebok som er i verkene. Men jeg for tiden ikke forfatter noen bøker og har ikke planer om å gjøre det helst snart.

Har du noen skamløse plugger du vil at leserne skal vite om?

Ingenting som ikke allerede er nevnt, men takk for tilbudet!

Tusen takk for at du tok deg tid til å chatte med meg Karl, og takk for alle de gode jQuery-ressursene, triksene og opplæringene du har gitt til samfunnet gjennom årene.

Bare hyggelig! Jeg er smigret av din interesse for det jeg må si.

  • Følg oss på Twitter, eller abonner på NETTUTS RSS Feed for flere daglige webutviklingsverktøy og artikler.