Blog d'une Belette Sauvage

L'aventure Ember Initiative đŸč❀ Semaine 9

· 995 mots · 5 minutes de lecture
Catégories Developement
Étiquettes web ember ember-initiative-journey

Semaine 9 – Un plan pour Ember Inspector

#web #emberjs #docs_writing #ember_inspector #vitejs #embroider #virtual_files

Cette semaine a Ă©tĂ© une semaine solitaire pour moi, puisque mes deux collĂšgues et mon manager Ă©taient en vacances. J’ai dĂ» avancer sur tous les sujets que nous avions sur la table, et je me suis concentrĂ©e sur trois d’entre eux : amĂ©liorer ember-vite-codemod, prĂ©parer la communication sur l’audit des addons Ember, et travailler sur Ember Inspector.

D’abord, réécrire le README #

Comme tout·e dĂ©veloppeur·se senior, je fus un jour junior. Mes souvenirs les plus traumatisants de cette pĂ©riode concernent une partie particuliĂšre de la rĂ©solution d’erreurs : deviner ce que les autres dĂ©veloppeur·ses veulent dire lorsqu’iel·s Ă©crivent des choses sur Internet. À un moment donnĂ©, il m’a semblĂ© que leurs propos restaient flous exprĂšs. Je soupçonnais un problĂšme d’ego inconscient, du genre : « Si j’ajoute des explications plus dĂ©taillĂ©es sur quelque chose, ça signifie que je pense que ce n’est pas Ă©vident. Mais si d’autres dĂ©veloppeur·ses pensent que je pense que ce n’est pas Ă©vident, alors qu’à leurs yeux c’est Ă©vident, alors iel·s vont penser que je suis incompĂ©tent·e. » Quelque chose comme ça. Je cherchais dĂ©sespĂ©rĂ©ment une rĂ©ponse logique aux questions : « Pourquoi vos docs sont-elles si MAUVAISES ? Pourquoi vous ne voulez pas EXPLIQUER ? Vous avez Ă©crit plein de trucs ici, mais quelle est la CONCLUSION ? Que voulez-vous DIRE ? Qu’est-ce qui ne va pas chez VOUS ? »

Presque une dĂ©cennie plus tard, je ne suis plus aussi en colĂšre contre toute la communautĂ© dev. La raison principale est que j’ai appris suffisamment de choses pour comprendre bien plus souvent ce qu’iel·s essaient de dire, et je peux gĂ©nĂ©ralement suivre les docs de A Ă  Z 🎉 Mais j’ai encore parfois du mal. Maintenant, mĂȘme sur des docs qui me semblent globalement assez bonnes, chaque fois que je ne comprends pas une ligne immĂ©diatement, chaque fois que je dois expĂ©rimenter un peu pour arriver Ă  « ah, ok, c’est ça qu’iel veut dire »  J’ai une pensĂ©e Ă©mue pour la moi junior qui aurait simplement jetĂ© son ordinateur par la fenĂȘtre et tout abandonnĂ© pour aller Ă©lever un troupeau de chĂšvres dans les collines de l’ArdĂšche. Et je réécris les docs.

Vous n’avez que de bonnes raisons de réécrire les docs :

  • C’est le type de contribution open source le plus facile. Vous modifiez simplement un fichier markdown, c’est 100 % sĂ»r, vous ne allez pas dĂ©truire le monde.
  • Si vous n’avez pas compris quelque chose immĂ©diatement, il y a certainement d’autres dĂ©veloppeur·ses qui ne le comprendront pas du tout. Votre retour a de la valeur, et si quelqu’un vous rĂ©pond « Pff, mais c’est Ă©vident », alors cette personne est le problĂšme ; vous n’ĂȘtes pas le problĂšme.
  • Si vous n’aimez pas tellement aider les autres (aucun souci), alors aidez-vous vous-mĂȘme. La prochaine personne qui lira ce document aprĂšs vous pourrait ĂȘtre vous, huit mois plus tard, sans aucun souvenir de ce qui vous avait posĂ© problĂšme.

