Aplicaciones web ambiciosas con Ember.js

Tomster

Cuando se trata de crear aplicaciones de página única o SPA en inglés, como desarrolladores tenemos muchas opciones de dónde escoger hay frameworks y librerías muy conocidas como angular en el área de framework y vue | react en el área de librería.

Hoy quiero hablarles de un framework no muy usado o conocido pero que merece ser mencionado: Ember.js. He trabajado con este framework por al menos 6 años, y la forma en la que llegué a este fue un poco graciosa, en ese tiempo estaba dando los tests para entrar a la comunidad de freelancers Toptal uno de los pasos era realizar un pequeño proyecto y para esto escogí Ember.js y PHP en el backend lo escogí como para aprender, había trabajado en el pasado con knockout.js, angular js, backbone y por supuesto jQuery; pero quería algo que realmente ayudara en la productividad, luego de ser aceptado en Toptal, la primera entrevista con un cliente era para llenar un puesto para trabajar con Ember, en principio dude en aplicar porque solo lo había aprendido para hacer este test, pero el reclutador me animó y la entrevista fue muy bien y desde entonces estoy trabajando con este cliente con 4 aplicaciones internas grandes hechas en Ember.

Una de los principios de Ember.js es que la evolución no debe ser drástica, como en el caso de angular que hubo un re-write del framework y los que crearon una app con angular js no pudieron pasar directamente a angular v2, la idea de Ember era siempre hacer las transiciones de versiones lo más seguras y fáciles posibles, para esto proveen con muchas herramientas, como deprecations para que desde una versión anterior comiencen a notarse los cambios que se activarán en las versiones posteriores y que alertan a los desarrolladores para cambiar el código de la aplicación para una futura actualización sin novedades, también existen codemods para que los cambios se hagan automáticamente, e incluso hay feature flags que permiten probar características que saldrán públicas en futuras versiones en versiones anteriores.

El framework ya lleva 10 años con una comunidad pequeña pero con gente de mucha calidad y muy abierta e inclusiva. En cuestión de paquetes disponibles para la comunidad hay una gran variedad, puedes chequear Ember Observer donde se registran todos los addons que tienen compatibilidad con Ember.

Como ejemplos de aplicaciones públicas desarrolladass con Ember están LinkedIn, Heroku, Intercom, Square.

En cuestiones un poco más técnicas, el framework tiene muchas opiniones en su diseño tal vez para muchos esto no es bueno, para mi es fantástico, no tienes que tomar decisiones de qué usar cada 5 minutos, porque como comunidad ya se hizo esta decisión a travez de procesos denominados RFC en github para realizar cambios. La estructura de las aplicaciones es estándar, si has trabajado en una app ember, puedes trabajar en otra muy rápidamente porque sabes dónde está y cómo funciona todo.

La URL en aplicaciones ember es tratada como una parte fundamental, ya que de la misma se puede derivar el ruteo, estático y dinámico, y adicional parametros de consulta. Es el punto de entrada hacia las rutas de la aplicación que a su vez manejan el modelo de datos que es transferido hacia los templates que usan componentes para mostrar y manejar la interfaz al usuario.

Se puede hacer Test Driven Development muy fácilmente con tests unitarios para cada componente o utilidad y tests e2e para ejecutar caminos complejos de interacciones de usuario.

Si a alguien le interesa más detalles de cómo funciona el framework, suscríbanse y dejenme saber.