How to Build Front-End Web Apps that Scale

10
Phil Leggetter
BladeRunnerJS author, "Realtime Web Apps" co-author.
11
Andy Berry
JavaScript and Web technology Software Engineer with a sprinkling of DevOps.
Sold out!

Duration: 4 hours

Developing large apps is difficult. Ensuring that code is consistent, well structured, tested and has an architecture that encourages enhancement and maintainability is essential. When it comes to building large server-focused apps the solutions to this problem have been tried and tested. But, how do you achieve this when building HTML5 single page apps?

In this workshop you’ll learn the main concepts to apply when building front-end apps with highly complex functionality and tens of thousands of lines of code and beyond. We’ll also learn how those concepts help when an application is being contributed to by multiple developers or teams.

We’ll do this by all working together and contributing to the same application. Each team will build a single feature in isolation and during the exercises we’ll compose those features together into that application.

We’ll build our features and application using BladeRunnerJS, a new open source toolkit specifically designed to solve these problems. The concepts and workflow are transferrable to other tools and libraries.

BladeRunnerJS is an open source developer toolkit and lightweight front-end framework that has helped Caplin Systems ensure that a 150k LoC JavaScript SDK (Caplin Trader) hasn’t become a tangled mess of unstable spaghetti code. Along with the SDK, customers optionally receive a “getting started” application of around 50k LoC for them to build upon, and they’re expected not to turn that into a tangled … you get the idea.

Objectives

  • Understand the factors to consider when building large-scale and complex front-end apps
  • Knowledge of a productive developer workflow when building large scale applications across multiple teams.
  • An understanding of how to structure application assets and runtime architecture in order to be extensible and maintainable.
  • How to build and test a single application feature in isolation using MVVM, an EventHub (mediator) and a ServiceRegistry (Dynamic Service Locator)
  • How to integrate modular features it into an application being contributed to by other developers.
  • Best testing practices for large JavaScript apps with consideration to local development and continuous integration (CI) environments
  • Promote effective cross-team communication to ensure features will interact with each other
  • How to use the BladeRunnerJS developer toolkit
  • To consider the benefits of a zero-config workflow

Prerequisites

  • Intermediate JavaScript and Web development knowledge.
  • Java 7 runtime.
  • A github account and basic understanding of git.
  • An interest in engineering front-end apps