May 14, 2018

Ember 2018 Roadmap: A call for blog post

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.

comments powered by Disqus