JavaScript is famous for the variety of possibilities it offers and the speed with which new solutions and technologies emerge. Getting around in such an environment — and avoiding rash decisions — is a difficult task for an experienced programmer, let alone a newcomer, who often wonders what solution or framework to choose.
The purpose of the workshop is to present a reasonable approach to application design and to lay out the decisions that have to be made before development even starts. These are questions like how to organize the code, how to split roles between the client and the server, which — if any — framework to chose, or how to handle support for old browsers and devices.
Another area of interest is application optimization. That means being familiar with the specifics of the environment in which the application is running — such as a mobile web browser — and to know which solution to use in each case. The development process itself, however, can be optimized, too. We’ll therefore take a look at automation of tasks like code transpilation and minification using Grunt and similar task runners.
Finally, we will focus on the topic of progressive web applications, which is a method of developing mobile web applications that allows them — with little effort — to compete with so-called native applications. This is possible thanks to new technologies such as Service Worker, which we will take a look at.
Who is it for
Your knowledge of JavaScript is rather theoretical and you would like to turn it practical. However, you don’t know where to start and you would like to avoid beginner mistakes. Or, you use JavaScript fairly often, but you would like to get a better grasp and catch up with the latest features.
Required knowledge
At least basic experience and knowledge of development in JavaScript is required. Ideally, you have attended the workshop Modern JavaScript which directly precedes this one.
Contents
Application design
- progressive enhancement
- organizing code into modules
- browser-side and server-side (Node.js)
- frameworks (React)
- single-page and isomorphic (universal) applications
- server-side rendering
Optimization and automatization
- types of application loading
- code transpilation
- polyfilling
- task runners (Grunt, Gulp, Webpack, …)
Web application
- progressive web applications (PWA)
- Service Worker