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.
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.
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.
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.
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.
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.
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.
Å 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.
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.
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.
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 ().
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.
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.
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.
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.
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.
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.
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.
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.
Ingenting som ikke allerede er nevnt, men takk for tilbudet!
Bare hyggelig! Jeg er smigret av din interesse for det jeg må si.