Our development team seems to follow none of the "conventions" in the ember guides


#1

I’m a beginner going through the ember guides hoping to understand how my company’s ember app works. The main idea behind ember is “convention over configuration” yet for every convention mentioned in the guides, my company’s repo for our app does not follow that conventtion. For example the app/templates folder has not been touched in 3 years, so when the guides say “to show something on every page, we can use the application template at app/templates/application.hbs” this doesn’t apply to us. Anything said about the router folder also doesn’t apply to our app because the routes folder also hasn’t been touched in 3 years and is empty. Same with the models folder, components folder and the controllers folder. None of these are being used.

Does this mean our development team is not using ember the “ember way” (i.e, the proper way) or are the famous ember conventions as outlined by the guides, widely flouted by developers?


#2

What is the structure being used at your company?


#3

Hi, It seems like everything is dumped into a “pods” folder, and every element of our app has its own folder in there with everything in it. But my more general question is whether the conventions in the guides are actually the conventions followed by developers in the wild, or if, at the end of the day, ember is used just like every other framework: apps slapped together in all types of ways which various dev teams see fit.


#4

Pods were an evolutionary step that followed the original convention you see in the guides. Both are very common forms and are officially “sanctioned” by the framework.


#5

Are there any resources showing the development of an ember project using the pods approach?


#6

Hey @Rup1, I’m new to ember as well, (just started learning it 10 days ago). With luck in google search, I was able to find these pods configuration. (I didn’t find any in Ember documentation itself, I researched and read them separately) .

You need to set up two things:

  1. Configure ember-cli’s default pod configuration in .ember-cli and add "usePods": true there. If this isn’t setup, you have to do ember generate <blueprint> <name> --pod to use pods. While setting the configuration given above, you don’t need to specify the --pod option.

  2. Setup pod installation path in config/environment.js and add podModulePrefix: '<pod_installation_path>' in the environment

here’s mine for example:

let ENV = {
  modulePrefix: 'my-app-name',
  podModulePrefix: 'my-app-name/pods',

Just sharing… but yeah I wish someone would point an ember documented way though.


#7

Pods were an experiment that the community loved. But they have some snags that hit if you don’t understand their quirks and have never been an officially sanctioned / documented approach in guides. The replacement for pods is actively being worked on at the moment and once it arrived (with migration tools for us all), the entire community will start switching.

Once it has landed, we’ll also update the guides and it’ll be clearer what is going on :wink:

More details on this can be found on our status board under Module Unification: https://emberjs.com/statusboard That status board itself isn’t yet linked anywhere, that’s something we’re working on finding a home for …