Ember.js Octane training
Learn how to leverage the power of Ember Octane
With the strong conventions and shared best practices of Ember.js, developers can join a project and understand what‘s going on quite quickly. They still have to know these conventions well enough so that they can write code that follows said conventions.
The features included in Ember Octane changed some of these conventions and made Ember more powerful and approachable. This training goes through the Octane idioms to show how they can be used to build common features – and how they often improve on old ways of doing things.
(Already convinced you need the training? Email me to discuss the details.)
“Balint’s great to have around. He knows what he’s talking about and can rephrase things so people understand. He’s flexible in the topics he addresses and can push developers forward quickly.
Balint nicely presents common topics (like testing or animations) in interactive fashion. Should a problem get him stuck, he can figure it out and can come back with possible solutions..”
Aad Versteden
CTO at RedPencil
Description
This training is for developers who need to understand how Octane idioms work or how they replace pre-Octane Ember features.
Going through the training will give participants a solid foundation to build on and reap the productivity benefits of comprehending Octane at depth.
Course content
Length: 2 days (Skip over course details)
Our tools
- Generating resources
- Inspect and tweak your Ember app via the Ember Inspector
- Debugging your app with Chrome Developer Tools
Templates and built-in helpers
- Writing a first template
- Dynamic expressions in Handlebars
- What do expressions refer to? (properties, named arguments, block variables, helpers)
- Built-in helpers
Routing
- The model hook
- Blocking behavior of the model hook
- The link-to helper
Nested routes
- Nested routes for nested UIs (templates)
- Execution flow in nested routes
Components
- The building blocks of UI
- Glimmer components
- Isolated and (sometimes) reusable
- Tracked properties
- Component invocations as function calls
- Arguments vs. internal properties
- Block and non-block form
Talking to a back-end (Ember Data)
- What does Ember Data provide?
- Why (and when) should you use Ember Data?
- Models
- Main store methods
- Relationship between models
Advanced routing
- beforeModel and afterModel
- Skipping model resolution
- The router service
- Route events: routeWillChange and routeDidChange
Loading and error substates
- Naming conventions
- The power of loading substates coupled with nested routes
Testing
- Application, rendering and unit tests
- The Ember.js testing framework
- Built-in test helpers
- Writing your own helpers
- Using mock endpoints with ember-cli-mirage
- Writing application tests
- Writng rendering tests for components and helpers
- Writing unit tests for models
Query params
- How to define them
- Where they live
Helpers
- What they should be used for
- Writing a helper
Modifiers
- What are they good for?
- Modifier API
- An example: the `on` modifier
- Writing a modifier
Services
- Where are they a good fit?
- Accessing services
It's possible to modify the above syllabus -to a certain degree- if you'd like to focus on certain topics and put less emphasis on others. Just mention this while we're discussing the details.
The flow of the training
The application we build is contained in a repository I give attendees access to before the training, with attached instructions about how to set it up. This is so that each of them can set up the app on their machine and no time is wasted with technical preparation and support during the training.
For each training module, I first give a short overview of the theory and then explain what we‘ll build. After that, attendees implement the feature (or features) for that module while I‘m helping them with any potential problems. As I strongly believe that we learn best by doing, we‘ll spend a lot less time on theory than practice.
All modules will have checkpoints so that attendees can jump straight there with their code and start implementing the next exercise without wasting any time.
So... how does the training actually happen?
I allow for some flexibility about the exact details of how the training happens, but there are a few things that I insist on:
- Attendees should come prepared. By giving instructions and access to the repository prior to the first day of training, I want to ensure that we can get right into it and spend time learning Ember.js, not cloning repositories, installing npm packages or fixing OS issues. For this, I‘d kindly like to request the cooperation of attendees so that we can move together as a group.
- Attendees should have a basic level of JavaScript knowledge. One doesn‘t have to be a JavaScript whiz (or, God forbid, a ninja) to write Ember.js applications but since they are written in JavaScript, a minimum level is required.
About me
Ok, what‘s next?
If you think such a training can be beneficial for your company, write me an email so that we can have a short call to discuss the details. I‘ll then send you a short proposal and we'll take it from there.