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-inspectoretember.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.jsest 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 queember.jsdevrait 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.