Du sprichst Vanilla JavaScript? Dann ist dieser Workshop genau der richtige für Dich.

JavaScript als Sprache, die dem Programmierer viel Freiheit gibt, muss duch unbedingt Nuancen und interessante Aspekte haben. Viele Probleme lassen sich auf verschiedene Art und Weise lösen – die Wahl der optimalen Lösung erfordert häufig Kenntnisse der fortgeschrittenen “Mechanismen” der Sprache selbst und des Interpreters.

Für die fortgeschrittenen JavaScript Coder, die bei der täglichen Entwicklung die Sprache intensiv verwenden, bieten wir ein Training an, bei dem wir uns ausschliesslich mit fortgeschrittenen Aspekten befassen.

Das spezielle Training erfordert auch eine aussergewöhnliche Form: ausser Powerpoint-Präsentation und Praxis-Berichten, werden die Teilnehmer komplexe Probleme in Teams lösen und – da wir uns doch in einer professionellen Runde sammeln, wird die Diskussion und offene “Brain-Sparrings” herzlich willkommen sein.

Stattgefunden in:

Köln, Berlin, Hamburg

Der Workshop hat bereits stattgefunden.

Wir empfehlen:
Understanding JavaScript: OOP and Patterns
Workshop Notifications
Nächsten Workshop nicht verpassen!
  • JS-Coder, die Vanilla JavaScript sprechen und schreiben
  • Entwickler, die sehr gute Kenntnisse der JS-Syntax und Mechanismen der Sprache haben, zusammen mit JS-OOP, Closures, call, apply, Objekt-Kontext-Manipulation
  • Entwickler, die interessiert sind, den JS Code zu optimieren – sowohl dessen Performance, als auch die Qualität
  • Das nicht-google’bare Fachwissen zu meist fortgeschrittenen Aspekten der JS-Sprache verwenden
  • praktische Problemlösungen einsetzen, unifiziert zwischen verschiedenen Umgebungen (Folgen der anfänglichen Inkompatibilität der Sprache)
  • Sowohl die grundlegenden hardcore-Sprach-Issues wie platfformübergreifende Typerkennung, als auch moderne Aspekte wie ECMAScript 5 / 6 oder WebWorkers angehen
  • 1. Sichere, plattformübergreifende Typerkennung

    Type-recognition ist nur scheinbar eine grundlegende und einfache Frage - JavaScript bietet leider keinen wirksamen und einheitlichen Mechanismus für Typerkennung. Typeof-Operator verhält sich vielfältig (z. B. unterschiedliche Ergebnisse für  reguläre Ausdrücke, abhängig von dem Interpreter); oder der instanceof-Operator ist abhängig von dem aktuellen globalen Objekt. Warum ist null ein Objekt? Und function (die doch vom Object erbt) wird als separater Typ erkannt? Was sind die callable-Objekte? Wir beantworten alle diesen Fragen, um die finale Antwort auf das Problem des uniformen Verstehens der Typen zu finden.

  • 2. ECMAScript 5

    ECMAScript 5 hat sich bereits in neuen Interpreters etabliert, aber wird noch recht selten (und manchmal doch ungeschickt) von Programmierern verwendet. Wir präsentieren spezifische Patterns für ECMAScript 5 und zeigen, wie der neue Standard das Konzept der Programmierung in JavaScript ändert. Wir zeigen, dass ECMAScript 5 nicht nur “forEach für die Tabelle” ist, sondern eine komplett neue Philosophie der objektorientierten Programmierung.

  • 3. Aspect Oriented Programming in JS

    JavaScript ist aufgrund seiner dynamischen Natur perfekt für die Erstellung von Aspekten; ECMAScript 5 verbessert noch diese Möglichkeit. Wir befassen uns mit aspektorientierter Programmierung und finden praktische Einsatzgebiete in JavaScript-Applications. Wir werden auch präsentieren, wie mit wenigen Zeilen Code der Programmsverlauf verfolgt werden kann.

  • 4. Nicht-redundante Feature-Erkennung

    Feature-Erkennung (oder Feature-Recognition), genauso wie Erkennung von Typen, kann als Grundtechnik betrachtet werden, ist aber eine sehr fehleranfällige Technik und in der Praxis wird oft falsch verwendet. Wir zeigen die Unterschiede zwischen der guten und der “nicht-optimalen” Erkennung der Features. Wie wird es performant und ressourcenschonend implementiert, um das Programm nicht zu verlangsamen und die Speichernutzung durch fehlerhaften Code nicht zu erhöhen. Schließlich zeigen wir Beispiele, wann diese Technik anzuwenden ist – beim Laden des Codes oder vielleicht beim ersten Gebrauch? 

  • 5. Secure Code (ECMAScript 5, Caja, etc.)

    Die Verbreitung von JavaScript auf der Server-Seite und eine signifikante Übertragung von Funktionalität auf die Client-Seite öffnen einen großen und risikoreichen Spielraum für Missbrauch – von dem unerwarteten Einsatz des Codes bis zu JavaScript-Injections. Wir zeigen, wie man sicheren Code durch die Mechanismen von ECMAScript 5 und externe Tools, wie z. B. Caja, implementieren kann.

  • 6. Multiplattform JavaScript – Server bis Mobile

    Modernes JavaScript ist nicht nur auf die Browser-Umgebung beschränkt. Es ist sinnvoll, den Code auf solche Art und Weise zu implementieren, dass es auch auf die Mobile- oder sogar Server-Side eingesetzt werden kann. Wir werden Techniken zeigen, wie der Code unabhängig von der Umgebung verwendet werden kann. Wir werden auch die Problematik eingehen, wie die Konfiguration eines solchen Mechanismus vom externen Code aus, aussehen kann.

  • 7. Durchsuchen von Embedded Objects

    Durch häufige Nutzung der JSON-Notation wird immer öfter auf “großen” Objekten (große Datenmengen und komplexe Strukturen) gearbeitet. Dadurch entsteht das Problem der Suche und Filterung der Informationen in solchen Datenstrukturen. Wir nehmen Lösungen und Patterns unter die Luppe, die solche Datenanalyse und –Bearbeitung vereinfachen.

  • 8. Parallelisierung von JavaScript mit Web Workers

    Eins der Limits der Sprache war die fehlende Möglichkeit der parallelen Codeausführung, was z. B. zu Einschränkungen bei komplexen Berechnungen führte. Mit neuen Browsers und Engine-Versionen bekommen wir die Möglichkeit, den Code im Hintergrund laufen zu lassen – mit Einsatz von Webworkers.

  • 9. JavaScrpt 1.8.5 / ECMAScript 6

    ECMAScript 5 ist für Dich noch nicht genug? JavaScript Mozilla-Interpreters verbessern deutlich die Arbeit mit der Sprache und stellen interessante Mechanismen (wie Generatoren oder Block-Expressions) vor. Diese Erweiterungen sollen zu einem Teil der nächsten Version des ECMAScript-Standards werden, deswegen ist es interessant, sich schon heute mit ES 6 anzufreunden.

  • 10. Binär-Daten in dem Browser

    Die Sprache selbst bietet keine binären Typen an, wodurch Operationen auf Daten wie z. B. Bilder stark behindert sind (eventuell muss man BASE-64 einsetzen). Zusammen mit modernen Erweiterungen (wie WebGL) erhalten wir zusätzliche Typen, die in spezifischen Fällen die Entwicklung vereinfachen.

  • 11. Strict-Mode

    Was dürfen wir und was nicht im Strict-Mode? Wie ist es zu erkennen, ob die Umgebung den Strict-Mode unterstützt und ob der aktuelle Code auf diese Weise läuft? Wie kann man auf das globale Objekt aus dem Strict-Mode zugreifen? Ist es möglich, im Standard-Mode den Code aus der Strict-Mode laufen zu lassen?

David

David de Rosier

JavaScript & Java Berater

JavaScript & Java Trainer und ehemaliger Unversitätsdozent. Mit über 10 Jahren Erfahrung in JEE-Backend-Development (internationale Banking- und Web-Projekte) ist er seit mehreren Jahren auf der Frontend-Seite in seinem Element.


Seit 2009 selbständiger JavaScript Berater, darunter für Nokia Maps, Standard Chartered Bank Singapore und TeaLeaf. Open-Source Projekte: FunctionSack.com, node-secure, ddr-ecma5. Twittet JS-Braintwisters unter @140charsJS.