This unique course provides valuable insight into the world of front-end libraries, frameworks and technologies as well as the relevant tools necessary for experienced developers to obtain a thorough introduction to the field of front-end development. The course provides the broad grounding for a wide spectrum of contemporary technologies, as well as a more in-depth view of the most widely used technologies in the field.
Please find the course objectives below:
The world of front-end development can be very intimidating at first, even to the most experienced developers (.Net, Java EE and the like). The latest Frameworks, libraries and tools come and go - with their ever inventive and hip names - like quantum particles. This course attempts to steer developers through this evolving landscape and provide much needed clarity and insight into the contemporary players, the leaders and the direction.
The course presents a broad view of the technologies, but also goes in-depth with certain “not be be ignored” technologies.
The course is structured over a range of technology categories. For each category we will discuss the various options at hand, their pros/cons. Within each category we will offer a deeper understanding of one (or two) technologies. The latter is always accompanied by a hands-on workshop.
Note that other technologies beside the ones below will be discussed.
We recommend the use of JetBrains WebStorm during the course. We also recommend to run the course on Linux (ready-to-go VirtualBox classroom Ubuntu-based images are available).
We shall work with delegates to cover the following:
Core Technologies & Useful libraries
- Introduce Node.js (as a platform)
- Use the npm package manager
- Use Node to run tools and utilities
- Discuss various useful libraries (moment.js, underscore.js, Closure Tools, ... )
MV* Frameworks (focus on Angular)
- Understand MVC, MVVM, MVW frameworks
- Overview of frameworks (Ractive.js, Knockout, Backbone, DoJo, ...)
- Delve deeper into Ember
- Use Ember (and handlebars)
- Detailed look at AngularJS
- Develop AngularJS modules (controllers, services, filters, routes and introduce directives)
- Use AngularJS Dependency Injection
- Use AngularJS' promises
- Working with (Restful) Services
Module Loaders and AMD (focus on RequireJS)
- Appreciate module loaders and AMD (Asynchronous Module Definition)
- Overview of Browserify
- Using and configuring RequireJS
- Using RequireJS inside Angular applications
Build and Workflow Automation (focus on GruntJS and Gulp)
- Introduce need to workflow automation
- Brief overview of GruntJS
- Setting up and using GruntJS
- GruntJS plugins
- Introduce and use Gulp
- Appreciate Gulp's stream based approach and "code over configuration"
Test Frameworks (focus on Jasmine and Protractor/Selenium)
- Recap/Introduce TDD and BDD
- Overview of frameworks (QUnit, Mocha, Buster.JS)
- Use Jasmine
- Writing specifications and using matchers
- Defining test fixtures
- Using Spies (stubbing and mocking)
- Using Karma (and Gulp) to run tests
- Discuss code coverage using istanbul
- Using Protractor to test drive AngularJS application (WebDriver/Selenium)
Code Quality and Documentation (focus on JSHint and JSDoc)
- Overview of JSLint and Closure Linter
- Using and configuring JSHint
- Appreciate documentation tools
- Other reasons to use documentation tools (e.g, type information, function semantics)
- Overview of Docco, YUIDoc and Doxx
- Using and configuring JSDoc
- Templating and search capabilities in JSDoc
- Adding additional documentation using JSDoc
Other languages (Brief)
- Overview of TypeScript, CoffeeScript and ScalaJS
- Discuss GWT, Dart (including AngularDart) and other languages.
- Write applications/tests using CoffeeScript
Concluding and Summary
- common problems/difficulties for non-experienced Front-end developers
- Directions and W3C Standardisations
- Choosing the right framework and technologies summary and grand overview
This is a well-balanced course that covers many elements. After the course delegates will have the confidence to plan and execute run of the mill tasks as well as major projects using these elements.