David Walsh è un noto sviluppatore web di ventisei anni nella comunità. Oltre al suo blog, ha contribuito alla creazione di Script and Style ed è un membro del team principale per il framework Mootools. Oggi parleremo con lui del suo flusso di lavoro quotidiano, di JavaScript e dello sviluppo web in generale.
Mi chiamo David Walsh e mi considero un flessibile programmatore web PHP, CSS, HTML, JavaScript (MooTools e jQuery). Trascorro la maggior parte dei giorni con codice al ginocchio, combattendo la guerra contro i browser web spazzatura e i webmaster che mi hanno preceduto.
Mi sono insegnato HTML, JavaScript e CSS durante il mio primo anno di liceo. Non ricordo perché mi sono innamorato della programmazione web, ma semplicemente non potevo impedirmi di armeggiare, armeggiare, armeggiare. Dieci anni dopo sono ancora ossessionato dalla programmazione web e spingo ogni linguaggio web al limite.
Ho un normale lavoro di 8-5 giorni, ma mi piacciono di più le mie poche ore dopo il lavoro. Generalmente mi dà il tempo di affrontare i problemi incontrati durante il giorno e trasformarli in post di blog. Le mie opportunità di sperimentare sul lavoro sono limitate, quindi la libertà di provare mi diverte dopo che il lavoro è rinfrescante.
Wynq Web Labs è il mio braccio di consulenza / freelance. Wynq è specializzato nel portare il tuo sito web di vanilla al livello successivo usando MooTools o jQuery. Tanto può essere fatto usando quelle (o qualsiasi) librerie javascript che c'è sempre spazio per migliorare un sito web di base o avanzato.
Il miglior consiglio che posso dare è questo: metti giù il libro, apri l'editor di testo e il codice. Codice, codice, codice. Sperimenta, sperimenta, sperimenta. Armeggiare, armeggiare, armeggiare. Non c'è migliore esperienza di apprendimento che sedersi, fallire, riparare, fallire, aggiustare, ecc. Non smettere mai di fallire e non smettere mai di aggiustare. Raccomando anche di leggere siti web di sviluppo Web di qualità come il mio blog, Nettuts +, Dev-Tips e CSS-Tricks; c'è molto da imparare dalle persone che hanno una grande esperienza.
Sì, JavaScript è diventato ufficialmente il mio linguaggio di programmazione preferito. Mi piace quanto può essere flessibile JavaScript e come può, con il tuo framework preferito e alcune linee veloci di codice, prendere un sito web da un 4 a un 8. Non ci sono molte altre lingue / piattaforme là fuori che possono avere un tale grande impatto con un tempo relativamente breve.
Ho seguito il mio consiglio: sperimentare, sperimentare, sperimentare. Ho iniziato impostando un piccolo obiettivo per me stesso, fallendo, risolvendo il problema e raggiungendo quell'obiettivo. Poi è stato il prossimo test. Ho anche iniziato a seguire blog incentrati su JavaScript come i miei e mi sono unito alla sala IRC di MooTools. Non c'è davvero alcun sostituto per passione, ambizione e tempo per sperimentare.
La cosa fantastica di JavaScript è che è lo standard per lo scripting del browser. Alcune persone si lamentano che è l'unico linguaggio di scripting del browser e che siamo "bloccati" con esso. Pensa a questo: se ogni browser gestisce le loro implementazioni JavaScript in modo diverso (come fanno ora), immagina di avere diverse lingue all'interno di ciascun browser gestite in modo diverso. Che incubo!
Mi piace che JavaScript sia tipicamente digitato e che tu possa modificare i prototipi di oggetti nativi. Mi piace anche che le funzioni possano essere memorizzate come variabili e passate come argomenti (/ me guarda su PHP). Soprattutto, mi piace che JavaScript ci fornisca lo strumento per combattere siti noiosi: l'unica limitazione a ciò che possiamo fare è la mancanza di immaginazione.
L'errore JavaScript più comune che vedo è che gli sviluppatori (oi webmaster) copiano uno snippet di javascript nella pagina, non vedendolo funzionare e successivamente si lamentano che il codice non è corretto. Gli sviluppatori dovrebbero impiegare qualche minuto per studiare e comprendere il codice, non solo aspettarsi che funzioni. Alcuni altri errori che vedo spesso includono il "bene, funziona" invece di ottimizzare e usare JavaScript per sostituire i doveri sul lato server. Supplemento: sì; sostituire: no.
Ho iniziato a scrivere blog su MooTools perché mi piaceva così tanto il framework. Circa un anno fa, lo sviluppatore del MooTools Core Aaron Newton mi ha chiesto di prendere in considerazione la possibilità di contribuire al codebase e alla community del framework. Un mese dopo Valerio mi ha chiesto di unirmi al team di MooTools. Oggi la maggior parte del mio tempo viene impiegata per comunicare all'interno del team, contattare le organizzazioni su MooTools, parlare con i membri della community di MooTools e scrivere tutorial su MooTools. Mi prende molto del mio tempo libero ma essere circondato da alcune delle più brillanti menti JavaScript del mondo è un modo gradito di spenderlo.
Assolutamente! Ci sono molti posti in cui web designer e sviluppatori possono ottenere aiuto con MooTools. Il posto migliore è la sala IRC MooTools su Freenode: #mootools. Un altro ottimo posto per ottenere aiuto è il gruppo Google MooTools. La maggior parte degli sviluppatori e dei contributori principali di MooTools hanno blog che affrontano problemi di base e avanzati di MooTools. È difficile non trovare aiuto!
Molti! C'è sempre spazio per migliorare ogni framework. Mi piacerebbe vedere MooTools incorporare un gestore delle dipendenze in modo che gli sviluppatori possano scaricare gli script in base alle esigenze. Per esempio:
// javascript $ require ('Drag.Move');
Il codice sopra aggiungerebbe Drag.Move
supporto (e le sue dipendenze) se non già incluso nella pagina. So che Dojo e YUI hanno implementazioni di questo. Mi piacerebbe che MooTools lo implementasse. Essendo un membro della squadra, non posso semplicemente aspettare che accada però. :) Non vedo l'ora di lavorare con alcuni dei miei colleghi per definire come possiamo creare un tale sistema.
Nota: MooTools ha rilasciato Depender, uno strumento di compilazione lato server che utilizza PHP o Python: http://github.com/mootools/mootools-depender/
Creare il mio framework JavaScript semplicemente non è nelle carte. Sono circondato da brillanti sviluppatori nel team di MooTools e rispetto il lavoro svolto dai team jQuery, Dojo ed Ext. Preferirei passare il mio tempo ad aiutare MooTools a migliorare piuttosto che provare a reinventare la ruota.
Penso che i framework JavaScript siano le entità che più spingono i browser a fare meglio, a diventare più veloci, ad andare avanti. Fai un passo indietro e pensa a ciò che stiamo facendo ora con l'interfaccia utente web che non stavamo facendo un anno o due fa. Tutto questo grazie a JavaScript (e un gruppo di programmatori di grande talento).
Attendo con ansia progressi incredibili da ciascuno dei framework JavaScript. Siamo tutti impegnati a lungo termine e ogni giorno c'è la possibilità di un enorme balzo in avanti.
Penso che CSS e JavaScript rubino a volte i rispettivi ruoli. Se qualcosa può essere fatto (in modo affidabile) con i CSS, uno sviluppatore dovrebbe usare i CSS. Il problema è che i CSS non si muovono abbastanza velocemente (o almeno in un modo standardizzato) e la nostra unica opzione è quella di hackerare una soluzione con JavaScript. Gli angoli arrotondati e l'opacità sono ottimi esempi. Ogni browser ha una propria struttura di codice CSS per ottenere la funzionalità desiderata che rende inefficiente l'hacking CSS. I framework JavaScript eliminano tutte le preoccupazioni del cross-browser e ci permettono di codificare qualcosa e andare avanti. Dubito che cambierà presto.
Mi considero abile in entrambi i framework e preferisco MooTools. In effetti, l'apprendimento di jQuery mi ha fatto amare più MooTools. A ciascuno il suo. MooTools si adatta solo "per me". Sono innamorato della natura OOP di MooTools e questa filosofia mi consente di programmare più velocemente. Trovo inoltre che il codice di MooTools sia più leggibile grazie all'utilizzo di getter, setter e parole di azione utilizzate per i nomi dei metodi. MooTools mi consente anche di creare la mia build, specializzata in qualsiasi progetto a cui sto lavorando, per ridurre al minimo le dimensioni del file.
"In effetti, l'apprendimento di jQuery mi ha fatto amare più MooTools."
Se non approvi la modifica del prototipo di oggetto nativo (MooTools e Prototype do), jQuery è la scelta migliore. La sintassi di jQuery è generalmente più breve di MooTools '. jQuery è anche noto per avere una curva di apprendimento più semplice rispetto ad altri framework. Raccomando anche jQuery per i suoi sforzi di organizzazione, promozione e coordinamento: Rey Bango e la sua squadra fanno un ottimo lavoro.
Ciò che alla fine è importante sapere è che non puoi perdere con nessuna delle due strutture. Direi che qualsiasi sviluppatore JavaScript valido dovrebbe essere competente in entrambi. La cosa migliore è che possono lavorare insieme all'interno della stessa pagina.
Sicuro. MooTools modifica i prototipi di alcuni degli oggetti JavaScript nativi (stringhe, funzioni, matrici, ecc.) Per renderli più flessibili e potenti. MooTools implementa anche un solido sistema OOP Class / Inheritance che ti consente di estendere facilmente le classi di MooTools. MooTools è anche molto modulare, quindi è sufficiente scaricare i pezzi necessari.
jQuery potenzia gli elementi all'interno dell'oggetto jQuery ed è per questo che vedi frequentemente “$ (This)” - "Questo" non è sfruttato senza $ (). Tutti i plugin sono aggiunti alla funzione $. Essenzialmente jQuery è una potente funzione ($) con molte altre funzioni in essa contenute ($ .each, ad esempio). La sintassi di jQuery è generalmente più breve della sintassi di MooTools e gli stessi metodi vengono utilizzati per ottenere e impostare stili, attributi, ecc..
Ci penso in questo modo: MooTools prende gli oggetti nativi e li mette in scena. jQuery fornisce loro una "riserva" di potere. Aaron Newton ha scritto una bella recensione sulla differenza e la similitudine tra i due framework: http://jqueryvsmootools.com. Consiglio vivamente agli sviluppatori JavaScript di prendere tempo per leggere il post di Aaron e provare i due framework.
Troppi da contare! Sono molto orgoglioso dei miei plugin MooTools: inclusi ScrollSpy, ContextMenu, Dotter, jQuery Events, LazyLoad e ScrollSide. Puoi controllare tutti i miei plugin MooTools sul mio sito web o su MooTools Forge. Ho anche alcuni plugin jQuery disponibili sul mio sito web. Le demo per i miei plugin sono disponibili su http://davidwalsh.name/demos.
Uno dei miei professori universitari disse una volta: "Ogni sviluppatore degno di questo nome imparerà un linguaggio di programmazione all'anno" e in genere cerco di seguire questo principio. Le mie lingue principali sono PHP / MySQL e HTML / CSS / JavaScript. Mentre Git non è un linguaggio, sicuramente può essere una sfida, quindi è quello su cui attualmente mi sto concentrando. Spero di immergermi presto in Ruby e Python. Purtroppo non sembra esserci mai abbastanza tempo per imparare tutto ciò che voglio!
Band Website Template si è riunito in modo incredibilmente fluido grazie all'ottimo design di Chris e alle competenze CSS. La creazione di un solido programma di installazione è stata probabilmente la parte più difficile del modello per me. BWT richiede alcune conoscenze di webdev, ma volevamo rendere l'installazione semplice per i consumatori più esperti del Web. Una volta che il programma di installazione è stato creato, il resto è stato facile. Sono orgoglioso del gestore Gig, per quanto sia semplice. Sono anche orgoglioso di quanto bene sia stato ricevuto e della mancanza di e-mail di supporto che otteniamo - abbiamo sicuramente ottenuto qualcosa di giusto!
Io e Chris collaboriamo un bel po '. A volte è su grandi progetti come Script & Style e Band Website Template e altre volte sta scrivendo post di blog paralleli. Spesso scriverò il tutorial di MooTools che rispecchia il suo tutorial su jQuery.
Script & Style è stata sicuramente una sfida. Mi è stato chiesto di modificare alcune delle funzionalità predefinite dei feed RSS di WordPress. Di recente abbiamo anche aggiunto degli screenshot della pagina web dell'articolo, che richiedeva alcuni caching delle immagini e la codifica dell'API dello screenshot. Nonostante le sfide, il sito è stato molto gratificante e non vedo l'ora di svilupparlo ulteriormente.
Budget. Budget ti dice quasi tutto ciò che devi sapere su un cliente. Se rispetteranno il lavoro che fai. Se stanno per essere alta manutenzione. Se i loro obiettivi con il sito web saranno in linea con i tuoi obiettivi per il progetto. Ricorda che non ti stanno solo scegliendo ... li stai scegliendo anche tu.
Una domanda eccellente. Generalmente dipende dal progetto. A volte è bello tenere un solo chef in cucina, di solito cerco di lavorare con una talentuosa band di sviluppatori. Le menti più uniche e abili che puoi risolvere al problema aumentano le tue possibilità di superare le aspettative.
Stranamente ho solo alcuni siti web di base che seguo oltre a Nettuts +. Sono sempre sicuro di vedere cosa sta facendo Chris Coyier e piace leggere i post di A List Apart. Solitamente controllo i post in Script & Style. Cerco l'ispirazione attraverso quei post: modi per migliorare il loro codice o portarlo su un altro framework JavaScript. Mantengo anche l'orecchio sulla strada di Twitter per vedere quali articoli sono entusiasti.
. Dall'altra parte dello spettro, puoi darci alcuni esempi di caratteristiche che un grande sviluppatore potrebbe possedere?Un grande sviluppatore è qualcuno che è un buon risolutore di problemi ed esplora ogni strada per raggiungere un obiettivo. Un grande sviluppatore impara dai suoi errori passati e fa tutto il possibile per evitare di ripeterli. Infine, un grande sviluppatore web è una persona che tiene il passo con tutte le tecnologie e dedica più tempo a capire e sperimentare con loro.
Oltre a provare a pubblicare altri post MooTools e jQuery sul mio blog, ho alcuni progetti collaterali. Un progetto si chiama OPTMZR che è un sito web che offrirà numerosi strumenti per ottimizzare JavaScript, CSS, HTML, immagini e altro. L'altro progetto a cui sto lavorando è un sito web per il mio prossimo matrimonio. Aggiungerò alcune tecniche dolci di MooTools che farò sul blog una volta terminato il sito.
Mi è stato chiesto di scrivere libri di MooTools in passato, ma tutto ciò che ho sentito è che è un sacco di lavoro con un ritorno molto basso. Mi piacerebbe vedere il mio nome stampato, ma ritengo che il mio tempo sia il migliore per i blog e aiutare le persone su IRC. Spero che un giorno possa pubblicare il blog di David Walsh che dovrebbe includere tutti i miei post nel corso degli anni.
Consiglio vivamente di dare un'occhiata al mio blog: ho un sacco di fantastici tutorial su jQuery e MooTools e demo che ti daranno una migliore comprensione dei due framework. Sentiti libero di seguirmi su Twitter: @davidwalshblog. Raccomando anche di visitare Script & Style - Chris Coyier e io moderiamo e approviamo alcuni articoli di alto livello HTML / Javascript / CSS scritti da esperti del settore. E non dimenticare di visitare MooTools Forge - centinaia di plugin MooTools di qualità da designer e sviluppatori come te! MooTools FTW!
Sapevi che puoi guadagnare fino a $ 600 per scrivere un tutorial PLUS e / o screencast per noi? Stiamo cercando tutorial dettagliati e ben scritti su HTML, CSS, PHP e JavaScript. Se sei dell'abilità, contatta Jeffrey a [email protected].
Si prega di notare che il risarcimento effettivo dipenderà dalla qualità del tutorial finale e screencast.