EmberJS, bug de référence + questions

a marqué ce sujet comme résolu.

Bonjour ! :)

Ce weekend, j’ai découvert EmberJS. Après avoir regardé ça d’un peu plus près, je trouve ce framework vraiment sympas.

Cependant, je me pose quelques questions sur ce framework. Mais avant j’aimerais régler un petit bug que j’ai avec mon application de test.

J’ai une page "Detail" dont voici le template :

<div>
   <h3>{{model.lastname}}, {{model.firstname}}</h3>
</div>
<div class="slide-out-content">
   <MyForm @author={{model}} />
</div>

Ainsi que la route associée :

import Route from '@ember/routing/route';

export default class AuthorDetailRoute extends Route {
  model(params) {
    return this.store.findRecord('author', params.id)
  }
}

Rien de bien extraordinaire, je récupère un auteur selon l’ID passé en paramètre de l’URL.

Aussi, dans mon template, j’inclus le composant MyForm qui est le suivant :

{{@author.firstname}}
<Input @type="text" @id="firstname" @placeholder="Firstname" @value={{@author.firstname}} />

Ici, j’affiche simplement un champs de type text, et j’affiche le nom de l’auteur pour voir en direct mes modifications.

Cependant, lorsque je modifie le texte de mon input, j’ai bien le {{@author.firstname}} de mon template MyForm qui change, mais j’ai aussi le <h3>{{model.lastname}}, {{model.firstname}}</h3> de mon template Detail qui change !

C’est un comportement attendu en réalité, mais ce n’est pas celui que je veux. Un problème de référence sûrement.

Comment faire en sorte que le champs n’impacte pas mon template parent ?

Maintenant que le problème est posé, j’ai aussi quelques questions à propos d’Ember.

Je trouve le framework vraiment sympas, bien qu’assez difficile à prendre en main. Cependant, en cherchant des ressources sur la version 3 d’Ember, j’ai remarqué que… il n’y à (quasiment) rien.

Beaucoup de ressources sur la version 2 sont disponible, mais la version 3, c’est le néan.

Je me dit alors qu’Ember est une technologie un peu morte, d’autant plus que j’entend beaucoup parler de Vue et React, mais Ember, jamais.

Je sais qu’il est utilisé par Apple, Google, Linkedin et Twitch notamment, mais Ruby on Rails est bien utilisé par AirBnB et pourtant… :D Je ne dirais pas que Ruby on Rails est mort, mais bon… j’ai pas l’impression que ce soit une technologie d’avenir.

J’ai bien envie de m’investir plus dans Ember, mais j’ai pas non plus envie d’investir dans une techno en fin de vie.

Des détails sur cette question ?

Merci ! :)

+0 -0

En fait tu modifies une propriété d’un objet (donc une référence directe)… du coup la valeur est mise à jour partout. Ce n’est pas un comportement propre à Ember, c’est du JS classique.

Oui, c’est pour ça que je parlais d’un problème de référence et d’un comportement voulu.

Cependant, ne maîtrisant pas Ember, je voulais savoir si il y avait une façon propre à Ember de corriger le problème ou non (via une propriété par exemple).

En attendant, j’ai ajouté une méthode dans mon controlleur qui retourne un clone du model.

get author() {
  return Object.assign(Object.create(Object.getPrototypeOf(this.model)), this.model)
}

J’aurais aussi pu utiliser JSON.parse(JSON.stringify(this.model)) mais je préfère garder les méthodes de l’objet au cas où.

Mon problème et donc résolu. Cependant, mes interrogations reste toujours d’actualité.

Tu as des infos à me donner @viki53 sur ce sujet ?

Merci ! :)

+0 -0

Je sais qu’il est utilisé par Apple, Google, Linkedin et Twitch notamment, mais Ruby on Rails est bien utilisé par AirBnB et pourtant… :D Je ne dirais pas que Ruby on Rails est mort, mais bon… j’ai pas l’impression que ce soit une technologie d’avenir.

FougereBle

