JQuerified con Karl Swedberg

Recentemente ho avuto il piacere estremo di chattare con Karl Swedberg su Javascript e lo sviluppo web in generale. Karl è l'autore di numerosi libri Javascript come Learning jQuery e jQuery Reference Guide. Unisciti a noi mentre diamo un'occhiata nella mente di uno sviluppatore umile e di talento.

Per quelli di noi che potrebbero non avere familiarità con te e il tuo lavoro, dicci di più su te stesso e su ciò che fai per vivere

Sono uno sviluppatore web (principalmente front-end) presso una piccola agenzia, Fusionary Media, a Grand Rapids, nel Michigan. A 41 anni, sono probabilmente più vecchio della maggior parte degli sviluppatori web, ma la maggior parte delle volte mi sento ancora un ragazzino. Al di fuori del lavoro, sono molto coinvolto con jQuery. Sono nel team di progetto di jQuery, scrivo su di esso, istruisco gli altri su come usarlo e ne parlo alle conferenze.

Come e perché sei stato coinvolto nello sviluppo del web?

Il mio primo coinvolgimento nello sviluppo del web risale al 1995, quando ho creato un sito semplice per un caffè che possedevo. Dopo di che mi sono dilettato con roba sul web qua e là, perché mi sono davvero divertito, ma non ho iniziato a farlo come lavoro fino a circa quattro anni fa.

Quali sono alcuni dei tuoi hobby quando non lavori?

Mi piace leggere, correre e uscire con la mia famiglia. Fino a un anno fa, avevo studiato il karate per circa sette anni, e sto pensando di ricominciare da capo. Mi piace anche la fotografia, scoprire nuova musica e dare un'occhiata ai miei amici.

Dicci di più su EnglishRules.com e come è iniziato il sito.

È un mio blog personale che ho trascurato ultimamente. Non ricordo esattamente quando l'ho iniziato - 2000? 2001? - ma l'idea era di fornire alcune informazioni e collegamenti per i miei studenti. All'epoca insegnavo inglese alle scuole superiori. Da allora è diventato un miscuglio dei miei interessi fugaci. Nel 2003 ho caricato Movable Type e ho iniziato a bloggare su di esso. Ad un certo punto ho pensato che sarebbe stato divertente pubblicare una nuova parola ogni giorno da quello che stavo leggendo in quel momento, quindi l'ho fatto per un po '. Poi ho avuto la pazza idea di poter rispondere alle domande del mondo su grammatica, punteggiatura, stile, ortografia e così via, ma non è durato a lungo. Ho pubblicato un po 'di mie fotografie sul sito per un po', ma questo si è in qualche modo bloccato. Probabilmente la più grande motivazione per tenerlo in esecuzione è stata quella di offrire ad amici e parenti un'istantanea di quello che sto facendo, ma ultimamente Facebook e Twitter hanno riempito quel bisogno.

Quando hai iniziato a interessarti alla libreria javascript di jQuery?

Ho iniziato a usare jQuery intorno a maggio o giugno del 2006. Ho ancora una copia di "Rev 27" del file core jQuery dal 2 maggio 2006, prima ancora che avesse un numero di versione. È un peccato che il file sia compresso e offuscato. Sarebbe davvero divertente scavare e vedere quanto è cambiato.

Che è venuto prima, LearningjQuery.com o il libro Learning jQuery?

Il sito è venuto prima. Dopo aver giocato con jQuery per un paio di mesi, ho pensato che sarebbe stata una buona idea iniziare a documentare ciò che avevo imparato. Ho chiesto a John Resig se gli dispiaceva usare il nome di jQuery e il blog sulle mie esperienze, ed era entusiasta dell'idea.

Alcuni mesi dopo aver aperto il blog, qualcuno della Packt Publishing mi contattò e mi chiese se mi sarebbe piaciuto scrivere un libro su jQuery, un'offerta che mi lusingò e mi terrorizzò. Ho accettato di farlo, ma solo se il mio amico (Jonathan Chaffer) poteva scriverlo con me. Lui è un programmatore molto migliore di me, e io ero ancora solo un novizio in quel momento.

Perché jQuery? Perché non MooTools o Prototype?

Scegliere una libreria JavaScript è molto simile alla scelta di una reflex digitale (una volta che si prende il prezzo dall'equazione, ovviamente). Perché Nikon? Perché non Canon o Pentax? Non sono sicuro che qualcuno possa rispondere in modo soddisfacente a queste domande sulla base del solo merito tecnico. Molto ha a che fare con beni immateriali: comunità, supporto, compatibilità con i tuoi modelli mentali già stabiliti su come le cose dovrebbero funzionare e apparire e sentire. Le persone considerano anche l'estensibilità - sotto forma di obiettivi e accessori per fotocamere e plug-in e widget per librerie JavaScript. Certo, il merito tecnico ha un ruolo. Prestazioni, funzionalità e affidabilità sono importanti. Ma come con le compagnie di telecamere, gli sviluppatori di librerie JavaScript continuano a scavalcare gli uni sugli altri in queste aree, e la migliore in una di queste aree oggi potrebbe non essere la migliore in quell'area tra sei mesi.

La ragione per cui ho scelto jQuery in primo luogo è che aveva senso per me quasi all'istante. Ho visto che potevo trasferire facilmente la mia conoscenza dei CSS a jQuery con il suo approccio centrato sul DOM. Da allora, come ho imparato di più sulle tecniche JavaScript avanzate, ho trovato un semplice JavaScript sufficiente per trattare le aree del linguaggio che jQuery non affronta e non ho sentito il bisogno di fare affidamento su una libreria per quelle aree . Amo anche lo spirito di comunità e la generosità e la gentilezza degli altri membri del team di progetto e dei contributori degli elenchi di discussione.

Quale parte di jQuery, o di Javascript in generale, trovi che i nuovi sviluppatori hanno più problemi?

La domanda che vedo più spesso nella lista di discussione di jQuery (Gruppo Google) è sulla falsariga di "Perché i miei eventi smettono di funzionare dopo che ho inserito elementi nel mio documento?" Abbiamo un argomento dettagliato sulle FAQ che risponde a questa domanda. Ho scritto un paio di articoli su learningjquery.com a riguardo. Abbiamo il plugin Live Query e, a partire da jQuery 1.3, il metodo .live () che risolve il problema. Eppure, nonostante tutto, la domanda si presenta ancora alcune volte a settimana.

Oltre ai documenti jQuery, dove gli utenti possono trovare altre risorse jQuery per aiutare a risolvere eventuali problemi che potrebbero avere con la libreria?

Oltre a learningjquery.com e al libro Learning jQuery 1.3, ci sono alcune grandi risorse. Remy Sharp ha dei fantastici screencast sul suo jQuery per Designers, sito e ho visto alcuni fantastici articoli di Marc Grabanski e James Padolsey sui loro rispettivi blog. Il jQuery Google Group è molto popolare, con oltre 16.000 membri e il canale #jquery IRC su freenode.net è abbastanza attivo e utile.

Puoi nominare una caratteristica che desideri che jQuery sia stata confezionata con ciò che attualmente non è

Vorrei che il metodo .live () funzionasse con tutti i tipi di evento. Attualmente funziona solo con un sottoinsieme, quindi non è possibile utilizzarlo con modifiche, messa a fuoco, sfocatura, invio, mouseenter o mouseleave. Penso anche che sarebbe bello poter usare una funzione anonima come argomento per .css (), .val () e .html () allo stesso modo per .attr ().

Quali consigli o consigli puoi offrire a quelli che sono relativamente nuovi in ​​Javascript? Dovrebbero imparare Javascript prima di passare a jQuery per capire meglio l'argomento?

Temo che queste sembrino banalità, ma qui segue: non aver paura di imparare mentre vai. Non devi avere tutto capito prima del tempo. Sii disposto a fare errori. Continua a imparare cose nuove sulla lingua e cerca di stabilire connessioni tra ciò che già sai e ciò che stai imparando attualmente.

Puoi nominare alcune "cattive pratiche" che vedi essere usate spesso con jQuery?

Sicuro. Una cattiva pratica è usare jQuery per qualcosa che potresti fare più facilmente ed efficientemente con i CSS. Ad esempio, gli sviluppatori web per anni hanno cambiato la posizione di sfondo di un'immagine sprite quando il mouse dell'utente si posiziona su un collegamento. Non c'è assolutamente alcun motivo per usare jQuery per questo, a meno che lo sviluppatore non voglia che il cambiamento del passaggio del mouse sia animato.

Un'altra cattiva pratica è la ripetizione inutile di selettori. Invece di creare un altro oggetto jQuery ogni volta che vuoi fare qualcosa su un particolare insieme di elementi, concatenare i metodi o memorizzare un riferimento all'oggetto jQuery in una variabile e usarlo.

Quali sono alcuni modi in cui si può migliorare la propria conoscenza di jQuery e diventare più efficienti quando si lavora con il framework?

Leggi tutorial da siti affidabili. Fai domande sulla lista di discussione e leggi le risposte alle domande di altre persone. In particolare, leggi tutto ciò che Michael Geary e Dave Methvin pubblicano nella lista. Prova ad emulare il codice di grandi autori di plugin come Mike Alsup, Ariel Flesler, Jörn Zaefferer e Brandon Aaron.

Lo sviluppo di plugin jQuery è davvero decollato negli ultimi due anni, hai qualche plugin preferito che usi frequentemente o preferisci scrivere da solo?

Scrivo spesso i miei, ma ne uso alcuni abbastanza frequentemente. Ogni cliente sembra volere un qualche tipo di rotatore di immagini sulla sua homepage, quindi per questo uso il plugin Cycle di Mike Alsup. Uso anche i suoi plugin Form e Media un bel po '. Faccio spesso affidamento sul plug-in Superfish di Joel Birch e sul plugin hoverIntent di Brian Cherne quando un client richiede i menu a discesa. Ultimamente utilizzo sempre più l'interfaccia utente di jQuery per temi generali dei widget, effetti avanzati, cursori e elementi trascinabili / trascinabili.

Ci sono caratteristiche specifiche (o meno) che non ti piacciono di jQuery?

Non sono pazzo di alcuni dei nomi dei metodi nell'API. Nelle prime versioni di jQuery, c'erano due nomi di metodi per attraversare tutto l'albero DOM: .parents () e .ancestors (). Quando l'API è stata ritagliata, .ancestors () è stato eliminato. Avrei preferito lasciar cadere .parents () perché penso che "antenati" descrivano meglio cosa viene selezionato. E mentre in generale mi piace come jQuery sovraccarichi i metodi, penso che i metodi .load () e .toggle () portino l'idea un po 'troppo lontano.

Hai scritto numerosi libri su jQuery, qual è la parte più difficile di pubblicare questi libri?

La parte più difficile è probabilmente restare nei tempi previsti. Ma è assolutamente essenziale stabilire un programma ragionevole prima del tempo e attenersi ad esso per tutto il percorso.

Cosa pensi che il futuro abbia per il framework jQuery?

La maggior parte delle modifiche al core jQuery si troveranno nelle aree di prestazioni, stabilità e correzioni di errori. Non vedo molte nuove funzionalità aggiunte al core. Per le nuove funzionalità, tieni d'occhio l'interfaccia utente di jQuery. C'è un sacco di grandi novità in fase di sviluppo lì.

Avete altri libri che avete intenzione di pubblicare in qualsiasi momento presto?

Sono uno dei numerosi revisori tecnici per un libro di cucina jQuery che è in lavorazione. Ma al momento non sto creando libri e non ho intenzione di farlo in qualunque momento presto.

Hai delle spine spudorate di cui vorresti sapere i nostri lettori?

Nulla che non sia già stato menzionato, ma grazie per l'offerta!

Grazie mille per aver dedicato del tempo a chattare con me Karl, e grazie per tutte le fantastiche risorse, trucchi e tutorial di jQuery che hai dato alla community nel corso degli anni.

Il piacere è tutto mio! Sono lusingato dal tuo interesse per ciò che ho da dire.

  • Seguici su Twitter o iscriviti al feed RSS di NETTUTS per ulteriori tuts e articoli di sviluppo web giornalieri.