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.
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.
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.
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.
È 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.
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.
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.
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.
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 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.
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 ().
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.
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.
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.
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.
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.
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.
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ì.
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.
Nulla che non sia già stato menzionato, ma grazie per l'offerta!
Il piacere è tutto mio! Sono lusingato dal tuo interesse per ciò che ho da dire.