Bref, j’ai ouvert une PR pour amĂ©liorer le README de l’ember-inspector.

Ember Inspector #

AprĂšs avoir creusĂ© un peu dans le code de l’Ember Inspector, Chris (mansona sur GitHub) et moi avons Ă©laborĂ© un plan plus prĂ©cis.

  • Preuve de concept : ImplĂ©menter un support Vite approximatif en utilisant des modifications de code dans ember-inspector et ember.js. En rĂ©sumĂ©, le cĂŽtĂ© inspecteur doit lire un nouvel objet fourni par le cĂŽtĂ© Ember, car il ne peut plus compter sur les modules AMD et le fichier baril d’Ember, qui est obsolĂšte. C’est dĂ©jĂ  fait : Chris a ouvert deux PR de brouillon dans chaque dĂ©pĂŽt et a rĂ©ussi Ă  faire fonctionner le tout.
  • Solution rapide : Inclure des modifications dans ember.js est un processus long qui implique la rĂ©daction d’une RFC pour concevoir et discuter de la solution finale. En attendant, les utilisateur·rice·s de Vite sont coincé·es avec un inspecteur non fonctionnel. Pour rĂ©soudre ce problĂšme, nous voulons implĂ©menter une solution temporaire en utilisant le systĂšme de fichiers virtuels d’Embroider. Nous voulons rendre Embroider capable de retourner le contenu que ember.js devrait fournir Ă  l’inspecteur ultimement. C’est ce que j’ai explorĂ© cette semaine, j’ai une PR de brouillon sur le dĂ©pĂŽt Embroider qui s’exĂ©cute partiellement mais nĂ©cessite encore du travail.
  • RFC : Sur la base de la preuve de concept, rĂ©diger une RFC pour dĂ©crire le nouveau protocole permettant Ă  l’inspecteur de communiquer avec ember.js.
  • ImplĂ©mentation de l’inspecteur : À partir de la preuve de concept, continuer Ă  creuser dans le code de l’inspecteur pour comprendre ce qui manque encore, ce qui peut ĂȘtre nettoyĂ©, ce que le concept de verrouillage de versions signifie exactement
 et obtenir la PR finale pour implĂ©menter le support de Vite.

Une chose Ă  laquelle je ne m’attendais pas, cependant, c’est Ă  quel point il serait compliquĂ© d’essayer le prototype de Chris. Pour le faire fonctionner, il faut avoir ses deux branches (le cĂŽtĂ© ember.js et le cĂŽtĂ© ember-inspector) qui tournent ensemble. En d’autres termes, il faut pnpm link la branche mansona/ember.js Ă  une application Ember que vous voulez inspecter, servir cette application Ember, exĂ©cuter localement la branche mansona/ember-inspector, et lancer le script pour charger cet inspecteur local dans l’application que vous servez. Ça aurait Ă©tĂ© faisable sans ces erreurs Ember obscures que j’obtiens avec mon pnpm link d’ember.js, et malheureusement, je ne peux pas encore documenter les apprentissages dans ce compte rendu hebdomadaire, car je n’ai pas encore trouvĂ© la rĂ©ponse.



Pas la semaine la plus facile de toutes, il y a eu beaucoup de changements de contexte, mais au final, je suis plutĂŽt satisfaite du rĂ©sultat : quatre amĂ©liorations livrĂ©es sur ember-vite-codemod, un brouillon pour Ember Inspector Ă  poursuivre quand Chris sera de retour, et un article de blog en prĂ©paration sur l’audit des addons qui pourrait sans doute ĂȘtre publiĂ© d’ici la fin de la semaine prochaine. Voyons si la semaine 10 pourra ĂȘtre celle de la sortie de notre support Vite temporaire pour l’inspecteur.


Intro, Semaine 8, Semaine 10