Data should always migrate down from it's parent and into it's child component / resource / etc. The data shouldn't be manipulated. Once the data is migrated down, use an action to bubble it back up.
- When naming actions use verbs to indicate an action
- When possible utilize beforeModel to evaluate if it is the correct route.
- Utilize replaceWith() to opt out of a certain route before transitioning to it.
Ember CLI will allow one to easily implement best practices that are baked into the CLI tool:
- "Pod" Based Folder Structure
- ES6 transpilation
- Unit Testing