Schulung JavaScript und TypeScript für die moderne Web- und App-Entwicklung

Beschreibung/Inhalt

Geschäftsanwendungen auf der Basis von Web-Technologien, allen voran HTML und JavaScript, sind derzeit äußerst beliebt, zumal damit sämtliche klassischen und mobilen Plattformen adressiert werden können. Doch bevor Entwicklungs-Teams ausgeklügelte JavaScript-Frameworks, wie Angular 2, nutzen können, müssen Sie sich im Bereich der Grundlagen fit machen. Dazu gehört neben der Sprache JavaScript auch das Document Object Model zur Interaktion mit dem Browser aber auch das JavaScript-Eco-System mit seinen Build-Tools und Packagemanagern. Dieses Seminar gibt anhand eines durchgängigen Beispiels einen Überblick zu diesen Technologien. Dazu wird nicht nur JavaScript, das in seiner neuesten Version „ECMAScript 6“ auch Klassen und Module unterstützt, sondern auch TypeScript, welches zusätzlich ein statisches Typsystem bringt, betrachtet. Im Rahmen der Übungen haben Sie selbst die Gelegenheit, die gewonnen Erkenntnisse anhand einer eigenen Anwendung zu erproben.
- Dieses Schulungsmodul kann mit allen aktuellen JavaScript-Versionen (z.B. 14.0, 13.0, 12.0, 11.0) entsprechend Ihren Wünschen durchgeführt werden.
- Dieses Schulungsmodul kann mit allen aktuellen TypeScript-Versionen (z.B. 4.8, 4.7, 4.6, 4.5) entsprechend Ihren Wünschen durchgeführt werden.

Optional vorab: HTML und CSS als Basistechniken moderner Web- und Mobilanwendung (werden geschult, sofern noch nicht bekannt)

# Konzepte moderner Web- und Mobilanwendungen

  • AJAX statt "Round Trips"
  • REST-Kommunikation mit HTTP-Diensten (XML, JSON)
  • Usability ähnlich wie bei Desktop-Anwendungen
  • Responsive Web Design (RWD)
  • Pattern für die Benutzeroberfläche (MVVM, MVC, MVP)
  • Single-Page-Web-Applications (SPAs)
  • Offline-Fähigkeit
  • Benachrichtigungen/Push ("Echtzeitfähigkeit") mit Websockets
  • Progressive Enhancement
  • Progressive Web Apps (PWA)
  • Cross-Platform-Apps


  • # Architektur einer modernen Web- und Mobilanwendung
  • Aufbau des Servers
  • Aufbau des Clients
  • Kommunikationsarten


  • # Die Skriptsprache JavaScript
  • Grundkonzepte von JavaScript
  • Unterschiede zu C#/C++/Visual Basic/Java u.a.
  • Variablen und Typen in JavaScript und Ermittlung von Typen
  • Kontrollstrukturen (Schleifen, Bedingungen etc.)
  • Booleans, truthy und falsy und der Vergleichsoperator
  • Funktionale Programmierung und Closures
  • Ausgewählte, vordefinierte Objekte (Arrays, Strings, Date)
  • Objektorientierte Programmierung mit Objektliteralen, Konstruktorfunktionen und Prototypen
  • Das Function-Objekt und this
  • Module-Muster und IIFEs
  • Sonderfälle und besondere Konstrukte


  • # TypeScript als Erweiterung zu JavaScript
  • Transpilation nach JavaScript
  • Konfiguration des TypeScript-Compilers (tsconfig.json)
  • Verbesserte Typisierung / TypeScript-Datentypen
  • var vs. let vs. const
  • Template Strings
  • for-of vs. for-in
  • Klassenbasiertes Programmieren: Klassen, Vererbung und Interfaces
  • Duck Typing
  • Destructuring
  • Vereinfachtes funktionales Programmieren: Funktionen und Lambdas (Arrow-Functions)
  • Vereinfachte asynchrone Programmierung mit async/await
  • Generics
  • Fehlerbehandlung
  • Module
  • Ambiente Deklarationen
  • Dekoratoren (Annotationen)
  • Iteratoren und Generatoren


  • # Best Practices für JavaScript und TypeScript
  • Zu vermeidende Sprachkonstrukte
  • Wartbaren Code schreiben
  • Coding Styles


  • # Werkzeuge
  • Web-Editoren wie Visual Studio, Visual Studio Code (VSCode), Webstorm/IntelliJ und Eclipse
  • Sinnvolle Erweiterungen des Webeditors (z.B. Plug-Ins für VSCode, Web Essentials für Visual Studio)
  • Aufbau eines Projekts/Projektstruktur
  • Ausführungsumgebungen: node.js und Browser
  • Transpilation, z.B. von TypeScript zu JavaScript
  • Präprozessoren, z.B. SASS/SCSS/LESS/Stylus zu CSS
  • Debugger z.B. in Visual Studio, VSCode, Webstorm, Eclipse
  • Debugger in Browsern z.B. in Chrome
  • Die Paketmanager NPM, bower und nuget
  • Bundling, Lazy Loading und Hot Reloading mit Webpack, RequireJS oder SystemJS
  • Codegenerierung mit Yeoman
  • Qualitätssicherung mit Lintern wie ESLint, JSLint, JSHint, TSLint
  • Build-Automatisierung mit NPM-Skripten, gulp und grunt
  • Bundling mit Webpack, Parcel oder Browsify
  • Testautomatisierung, z.B. Jest, Mocha, QUnit, Cypress, Selenium, Nightwatch, WebdriverIO, Protractor, TestCafe, Playwright, Puppeteer, Chai, Expect.js, Code Coverage mit "Istanbul"
  • Continuous Integration / Continuous Delivery, z.B. mit GitHub, GitLab, Azure DevOps


  • Optional: Framework-spezifische CLI-Werkzeuge wie z.B. Angular CLI, Vue CLI, React CLI oder Cordova CLI

    # Programmierschnittstellen des Browsers
  • HTML5.x und CSS3
  • Document Object Model (DOM)
  • Programmierschnittstellen moderner Browser (z.B. IndexedDB, Web SQL, Websockets, Service Worker, Animations, Push, Promises)
  • Verfügbarkeit moderner Programmierschnittstellen und Polyfills
  • JavaScript Object Notation (JSON)
  • REST-/JSON- Webservices mit AJAX aufrufen (XHR-Objekt)
  • Cross-Origin Resource Sharing
  • Sinnvolle JavaScript-Bibliotheken
  • Abstraktion von XHR-Objekt mit Promises und Observables

  • Dauer
    Auf Wunsch. Gerne geben wir Ihnen eine Empfehlung zur notwendigen Schulungsdauer, wenn Sie uns in der Anfrage Ihre Vorkenntnisse und Ziele nennen.
    Ort
    Online oder in Deutschland, Österreich und der Schweiz an Ihrem Firmensitz
    Schulungsdidaktik
    Nach Ihrer Wahl: Klassische Schulung mit PC-Übungen, reine Präsentation ohne PC-Übungen oder interaktiver Workshop mit Beratungsanteil