David Walsh este un cunoscut dezvoltator web în vârstă de douăzeci și șase de ani în comunitate. În plus față de blogul său, a contribuit la crearea scenariului și a stilului și este un membru al echipei de bază pentru cadrul Mootools. Astăzi, vom vorbi cu el despre fluxul de lucru de zi cu zi, despre JavaScript și despre dezvoltarea webului în general.
Numele meu este David Walsh și consider că sunt un programator web flexibil PHP, CSS, HTML, JavaScript (MooTools și jQuery). Imi petrec majoritatea zilelor in genunchi, luptand cu razboiul impotriva browserelor web si a webmasterilor care au venit inaintea mea.
M-am învățat HTML, JavaScript și CSS în timpul anilor de liceu. Nu-mi amintesc de ce m-am îndrăgostit de programarea web, dar pur și simplu nu m-am putut opri de tinkering, tinkering, tinkering. Zece ani mai târziu, eu sunt încă obsedat de programarea web și împingând fiecare limbă web la limitele sale.
Am o slujbă normală de 8-5 zile, dar mă bucur de cele câteva ore după ce lucrez cel mai mult. În general, îmi dă timp să iau problemele întâlnite pe parcursul zilei și să le transform în postări pe blog. Oportunitățile mele de a experimenta la locul de muncă sunt limitate, astfel încât libertatea de a-mi face plăcere după muncă este reconfortantă.
Wynq Web Labs este brațul meu de consultant / independent. Wynq este specializată în a lua site-ul dvs. de vanilie la următorul nivel folosind MooTools sau jQuery. Atât de mult se poate face folosind acele (sau orice) biblioteci javascript că există întotdeauna loc pentru a îmbunătăți un site de bază sau avansat.
Cel mai bun sfat pe care pot să-l dau este acesta: puneți jos cartea, deschideți editorul de text și codați-vă. Cod, cod, cod. Experimentați, experimentați, experimentați. Tinker, tinker, tinker. Nu există o experiență de învățare mai bună decât șederea, lipsa, fixarea, lipsa, fixarea etc. Nu opriți niciodată eșecul și nu opriți niciodată fixarea. De asemenea, vă recomandăm să citiți site-uri web de dezvoltare web de calitate, precum blogul meu, Nettuts +, Dev-Tips și CSS-Tricks; există multe de învățat de la oamenii care au o bogată experiență.
Da, JavaScript a devenit oficial limbajul meu de programare preferat. Îmi place cât de flexibil poate fi JavaScript și cum se poate, cu cadrul dvs. preferat și câteva linii rapide de cod, să ia un site web de la 4 la 8. Nu există multe alte limbi / platforme acolo decât poate avea o astfel de impact mare cu o perioadă relativ scurtă de timp.
Mi-am luat propriul sfat: experiment, experiment, experiment. Am pornit prin stabilirea unui gol mic pentru mine insuficient, rezolvând problema și atingând acest obiectiv. Apoi a urmat următorul test. De asemenea, am început să urmăresc blogurile centrate pe JavaScript, ca mine, și s-au alăturat camerei IRC MooTools. Nu există nici un substitut pentru pasiune, ambiție și timp pentru a experimenta.
Ce este minunat în legătură cu JavaScript este faptul că este unul standard pentru scriptingul browserului. Unii oameni se tem că este singurul limbaj de scripting pentru browser și că suntem "blocați" de el. Gândiți-vă la acest lucru: dacă fiecare browser gestionează implementările JavaScript în mod diferit (așa cum fac acum), imaginați-vă că numeroasele limbi din fiecare browser au fost tratate diferit. Ce cosmar!
Îmi place că JavaScript este tastat în mod liber și că puteți modifica prototipurile obiectului nativ. De asemenea, mi-a plăcut că aceste funcții pot fi stocate ca variabile și transmise ca argumente (/ me glares la PHP). Mai presus de toate, îmi place că JavaScript ne oferă instrumentul de a lupta cu site-urile plictisitoare - singura limitare a ceea ce putem face este lipsa imaginației.
Cea mai obișnuită greșeală din JavaScript pe care o văd este că dezvoltatorii (sau webmasterii) copiază un fragment de javascript în pagină, văzând că nu funcționează, și apoi plângând că codul nu este corect. Dezvoltatorii ar trebui să ia câteva momente pentru a studia și înțelege codul - nu numai că se așteaptă ca acesta să funcționeze. Câteva alte greșeli pe care le văd frecvent includ stabilirea pentru "bine, funcționează" în loc să optimizeze și să utilizeze JavaScript pentru a înlocui sarcinile de la server. Supliment: da; înlocuiți: nr.
Am inceput sa fac bloguri despre MooTools pentru ca mi-a placut atat de mult cadrul. Aproximativ un an în urmă, MooTools Core Developer, Aaron Newton, mi-a cerut să ia în considerare contribuția la codul de bază al cadrului și la comunitate. O lună mai târziu, Valerio mi-a cerut să intru în echipa MooTools. Astăzi cea mai mare parte a timpului meu este petrecut comunicând în cadrul echipei, contactând organizațiile despre MooTools, discutând cu membrii comunității MooTools și scriind tutoriale MooTools. Îmi ia o mulțime de timp liber, dar fiind înconjurat de unele dintre cele mai minunate minți JavaScript din lume este o modalitate binevenită de ao petrece.
Absolut! Există multe locuri în care designerii web și dezvoltatorii pot obține ajutor cu MooTools. Cel mai bun loc este camera IRC MooTools pe Freenode: #mootools. Un alt loc excelent pentru a obține ajutor este Grupul Google MooTools. Majoritatea dezvoltatorilor și colaboratorilor MooTools Core au bloguri care abordează probleme de bază și avansate ale MooTools. Este dificil să nu găsiți ajutor!
Mulți! Există întotdeauna loc pentru îmbunătățirea fiecărui cadru. Aș dori să văd că MooTools încorporează un manager de dependență, astfel încât dezvoltatorii să poată derula scripturi pe baza nevoilor. De exemplu:
/ / javascript $ require ('Drag.Move');
Codul de mai sus ar adăuga Drag.Move
(și dependențele sale) dacă nu sunt deja incluse în pagină. Știu că Dojo și YUI au implementări în acest sens. Mi-ar plăcea ca MooTools să implementeze acest lucru. Fiind membru al echipei, nu pot aștepta să se întâmple, totuși. :) Aștept cu nerăbdare să colaborez cu unii dintre colegii mei pentru a stabili cum putem crea un astfel de sistem.
Notă: MooTools a lansat Depender, un instrument de creare a unui server care utilizează PHP sau Python: http://github.com/mootools/mootools-depender/
Crearea propriului cadru JavaScript este pur și simplu nu este în carduri. Sunt înconjurat de dezvoltatori strălucitori din echipa MooTools și respectă munca făcută de echipele jQuery, Dojo și Ext. Mai bine îmi petrec timpul ajutând MooTools să se îmbunătățească decât să încerce să reinventeze roata.
Cred că cadrele JavaScript sunt entitățile care împing browser-ele cel mai bine pentru a face mai bine, pentru a obține mai repede, pentru a merge mai departe. Faceți un pas înapoi și gândiți-vă la lucrurile pe care le facem acum cu ajutorul interfeței web pe care noi nu o facem acum un an sau doi. Toate acestea datorită JavaScript (și o mulțime de programatori foarte talentați).
Bucurați-vă de progresul incredibil al fiecărui cadru JavaScript. Suntem cu toții pe termen lung și fiecare zi deține posibilitatea unui salt gigantic înainte.
Cred că CSS și JavaScript fură uneori rolurile celorlalți. Dacă se poate face ceva (în mod fiabil) cu CSS, un dezvoltator ar trebui să utilizeze CSS. Problema este că CSS nu se mișcă suficient de repede (sau cel puțin într-un mod standardizat) și singura noastră opțiune este să hackem o soluție cu JavaScript. Culorile rotunjite și opacitatea sunt exemple excelente. Fiecare browser are propriile structuri de cod CSS pentru a obține funcționalitatea dorită, ceea ce face ca hacking-ul CSS să fie ineficient. Cadrele JavaScript iau toate preocupările browserului încrucișat și ne permite să codificăm ceva și să mergem mai departe. Mă îndoiesc că se va schimba în orice moment în curând.
Mă consider calificat la ambele cadre și prefer MooTools. De fapt, învățarea jQuery ma făcut să iubesc MooTools mai mult. Pentru fiecare dintre ei. MooTools se potrivește doar pentru mine. Sunt îndrăgostit de natura OOP a MooTools și această filozofie îmi permite să codific mai repede. De asemenea, găsesc codul MooTools mult mai ușor de citit datorită utilizării de getters, setters și cuvinte de acțiune folosite pentru numele de metode. MooTools îmi permite, de asemenea, să creez propria mea construcție, specializată în oricare proiect pe care lucrez, pentru a minimiza dimensiunea fișierului.
"De fapt, învățarea jQuery ma făcut să iubesc mai mult MooTools."
Dacă nu aprobați modificarea prototipului nativ al obiectului (MooTools și Prototype do), jQuery este cea mai bună alegere. Sintaxa jQuery este în general mai scurtă decât MooTools. jQuery este, de asemenea, cunoscut pentru a avea o curbă mai ușoară de învățare decât alte cadre. Îi felicit și pe jQuery pentru eforturile sale de organizare, promovare și coordonare - Rey Bango și echipa lui fac o treabă bună.
În cele din urmă, este important să știți că nu puteți pierde niciunul dintre cadre. Aș susține că orice dezvoltator JavaScript bun ar trebui să fie expert în ambele. Cel mai bun lucru este că pot lucra împreună în cadrul aceleiași pagini.
Sigur. MooTools modifică prototipurile unor obiecte JavaScript (Strings, Functions, Arrays etc.) pentru a le face mai flexibile și mai puternice. MooTools implementează, de asemenea, un sistem solid OOP de clasă / moștenire care vă permite să extindeți cu ușurință clasele MooTools. MooTools este, de asemenea, foarte modular, astfel încât trebuie doar să descărcați piesele de care aveți nevoie.
jQuery împuternicește elementele din cadrul obiectului jQuery, de aceea vedeți frecvent „$ (Aceasta)“ - "acest" nu este pimped out fără $ (). Toate pluginurile sunt adăugate la funcția $. În esență jQuery este o funcție puternică ($) cu multe alte funcții coapte în ea (de exemplu, $, de exemplu). Sintaxa jQuery este în general mai scurtă decât sintaxa MooTools și aceleași metode sunt folosite pentru a obține și a seta stiluri, atribute etc..
Mă gândesc la asta în felul următor: MooTools ia obiecte native și le pune pe sterioduri. jQuery îi oferă o coajă de putere "$". Aaron Newton a scris o mare scriere despre diferența și similitudinea dintre cele două cadre: http://jqueryvsmootools.com. Îmi recomand foarte mult ca dezvoltatorii JavaScript să ia ceva timp pentru a citi postarea lui Aaron și pentru a încerca cele două cadre pentru ei înșiși.
Prea multe să conteze! Sunt cel mai mandru de pluginurile mele MooTools: inclusiv ScrollSpy, ContextMenu, Dotter, Evenimente jQuery, LazyLoad și ScrollSide. Puteți verifica toate pluginurile mele MooTools pe site-ul meu sau pe MooTools Forge. Am, de asemenea, destul de puține pluginuri jQuery disponibile pe site-ul meu. Demo-urile pentru pluginurile mele sunt disponibile la http://davidwalsh.name/demos.
Unul dintre profesorii mei de colegiu a spus odată: "Orice dezvoltator care merită sărurile sale va învăța un limbaj de programare pe an" și, în general, încerc să respect acest principiu. Limbile mele principale sunt PHP / MySQL și HTML / CSS / JavaScript. În timp ce Git nu este o limbă, este sigur că poate fi o provocare, așa că mă concentrez în prezent. Sper să se scufunde în Ruby și Python în scurt timp. Din păcate, nu pare să existe suficient timp pentru a învăța tot ce vreau!
Band Website Template s-au adunat impreuna incredibil de mult datorita designului excelent al lui Chris si a CSS-ului. Crearea unui instalator solid a fost probabil cea mai dificilă parte a șablonului pentru mine. BWT necesită cunoștințe webdev, dar am vrut să facem instalarea simplă pentru cei mai mulți consumatori care nu au o experiență web. Odată ce programul de instalare a fost creat, restul a fost ușor. Sunt mândru de managerul Gig, la fel de simplu ca este. De asemenea, sunt mândru de cât de bine a fost primită și de lipsa de e-mailuri de asistență pe care le primim - cu siguranță am obținut ceva corect!
Chris și cu mine colaborăm destul de puțin. Uneori este vorba despre proiecte mari, cum ar fi Script & Style și Band Website Template, iar alteori se scrie mesaje blog paralele. Adesea voi scrie tutorialul MooTools care să reflecte tutorialul lui jQuery.
Script & Style a fost cu siguranta o provocare. Mi sa cerut sa hack unele dintre functiile implicite ale fluxurilor RSS WordPress. De asemenea, am adăugat recent capturi de ecran ale paginii web a articolului - care a necesitat codarea imaginilor pentru cache-ul imaginilor și codarea API pentru screenshot-uri. În ciuda provocărilor, site-ul a fost foarte recompensator și aștept cu nerăbdare să îl dezvolt.
Buget. Bugetul vă spune aproape tot ce trebuie să știți despre un client. Dacă vor respecta munca pe care o faceți. Dacă vor avea o întreținere ridicată. Dacă obiectivele lor cu site-ul Web vor fi în conformitate cu obiectivele dvs. pentru proiect. Ține minte că nu te aleg doar pe tine ... îi alegi și pe ei.
O întrebare excelentă. În general depinde de proiect. Uneori este bine să păstrăm doar un bucătar în bucătărie, de obicei încerc să lucrez cu o bandă de dezvoltatori talentați. Cele mai multe minți unice, calificate pe care le puteți arunca la problemă, cu atât mai bine șansele dvs. de a depăși așteptările.
În mod ciudat, am doar câteva site-uri pe care le-am urmărit pe lângă Nettuts +. Sunt întotdeauna sigură să văd ce se întâmplă cu Chris Coyier și să vă bucurați de lecturile postului A List Apart. În majoritatea cazurilor, am verificat posturile care intră în Script & Style. Caut inspirație prin aceste postări: modalități de îmbunătățire a codului sau de al porni într-un alt cadru JavaScript. De asemenea, îmi țin urechea pe strada de pe Twitter pentru a vedea ce articole sunt încântați de oameni.
. La capătul opus al spectrului, puteți să ne dați câteva exemple de trăsături pe care un mare dezvoltator le-ar putea avea?Un mare dezvoltator este cineva care este un bun rezolvator de probleme si exploreaza fiecare cale pentru a atinge un scop. Un mare dezvoltator învață din greșelile sale din trecut și face tot posibilul pentru a evita repetarea acestora. În cele din urmă, un mare dezvoltator de web este o persoană care ține pasul cu toate tehnologiile și petrece timp suplimentar pentru a înțelege și a experimenta cu ei.
Pe lângă încercarea de a publica mai multe mesaje MooTools și jQuery pe blogul meu, am câteva proiecte secundare. Un proiect se numește OPTMZR, care este un site web care vă va oferi numeroase instrumente pentru a vă optimiza JavaScript, CSS, HTML, imagini și multe altele. Celălalt proiect la care lucram este un site web pentru nunta mea viitoare. Voi adăuga câteva tehnici dulci MooTools pe care le voi face blog după ce site-ul este terminat.
Mi sa cerut să scriu cărți MooTools în trecut, dar tot ce am auzit este că eo tona de lucru cu foarte puțină întoarcere. Mi-ar plăcea să văd numele meu în imprimat, dar simt că timpul meu este cel mai bine servit blogging zilnic și ajutând oamenii de pe IRC. Sperăm că într-o zi voi putea publica cartea de blog David Walsh, care va cuprinde toate postările mele de-a lungul anilor.
Chiar îmi recomand oamenilor să-mi verific blog-ul - am multe tutoriale de jQuery și MooTools și demo-uri care vă vor oferi o mai bună înțelegere a celor două cadre. Simți-mă liber să mă urmezi pe Twitter: @davidwalshblog. De asemenea, vă recomandăm să vizitați Script & Style - Chris Coyier și eu moderhez și aprobez câteva articole notabile HTML / Javascript / CSS scrise de experți din industrie. Și nu uitați să vizitați MooTools Forge - sute de pluginuri MooTools de calitate de la designeri și dezvoltatori ca tine! MooTools FTW!
Știați că puteți câștiga până la 600 USD pentru a scrie un tutorial PLUS și / sau pentru noi? Căutăm tutoriale detaliate și bine scrise despre HTML, CSS, PHP și JavaScript. Dacă sunteți în măsură, contactați Jeffrey la [email protected].
Rețineți că o compensație reală va depinde de calitatea tutorialului final și a scenariului.