A brief cheatsheet on when to use each of Ember's core classes
-
Component- encapsulating a part of your web page
- enhancing native DOM elements
- capturing and responding to user input
-
Service- network calls that aren't in the route transition hierarchy (e.g. on user interaction)
- stuffing data or state that is shared across the app
-
Controller- gluing together components and services
- to stuff things when you don't have time to think about architecture
-
View- don't
-
Route- making network requests that are required by the page
-
Object- when you want
{}or ES6 Class, but with all the get/set/computed goodness of Ember
- when you want
-
Helper- formatting parts of what's displayed on the page
-
DS.Model- giving shape to network responses so they are more usable
-
DS.Store- making network requests for defined objects, so that they get auto-added and available
-
DS.Adapter- changing network address of defined objects when network calls are made
-
DS.Serializer- munging data to and from the server
-
DS.Transform- defining primitive types that you want to serialize network requests to and from