Ruby on Rails, dernière version il y a moins de 2 semaines. Exemple typique d’une technologie qui est utilisée à l’étranger et pas en France (/Europe). Ruby est juste derrière Go dans l’index TIOBE, devant MATLAB. Bref, c’est beaucoup utilisé. Juste pas en France. Le contraire existe. OCaml par exemple. Beaucoup utilisé en France, remplacé presque partout ailleurs par Haskell.

Pour Ember.js, je dirais que ça a atteind une certaine stabilité et que le développement est du coup, lent. Mais que c’est utilisé et utilisable. Ce n’est pas mort quoi. D’ailleurs la dernière version date d’il y a 3 jours.

+0 -0

Pour Ruby on Rails… j’avoue ne pas avoir regardé au-delà de nos frontières. :honte:

Effectivement, il à l’air encore pas mal utilisé à l’étranger (surtout en Amérique si j’ai bien compris - je devrait peut être déménager là bas alors :D ).

Pour en revenir à EmberJS, j’ai bien vu qu’il était encore actif sur le développement (à en voir la dernière version), mais je trouve cela quand même étrange de ne trouver pratiquement aucune ressource récente sur le sujet. Tout ce que je trouve date de 2018 au plus… ce qui est un peu vieux.

En plus de ça, j’ai rapidement regardé les offres d’emplois pour me donner une idée sur l’utilisation, et il y en à vraiment peu, et un grand nombre parmi elles demande simplement une expérience avec ce framework (tout en citant les autres) mais indiquent clairement qu’ils utilisent une autre techno (souvent React).

Bref, j’ai l’impression que c’est encore utilisé, mais en cachette. :ninja:

(edit: Et que du coup, je sais toujours pas si ça vaut le coup d’investir dedans)

+0 -0

Ça semble être un outil en voie d’extinction oui.

Du coup tu vas surtout tomber sur de la maintenance de projet plus qu’autre chose.

Et si le framework n’est pas très utilisé, il y aura moins de publications à son sujet.

Après si tu maîtrises les bases derrière (en gros le JS moderne) et que tu a déjà joué avec des outils similaires ça devrait être un bon package pour pouvoir l’utiliser quand c’est nécessaire. Mais perso j’investirais pas trop de temps pour apprendre à l’utiliser si le but est juste d’en faire une ligne sur le CV.

Je viens de découvrir le site State of JS et voici ce que j’ai pu y trouver.

Screenshot 2021-01-20 at 22.53.00.png
Screenshot 2021-01-20 at 22.53.00.png

Effectivement, Ember est en chute libre. ^^

Par contre, deux Framework m’intéressais : Ember et Svelte. J’aurais préféré apprendre Ember (je le trouve très sympas) mais mon choix se portera finalement sur Svelte… mais je ne l’utiliserais pas encore dans de vrai projet par contre. Sapper m’intéresse pas mal, mais je sais qu’il ne sortira jamais de la bêta, puisqu’il sera remplacé par SvelteKit. Je vais donc attendre de voir comment tout cela évolue ! :)

+0 -0

Le graphique montre des données sur l’intérêt porté à un framework par des développeurs, attention, ça n’a rien à voir avec l’usage et encore moins avec la documentation disponible.


Je suis d’ailleurs étonné de l’absence de données sur LitElement avant 2020 alors que je l’utilisais en 2019 et que c’était déjà pas nouveau (dérivé de Polymer créé en août 2018).

Le graphique montre des données sur l’intérêt porté à un framework par des développeurs, attention, ça n’a rien à voir avec l’usage et encore moins avec la documentation disponible.

viki53

Exacte, mais si un framework est moins populaire d’année en année, il y à (logiquement) moins de nouveaux projets initiés avec.

Je suis d’ailleurs étonné de l’absence de données sur LitElement avant 2020 alors que je l’utilisais en 2019 et que c’était déjà pas nouveau (dérivé de Polymer créé en août 2018).

viki53

Peut être à cause d’une version majeure ?

Par exemple, Svelte est sur le graphique depuis la version 3 sortie en 2019 qui à été celle qui à fait vraiment "décollé sa popularité" (les mots sont mal choisis, mais bref), alors que la version 1 est sortie en 2016 il me semble.

Edit : Le graphique ne montre que ce qui à une "note" de plus de 10% (si j’ai bonne mémoire).

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte