Architecting JavaScript Applications
Weekend Bootcamp

Learn how to take full advantage of JavaScript’s power
& start building robust web-scale or enterprise applications.

Do you know JavaScript but lack the knowledge to fully utilize it to build enterprise level JavaScript applications?

Learn how to take full advantage of JavaScript’s power to build robust web-scale or enterprise applications that are easy to extend and maintain.

JavaScript Training

Become a Better JS Developer

Build upon your existing JavaScript skills and learn how to write code that is more efficient and manageable. In this 24 hour training bootcamp, you will work through practical coding examples and labs that clearly illustrate how to use each core concept and technique. You will gain a concrete understanding of JavaScript concepts such as design patterns, dependency Injection, closures, objects, prototypes, promises and more.

You will learn how modern architectural patterns are important from the perspective of a modern web application developer and how to write flexible and resilient code that’s easier—yes, easier—to work with as your code base grows.

Course Highlights

  • Examine the anatomy of a large-scale JavaScript application
  • Learn best practices for code organization, modularity, and reuse
  • Separate your application into different layers of responsibility

Course Outline

JavaScript Fundamentals

  • Event Loop & Asynchronous JavaScript – Learn about async programming concepts and why they matter.
  • Truthy vs Falsey
  • Types in JavaScript
  • Object Creation Patterns

Functions

  • Deep dive into functions, the essential building blocks of JavaScript applications
  • Scoping
  • Function Declarations versus Function Expressions
  • Functions as Data
  • Anonymous Functions

Advanced JavaScript

  • Strict Mode
  • IIFE (Immediately Invoked Function Expressions)
  • Closures
  • Modules
    • Principles in modularity
    • Interfaces
    • The module pattern
  • Promises
  • Prototypes
  • Inheritance in JavaScript
  • Namespacing
  • Software Architecture best practices
    • DRY
    • Avoid collisions
    • SOLID principles
    • Loose Coupling & Maintainability
Design Patterns & Architecture

  • Dependency Injection
  • What are design patterns?
  • Prototype Pattern
  • Revealing Module Pattern
  • MVC vs MVVM

Functional Programming

  • Imperative vs Functional Programming
  • Currying
  • Partial Applications
  • Higher Order Functions
  • Function Composition
  • Immutability
  • Chaining
  • Mixins
  • Real world recursion
  • Map/Reduce

FUnit Testing

  • Test Driven Development
  • Testing using Karma
  • Test Frameworks (Jasmine, Mocha, QUnit)
  • E2E Testing using Nightwatch
  • Continuous Integration with Travis

Who is This Course For?

To get the most from this course, participants should have an understanding the basics of JavaScript. This course uses real-world exercises and labs to better maximize the retention of concepts taught in the training.

Course Delivery

This course is delivered as a hands-on (hand-coding) workshop and lecture. Participants are required to have their own workstation in which to practice the topics of the course.

System Requirements and Development Environment

Participates should bring a laptop/notebook computer. Mac or PC with any modern web browser installed and working wireless capabilities and a editor installed such as WebStorm.