This blog post is a response to Ember’s 2018 Roadmap: A Call for Blog Posts
Last November 2017 I had to build an application for make exams to evaluate teachers from a popular university. In the beginning this project was considered only for one person (me), so we decide learn Ember JS for this project.
The Beginning
My previous experiences making front-end projects was using simple javascript and coffee script. I used to implement libraries as Handlebars, Director, Moment, SockJS, etc.
Like other learning experiences, I started to make some exercises for understand the basics concepts. But in this case this experience was chaotic, because it resulted difficult for me follow a concept guide.
I tried to read the most popular books, and I found some difficulties for understand a basic knowledge about it.
I think that this happen because there isn’t a deep explain about Ember. Five months later this experience I could say that Ember is hard for understand, instead of other javascript frameworks.
Loving Ember
After this complications I could understand how to build an application using Ember and it results awesome.
I think that Javascript is a complicated language, there is a lot of frameworks and transpilers. I see EmberJS as a patch for Javascript, because it make the JS for build an application more easy.
For web apps, Ember implements a great ecosystem based on many concepts and helped by a command line cli.
Although learning Ember is hard at the beginning, when you understand it, you can work very quickly. With this framework you could have: quick development, reusability, modularity, and maintenance. But first you have to understand the basics.
Learning Ember
I made this visual recording for explain the most basic flow for start to learn ember as a novice.
Learning Ember Concepts:
1. Ember Cli
2. Templates and Handlebars
3. Routing: model and actions
4. Models
5. Request: adapter and serializers
6. Ember Addons
7. Ember Mirage
8. Components
9. Controllers
Learning this concepts I could develop an application for my job, so I can say that this are the basics concepts, and obviously there are more features for extend the use of ember. (I’m preparing a workshop with this agenda)
I would like to know more about Ember
When I was developing my app with Ember I had some questions about how to do something with this framework, and why this framework have this things.
- I see that when Ember lost the connection with the server side, the app is freeze, I don’t know if ember can manage this.
- Testing: I would like to know more about this topic, because I can’t understand why is more useful make testing with ember, it results easy work without this.
- Javascript have a lot of libraries, so, I would like to know how to implement in a Add-on using Components.
- When I implemented the minify I see that the hot reload becomes slow.
- I used the Ember Inspector, but I couldn’t understand how to use it.
- The controllers and the components are too similar, but I didn’t understand what was the main difference, I didn’t found some case for use a controller.
- I can’t found enough content for understand the serializers and adapters. I could only know the basics about it.
- Probably the worst thing about using Ember was the file structure. When you have a lot of routes and nested routes results difficult navigate through the project structure.
- The most difficult part was understand how to create a UI flow through the templates for create an application.
- I think that the environment ecosystem in important, so it could be great know more about how to install plugins for our text-editors, enable the ember syntax, autocomplete syntax, handlebars highlight. I use VIM as my text editor so I have to find what plugins improve my development environment.
Thanks for reading!
Of course this is the opinion from a novice with 5 months using Ember. This is my opinion for start to learn Ember and my main questions about it.