David Walsh is een bekende zesentwintigjarige webontwikkelaar in de gemeenschap. Naast zijn blog heeft hij bijgedragen aan het creëren van Script en Stijl en is hij een kernteamlid voor het Mootools-framework. Vandaag zullen we met hem praten over zijn dagelijkse workflow, JavaScript en webontwikkeling in het algemeen.
Mijn naam is David Walsh en ik beschouw mezelf als een flexibele webprogrammer voor PHP, CSS, HTML, JavaScript (MooTools en jQuery). Ik besteed de meeste dagen kniediep in code, vecht tegen de oorlog tegen illegale webbrowsers en webmasters die me zijn tegengekomen.
Ik heb mezelf HTML, JavaScript en CSS geleerd tijdens mijn eerste jaar van de middelbare school. Ik kan me niet herinneren waarom ik verliefd werd op webprogrammering, maar ik kon mezelf er gewoon niet van weerhouden te sleutelen, sleutelen, sleutelen. Tien jaar later ben ik nog steeds geobsedeerd met webprogrammeren en elke webtaal tot het uiterste duwen.
Ik heb een normale 8-5 dagen werk, maar ik geniet het meest van mijn paar uur na het werk. Het geeft me over het algemeen de tijd om de problemen die ik tijdens de dag tegenkwam op te lossen en ze in blogberichten om te zetten. Mijn mogelijkheden om te experimenteren op het werk zijn beperkt, dus de vrijheid om te sleutelen waar ik van geniet na het werk is verfrissend.
Wynq Web Labs is mijn consulting / freelance-afdeling. Wynq is gespecialiseerd in het naar een hoger niveau brengen van uw vanillewebsite met MooTools of jQuery. Er kan zoveel worden gedaan met die (of enige) JavaScript-bibliotheken dat er altijd ruimte is om een eenvoudige of geavanceerde website te verbeteren.
Het beste advies dat ik kan geven is dit: zet het boek neer, open je teksteditor en code. Code, code, code. Experimenteer, experimenteer, experimenteer. Tinker, tinker, tinker. Er is geen betere leerervaring dan zitten, falen, repareren, falen, fixeren, etc. Stop nooit met falen en stop nooit met repareren. Ik raad ook websites voor webontwikkeling van leeskwaliteit aan, zoals mijn blog, Nettuts +, Dev-Tips en CSS-Tricks; er valt veel te leren van de mensen met een schat aan ervaring.
Ja, JavaScript is officieel mijn favoriete programmeertaal geworden. Ik ben dol op hoe flexibel JavaScript kan zijn en hoe het kan, met je favoriete framework en een paar snelle coderegels, een website van een 4 tot een 8. Er zijn niet veel andere talen / platforms beschikbaar dan een dergelijke grote impact met een relatief korte tijd.
Ik nam mijn eigen advies: experimenteren, experimenteren, experimenteren. Ik begon met een klein doel voor mezelf te stellen, faalde, het probleem op te lossen en dat doel te bereiken. Toen was het aan de volgende test. Ik begon ook JavaScript-gecentreerde blogs zoals de mijne te volgen en sloot zich aan bij de MooTools IRC-room. Er is echt geen vervanging voor passie, ambitie en de tijd nemen om te experimenteren.
Het mooie aan JavaScript is dat dit de enige standaard is voor browserscripts. Sommige mensen betreuren dat dit de enige browser scripttaal is en dat we er mee 'vastzitten'. Denk hier eens over na: als elke browser zijn JavaScript-implementaties anders behandelt (zoals ze nu doen), stel je dan voor dat verschillende talen binnen elke browser anders worden behandeld. Wat een nachtmerrie!
Ik vind dat JavaScript vrij is ingetypt en dat je de prototypes van het native object kunt wijzigen. Ik vind het ook leuk dat functies kunnen worden opgeslagen als variabelen en worden doorgegeven als argumenten (/ ik sta stil bij PHP). Ik vind het vooral leuk dat JavaScript ons de tool biedt om saaie websites te bestrijden - de enige beperking tot wat we kunnen doen is een gebrek aan verbeeldingskracht.
De meest voorkomende JavaScript-fout die ik zie, is dat ontwikkelaars (of webmasters) een JavaScript-fragment kopiëren naar de pagina, zien dat het niet werkt en vervolgens klagen dat de code niet correct is. Ontwikkelaars zouden even de tijd moeten nemen om de code te bestuderen en te begrijpen - niet alleen verwachten dat het werkt. Een paar andere fouten die ik vaak tegenkom, zijn onder meer afrekenen met "wel, het werkt" in plaats van het optimaliseren en gebruiken van JavaScript om taken aan de serverzijde te vervangen. Supplement: ja; vervangen: nee.
Ik begon met bloggen over MooTools omdat ik zo van het kader genoot. Ongeveer een jaar geleden vroeg MooTools Core Developer Aaron Newton me om een bijdrage te leveren aan de codebase en gemeenschap van het framework. Een maand later vroeg Valerio me om lid te worden van het MooTools-team. Tegenwoordig wordt het grootste deel van mijn tijd besteed aan communicatie binnen het team, contact met organisaties over MooTools, praten met leden van de MooTools-community en het schrijven van MooTools-zelfstudies. Het kost veel van mijn vrije tijd, maar omringd zijn door enkele van de meest briljante JavaScript-geesten ter wereld is een graag geziene manier om het uit te geven.
Absoluut! Er zijn veel plaatsen waar webontwerpers en ontwikkelaars hulp kunnen krijgen met MooTools. De beste plaats is de MooTools IRC-kamer op Freenode: #mootools. Een andere geweldige plek om hulp te krijgen is de MooTools Google Group. De meeste MooTools Core-ontwikkelaars en -bijdragers hebben blogs die fundamentele tot geavanceerde MooTools-problemen aanpakken. Het is moeilijk om geen hulp te vinden!
Veel! Er is altijd ruimte voor elk kader om te verbeteren. Ik zou graag zien dat MooTools een afhankelijkheidsmanager opneemt, zodat ontwikkelaars scripts kunnen lazyloaden op basis van behoeften. Bijvoorbeeld:
// javascript $ require ('Drag.Move');
De bovenstaande code zou toevoegen Drag.Move
ondersteuning (en de afhankelijkheden ervan) als deze nog niet op de pagina zijn opgenomen. Ik weet dat Dojo en YUI implementaties hiervan hebben. Ik zou het geweldig vinden als MooTools dit zou implementeren. Als lid van het team kan ik niet gewoon wachten tot het gebeurt. :) Ik kijk er naar uit om met een aantal van mijn collega's samen te werken om in kaart te brengen hoe we zo'n systeem kunnen maken.
Opmerking: MooTools heeft Depender vrijgegeven, een build-tool op de server die gebruik maakt van PHP of Python: http://github.com/mootools/mootools-depender/
Het maken van mijn eigen JavaScript-framework is gewoon niet in de kaarten. Ik ben omringd door briljante ontwikkelaars in het MooTools-team en respecteer het werk dat door de jQuery-, Dojo- en Ext-teams is gedaan. Ik zou mijn tijd liever besteden aan het helpen verbeteren van MooTools dan aan het opnieuw uitvinden van het wiel.
Ik denk dat JavaScript-frameworks de entiteiten zijn die de browsers het meest aansporen om het beter te doen, sneller te worden, vooruit te komen. Neem een stap terug en denk aan de dingen die we nu doen met web UI die we een jaar of twee geleden niet deden. Dit alles dankzij JavaScript (en een stel getalenteerde programmeurs).
Kijk uit naar ongelooflijke vooruitgang bij elk JavaScript-framework. We zijn er allemaal voor de lange termijn en elke dag heeft de mogelijkheid van een gigantische sprong voorwaarts.
Ik denk dat CSS en JavaScript soms elkaars rollen stelen. Als iets (betrouwbaar) met CSS kan worden gedaan, moet een ontwikkelaar CSS gebruiken. Het probleem is dat CSS niet snel genoeg beweegt (of op zijn minst op een gestandaardiseerde manier) en onze enige optie is om een oplossing met JavaScript te hacken. Afgeronde hoeken en dekking zijn geweldige voorbeelden. Elke browser heeft zijn eigen CSS-codestructuur om de gewenste functionaliteit te bereiken waardoor CSS-hacking inefficiënt wordt. JavaScript-frameworks nemen alle zorgen van de verschillende browsers weg en stellen ons in staat iets te coderen en verder te gaan. Ik betwijfel of dit snel zal veranderen.
Ik beschouw mezelf als ervaren in beide frameworks en prefereer MooTools. Door jQuery te leren, ben ik meer van MooTools gaan houden. Ieder zijn eigen. MooTools "past" gewoon voor mij. Ik ben verliefd op de OOP-aard van MooTools en met die filosofie kan ik sneller coderen. Ik vind de code van MooTools ook leesbaarder vanwege het gebruik van getters, setters en actiewoorden die worden gebruikt voor methodamen. Met MooTools kan ik ook mijn eigen build maken, gespecialiseerd in het project waar ik aan werk, om de bestandsgrootte te minimaliseren.
"Door jQuery te leren, ben ik meer van MooTools gaan houden."
Als je de prototype-modificatie van het Native-object niet goedkeurt (MooTools en Prototype do), is jQuery de betere keuze. De syntaxis van jQuery is over het algemeen korter dan die van MooTools. jQuery staat ook bekend als een eenvoudiger leercurve dan andere frameworks. Ik beveel jQuery ook aan voor zijn inspanningen op het gebied van organisatie, promotie en coördinatie - Rey Bango en zijn team doen geweldig werk.
Wat uiteindelijk belangrijk is om te weten, is dat je met geen van beide frameworks kunt verliezen. Ik zou zeggen dat elke goede JavaScript-ontwikkelaar goed moet zijn in beide. Het beste van alles is dat ze op dezelfde pagina kunnen samenwerken.
Zeker. MooTools wijzigt de prototypen van enkele native JavaScript-objecten (strings, functies, arrays, enz.) Om ze flexibeler en krachtiger te maken. MooTools implementeert ook een oersterk OOP-klasse / Inheritantiesysteem waarmee u MooTools Class gemakkelijk kunt verlengen. MooTools is ook erg modulair, dus je hoeft alleen de stukjes te downloaden die je nodig hebt.
jQuery stelt elementen in het jQuery-object in werking waardoor u regelmatig ziet “$ (This)” - "deze" wordt niet gepimpt zonder de $ (). Alle plug-ins worden toegevoegd aan de $ -functie. In essentie is jQuery één krachtige functie ($) met vele andere functies erin ($ .ind, bijvoorbeeld). jQuery-syntaxis is over het algemeen korter dan de syntaxis van MooTools en dezelfde methoden worden gebruikt om stijlen, attributen, enz. te verkrijgen en in te stellen.
Ik denk er zo over: MooTools neemt inheemse voorwerpen en zet ze op steriods. jQuery geeft hen een "$" shell van macht. Aaron Newton schreef een geweldige beschrijving van het verschil en de overeenkomst tussen de twee kaders: http://jqueryvsmootools.com. Ik raad ten zeerste aan dat JavaScript-ontwikkelaars enige tijd nodig hebben om het bericht van Aaron te lezen en de twee frameworks zelf uit te proberen.
Te veel om te tellen! Ik ben het meest trots op mijn MooTools-plug-ins: inclusief ScrollSpy, ContextMenu, Dotter, jQuery-gebeurtenissen, LazyLoad en ScrollSide. Je kunt al mijn MooTools-plug-ins bekijken op mijn website of in de MooTools Forge. Ik heb ook een flink aantal jQuery-plug-ins beschikbaar op mijn website. Demo's voor mijn plug-ins zijn beschikbaar op http://davidwalsh.name/demos.
Een van mijn universiteitsprofessoren zei eens: "Elke ontwikkelaar die zijn zout waard is, zal één programmeertaal per jaar leren" en ik probeer dat principe over het algemeen te volgen. Mijn belangrijkste talen zijn PHP / MySQL en HTML / CSS / JavaScript. Hoewel Git geen taal is, kan het in godsnaam een uitdaging zijn, dus dat is waar ik me momenteel op richt. Ik hoop binnenkort in Ruby en Python te duiken. Helaas lijkt er nooit genoeg tijd te zijn om alles te leren wat ik wil!
Band Website Template kwam ongelooflijk soepel samen dankzij Chris 'geweldige ontwerp- en CSS-vaardigheden. Het creëren van een solide installatieprogramma was waarschijnlijk het moeilijkste deel van de sjabloon voor mij. BWT vereist enige webdev-kennis, maar we wilden de installatie eenvoudig maken voor de meest niet-websurvige consumenten. Nadat het installatieprogramma was gemaakt, was de rest eenvoudig. Ik ben trots op de Gig manager, zo simpel als het is. Ik ben ook trots op hoe goed het is ontvangen en het gebrek aan ondersteunings-e-mails die we krijgen - we hebben zeker iets goed gemaakt!
Chris en ik werken wel een beetje samen. Soms is het op grote projecten zoals Script & Style en Band Website Template en andere keren schrijft het parallelle blogposts. Vaak zal ik de MooTools-zelfstudie schrijven die een afspiegeling is van zijn jQuery-zelfstudie.
Script & Style was absoluut een uitdaging. Ik moest enkele van de standaardfuncties van de RSS-feeds van WordPress hacken. We hebben onlangs ook screenshots toegevoegd van de webpagina van het artikel - waarvoor een aantal afbeeldingen in de cache en de scherm API-codering nodig waren. Ondanks de uitdagingen, heeft de site enorm veel voldoening gegeven en ik kijk er naar uit om deze verder te ontwikkelen.
Begroting. Budget vertelt u bijna alles wat u moet weten over een klant. Als ze het werk dat je doet respecteren. Als ze veel onderhoud nodig hebben. Als hun doelen met de website in overeenstemming zijn met uw doelen voor het project. Vergeet niet dat ze niet alleen jou kiezen ... je kiest ze ook.
Een uitstekende vraag. Het hangt over het algemeen af van het project. Soms is het goed om slechts één chef-kok in de keuken te houden door meestal te werken met een getalenteerde groep ontwikkelaars. Hoe meer unieke, kundige geesten je naar het probleem kunt werpen, hoe beter je kansen om de verwachtingen te overtreffen.
Vreemd genoeg heb ik slechts een paar kernwebsites die ik volg naast Nettuts +. Ik ben altijd zeker om te zien wat Chris Coyier rond schopt en geniet van het lezen van A List Apart berichten. Ik kijk vooral naar posts die in Script & Style komen. Ik kijk voor inspiratie via die berichten: manieren om hun code te verbeteren of te porten naar een ander JavaScript-framework. Ik houd ook mijn oor tot de Twitter-straat om te zien naar welke artikelen mensen enthousiast zijn.
. Aan de andere kant van het spectrum kunt u ons enkele voorbeelden geven van eigenschappen die een geweldige ontwikkelaar zou kunnen bezitten?Een geweldige ontwikkelaar is iemand die een goede probleemoplosser is en elke weg verkent om een doel te bereiken. Een geweldige ontwikkelaar leert van zijn fouten uit het verleden en doet er alles aan om herhaling te voorkomen. Ten slotte is een geweldige webontwikkelaar iemand die alle technologieën bijhoudt en extra tijd doorbrengt om ze te begrijpen en ermee te experimenteren.
Naast het proberen meer MooTools en jQuery-posts op mijn blog te publiceren, heb ik nog een aantal bijprojecten. Eén project heet OPTMZR, een website die tal van hulpmiddelen biedt om uw JavaScript, CSS, HTML, afbeeldingen en meer te optimaliseren. Het andere project waaraan ik heb gewerkt, is een website voor mijn aanstaande bruiloft. Ik zal wat leuke MooTools-technieken toevoegen waarover ik zal bloggen zodra de site klaar is.
Mij is in het verleden gevraagd om MooTools-boeken te schrijven, maar alles wat ik heb gehoord is dat het een hoop werk is met weinig rendement. Ik zou graag mijn naam in gedrukte vorm zien, maar ik heb het gevoel dat mijn tijd het beste is om dagelijks te bloggen en mensen op IRC te helpen. Hopelijk kan ik op een dag het David Walsh-blogboek publiceren waarin al mijn blogberichten door de jaren heen staan.
Ik raad mensen echt aan om mijn blog te bekijken - ik heb veel geweldige tutorials voor jQuery en MooTools en demo's die je een beter begrip van de twee frameworks geven. Volg me gerust op Twitter: @davidwalshblog. Ik raad ook aan Script & Style te bezoeken: Chris Coyier en ik modereren en keuren enkele uitstekende HTML / Javascript / CSS-artikelen goed die zijn geschreven door experts uit de sector. En vergeet niet om de MooTools Forge te bezoeken - honderden hoogwaardige MooTools-plug-ins van ontwerpers en ontwikkelaars zoals jij! MooTools FTW!
Wist je dat je tot $ 600 kunt verdienen voor het schrijven van een PLUS tutorial en / of screencast voor ons?? We zijn op zoek naar diepgaande en goed geschreven tutorials over HTML, CSS, PHP en JavaScript. Als je van het vermogen bent, neem dan contact op met Jeffrey via [email protected].
Houd er rekening mee dat de daadwerkelijke compensatie afhankelijk is van de kwaliteit van de laatste zelfstudie en screencast.