Ich hatte kürzlich das große Vergnügen, mit Karl Swedberg über Javascript und Webentwicklung im Allgemeinen zu chatten. Karl ist Autor mehrerer Javascript-Bücher wie Learning jQuery und jQuery Reference Guide. Begleiten Sie uns, während wir einen Blick in den Geist eines bescheidenen und talentierten Entwicklers werfen.
Ich bin (hauptsächlich Front-End) Webentwickler bei einer kleinen Agentur, Fusionary Media, in Grand Rapids, Michigan. Mit 41 bin ich wahrscheinlich älter als die meisten Webentwickler, fühle mich aber meistens immer noch wie ein Kind. Außerhalb der Arbeit beschäftige ich mich sehr mit jQuery. Ich bin im jQuery-Projektteam und schreibe darüber, schule andere, wie man es benutzt, und spreche auf Konferenzen darüber.
Meine allererste Beschäftigung mit der Webentwicklung war 1995, als ich eine einfache Website für ein Kaffeehaus baute, das ich besaß. Danach habe ich mich hier und da mit Web-Material beschäftigt, weil ich wirklich einen Kick bekommen habe, aber ich habe erst vor etwa vier Jahren angefangen, es als Job zu erledigen.
Ich lese und renne gerne mit meiner Familie. Bis vor einem Jahr hatte ich ungefähr sieben Jahre lang Karate gelernt, und ich überlege mir, es noch einmal zu beginnen. Ich mag es auch zu fotografieren, neue Musik zu entdecken und mit meinen Freunden unterwegs zu sein.
Es ist ein persönlicher Blog von mir, den ich in letzter Zeit vernachlässigt habe. Ich kann mich nicht genau erinnern, wann ich angefangen habe - 2000? 2001 - Die Idee war jedoch, einige Informationen und Links für meine Schüler bereitzustellen. Ich unterrichtete damals High School English. Seitdem ist es ein Mischmasch meiner flüchtigen Interessen geworden. Im Jahr 2003 habe ich Movable Type geladen und mit dem Bloggen begonnen. Irgendwann dachte ich, es würde Spaß machen, jeden Tag ein neues Wort aus dem zu veröffentlichen, was ich gerade las, also tat ich das eine Weile. Dann hatte ich die verrückte Vorstellung, die Weltfragen zu Grammatik, Interpunktion, Stil, Rechtschreibung usw. beantworten zu können, aber das hielt nicht lange an. Ich habe einige Zeit meine Fotos auf der Website veröffentlicht, aber das ist auch irgendwie ins Stocken geraten. Die größte Motivation für das Weiterbestehen war wahrscheinlich, dass ich Freunden und Familienmitgliedern einen Überblick über meine Aktivitäten gebe, aber in letzter Zeit haben Facebook und Twitter dieses Bedürfnis erfüllt.
Ich fing an, jQuery ungefähr im Mai oder Juni 2006 zu verwenden. Ich habe immer noch eine Version von "Rev 27" der jQuery-Kerndatei vom 2. Mai 2006, noch bevor sie eine Versionsnummer hatte. Es ist eine Schande, dass die Datei komprimiert und verschleiert wird. Es würde wirklich Spaß machen, durchzugehen und zu sehen, wie viel sich verändert hat.
Die Site stand an erster Stelle. Nachdem ich ein paar Monate mit jQuery herumgespielt hatte, dachte ich, es wäre eine gute Idee, zu dokumentieren, was ich gelernt hatte. Ich fragte John Resig, ob er etwas dagegen hätte, wenn ich den Namen jQuery benutze und über meine Erfahrungen blogge. Er war begeistert von der Idee.
Ein paar Monate, nachdem ich mit dem Blog angefangen hatte, kontaktierte mich jemand von Packt Publishing und fragte, ob ich ein Buch über jQuery schreiben möchte - ein Angebot, das mich sowohl schmeichelt als auch verängstigt. Ich stimmte dem zu, aber nur, wenn mein Freund (Jonathan Chaffer) es mit mir schreiben könnte. Er ist ein viel besserer Programmierer als ich, und ich war zu dieser Zeit noch nur ein Neuling.
Die Auswahl einer JavaScript-Bibliothek ähnelt der Auswahl einer digitalen Spiegelreflexkamera (wenn Sie den Preis natürlich aus der Gleichung herausgenommen haben). Warum Nikon? Warum nicht Canon oder Pentax? Ich bin nicht sicher, ob jemand diese Fragen allein aufgrund des technischen Wertes zufriedenstellend beantworten kann. Viel hat mit immateriellen Gütern zu tun: Community, Unterstützung, Kompatibilität mit Ihren bereits etablierten Denkmodellen, wie Dinge funktionieren und aussehen und sich anfühlen sollen. Die Menschen erwägen auch die Erweiterbarkeit - in Form von Objektiven und Zubehör für Kameras, Plugins und Widgets für JavaScript-Bibliotheken. Klar, technischer Wert spielt eine Rolle. Leistung, Funktionen und Zuverlässigkeit sind wichtig. Aber wie bei den Kamerafirmen überspringen sich die JavaScript-Bibliotheksentwickler in diesen Bereichen immer noch gegenseitig, und die Besten in diesen Bereichen sind heute vielleicht nicht die Besten in diesem Bereich in einem halben Jahr.
Der Grund, warum ich mich für jQuery entschieden habe, ist, dass es für mich fast sofort Sinn machte. Ich habe gesehen, dass ich mein Wissen über CSS mit seinem DOM-zentrierten Ansatz leicht auf jQuery übertragen kann. Seitdem ich mehr über fortgeschrittene JavaScript-Techniken gelernt habe, habe ich festgestellt, dass reines JavaScript ausreichend ist, um mit den Bereichen der Sprache umzugehen, die von jQuery nicht behandelt werden . Ich liebe auch den Gemeinschaftsgeist und die Großzügigkeit und Freundlichkeit der anderen Mitglieder des Projektteams und der Mitwirkenden der Diskussionslisten.
Die häufigste Frage, die in der jQuery-Diskussionsliste (Google Group) häufig gestellt wird, lautet wie folgt: "Warum funktionieren meine Ereignisse nicht mehr, nachdem ich Elemente in mein Dokument eingefügt habe?" Wir haben ein ausführliches FAQ-Thema, das diese Frage beantwortet. Ich habe darüber ein paar Artikel auf learningjquery.com geschrieben. Wir haben das Live Query-Plugin und ab jQuery 1.3 die .live () -Methode, die das Problem löst. Trotzdem stellt sich die Frage ein paar Mal pro Woche.
Abgesehen von learningjquery.com und dem Learning jQuery 1.3-Buch gibt es einige großartige Ressourcen. Remy Sharp hat einige großartige Screencasts auf seiner jQuery for Designers-Website, und ich habe einige großartige Artikel von Marc Grabanski und James Padolsey in ihren jeweiligen Blogs gesehen. Die jQuery Google Group ist mit über 16.000 Mitgliedern sehr beliebt und der IRC-Kanal #jquery auf freenode.net ist sehr aktiv und hilfreich.
Ich wünschte, die .live () -Methode würde mit allen Ereignistypen funktionieren. Momentan funktioniert es nur mit einer Teilmenge, sodass Sie es nicht mit Änderung, Fokus, Unschärfe, Senden, Mausklick oder Mauszeiger verwenden können. Ich finde es auch cool, eine anonyme Funktion als Argument für .css (), .val () und .html () zu verwenden, genauso wie für .attr ()..
Ich fürchte, diese klingen wie Plattitüden, aber hier heißt es: Fürchte dich nicht davor, es zu lernen. Sie müssen nicht alles im Voraus wissen. Seien Sie bereit, Fehler zu machen. Lernen Sie immer wieder neue Dinge über die Sprache und versuchen Sie, Verbindungen zwischen dem, was Sie bereits wissen, und dem, was Sie gerade lernen, herzustellen.
Sicher. Eine schlechte Praxis ist die Verwendung von jQuery für etwas, das Sie mit CSS einfacher und effizienter ausführen können. Beispielsweise haben Webentwickler seit Jahren die Hintergrundposition eines Image-Sprites geändert, wenn die Maus des Benutzers über einen Link bewegt wird. Es gibt absolut keinen Grund, jQuery dafür zu verwenden, es sei denn, der Entwickler möchte, dass die Änderung des Hover-Zustands animiert wird.
Eine andere schlechte Praxis ist das unnötige Wiederholen von Selektoren. Anstatt jedes Mal ein anderes jQuery-Objekt zu erstellen, wenn Sie eine bestimmte Gruppe von Elementen bearbeiten möchten, verketten Sie die Methoden oder speichern Sie einen Verweis auf das jQuery-Objekt in einer Variablen und verwenden Sie das.
Lesen Sie die Tutorials von seriösen Sites. Stellen Sie Fragen auf der Diskussionsliste und lesen Sie die Antworten auf die Fragen anderer Personen. Lesen Sie insbesondere alles, was Michael Geary und Dave Methvin auf die Liste setzen. Versuchen Sie, den Code großer Plugin-Autoren wie Mike Alsup, Ariel Flesler, Jörn Zaefferer und Brandon Aaron zu emulieren.
Ich schreibe oft meine eigenen, benutze aber einige häufig. Jeder Kunde scheint eine Art Bild-Rotator auf seiner Homepage zu haben, daher verwende ich das Cycle-Plugin von Mike Alsup. Ich benutze auch ziemlich oft seine Form- und Media-Plugins. Ich verlasse mich oft auf das Superfish-Plugin von Joel Birch und das HoverIntent-Plugin von Brian Cherne, wenn ein Kunde Dropdown-Menüs wünscht. In letzter Zeit habe ich die jQuery-Benutzeroberfläche mehr und mehr für allgemeine Widget-Themen, erweiterte Effekte, Schieberegler und ziehbare / abwerfbare Elemente verwendet.
Ich bin nicht verrückt nach einigen Methodennamen in der API. In sehr frühen Versionen von jQuery gab es zwei Methodennamen zum Durchlaufen des gesamten DOM-Baums: .parents () und .ancestors (). Beim Zuschneiden der API wurde .ancestors () gelöscht. Ich hätte es vorgezogen, .parents () zu löschen, weil "Vorfahren" meiner Meinung nach besser beschreibt, was ausgewählt wird. Im Allgemeinen mag ich es, wie jQuery Methoden überlädt. Ich denke, dass die Methoden .load () und .toggle () die Idee etwas zu weit bringen.
Der schwierigste Teil ist wahrscheinlich nur im Zeitplan. Es ist jedoch absolut wichtig, vorab einen vernünftigen Zeitplan festzulegen und den ganzen Weg durchzuhalten.
Die meisten Änderungen am jQuery-Kern betreffen die Bereiche Leistung, Stabilität und Fehlerbehebungen. Ich sehe nicht viele neue Funktionen, die zum Kern hinzugefügt werden. Halten Sie für neue Funktionen die jQuery-Benutzeroberfläche im Auge. Dort wird sehr viel Neues entwickelt.
Ich bin einer von mehreren technischen Gutachtern für ein jQuery-Kochbuch, das in Arbeit ist. Aber ich schreibe zurzeit keine Bücher und habe auch keine Pläne, dies in Kürze zu tun.
Nichts, was noch nicht erwähnt wurde, aber danke für das Angebot!
Gern geschehen! Ich bin geschmeichelt von Ihrem Interesse an dem, was ich zu sagen habe.