Modifications docstrings de certains Contrats - #3
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Je me rends compte que j'ai rédigé les docstrings en expliquant ce que font les méthodes sans adopter particulièrement le point de vue de l'application. C'est probablement une erreur car c'est bien les développeurs d'applications qui en sont les premiers destinataires. Tu dis même que ce sont les |
Techniquement, les appels distants ne peuvent qu'être asynchrones. C'est indiqué dans le readme global.
Ces points ne sont pas rappelés dans la rédaction des contrats car, d'une certaine façon, c'est implicite. Les contrats sont rédigés sans promesse ce qui permet d'avoir la même écriture que l'on soit fournisseur ou consommateur. Et typescript permet d'ajouter les promesses nécessaires à partir des contrats rédigés ainsi (code). Ne mettre ces infos que dans le readme global n'est probablement pas suffisant. Il faudrait l'ajouter par exemple dans cet autre readme. Ou alors en haut de chaque fichier de contrat.
Les appels côté meta-player reçoivent aussi une réponse asynchrone. Si je n'ai pas mis d'
Ce qui est optionnel, c'est d'adhérer ou non à un contrat (si l'application n'en a pas besoin). Mais si le choix est fait d'adhérer, alors il faut implémenter toutes les méthodes prévues. C'est le sens que je donne au mot
Je ne suis pas sûr de comprendre. Le processus de |
FredZinelli
left a comment
There was a problem hiding this comment.
-
J'ai mis à jour les différents contrats en ajoutant plus d'infos sur leur but, et en rajoutant les syntaxes de souscription (pour les
simple-content, c'est nécessaire, du coup, j'ai mis l'info partout) -
Je n'ai pas touché (ou presque) au contrat
simple-content-eval. Ne sachant pas exactement comment/dans quelle situation il est utilisé, j'ai préféré m'abstenir. Mais il faudrait ajouter les infos équivalentes à celles dans simple-content, et expliquer dans quels cas on préfère l'un à l'autre. -
Dans
contentSaved, j'ai ajouté des infos qu'il faudra que vous validiez (j'y suis encore allé au feeling... x) ) -
J'ai rajouté l'info pour tous les objets
application: {...}comme quoi les implantations sont asynchrones.
| * - `{v}` est le numéro de version du contrat. | ||
| * - `{type}` est le type de données utilisées par l'*Application*. Peut être: | ||
| * json | ||
| * text |
There was a problem hiding this comment.
Il faudra que vous ajoutiez les différents types possibles, ici.
Pareil pour le contrat simple-content-eval.
| * (données non enregistrées dans Capytale) pour éviter que l'utilisateur ne puisse faire | ||
| * certaines actions qui lui ferait perdre ces données par mégarde. | ||
| * | ||
| * Cette méthode n'est appelée que si la sauvegarde a été un succès. |
|
Je vais tâcher de clarifier mes interrogations concernant ce qui est async ou pas et pour mes histoires de contexte/binding avec les fonctions fournies lors des souscriptions aux contrats vs le Le fond du problème est que je ne sais pas comment tout ça tourne sous le capot, donc j'ai plein d'idées/questions qui me viennent (souvent "à la c...", potentiellement 😅 ). Pour tout ce qui tourne autour du async, mes questions se résument en fait à savoir si côté application on peut faire des plans sur la comète concernant les ordres d'exécution. À la réflexion, vu que les contrats ont tout de même un côté "atomique" marqué, ça tient sans doute plus de la lubie que du questionnemnt utile. Pour mes histoires de binding vs
À ce stade, j'envisageais le metaplayer comme une entité persistante, hors iframe. Du coup, même après destruction de l'iframe, ne sachant pas ce que vous faites de votre côté, les fonctions passées initialement lors de la première souscription au contrat auraient pû rester stockées par le metaplayer. |
Info sur `evalLabel`
Voici des suggestions de docstrings.
- Modifié -
Il y a sans doute des choses erronées, car j'y suis parfois allé au feeling, pour déduire ce qu'il se passe ou non. En particulier:reloadetgetContent.- Modifié -
Pourreload, justement : je me suis rendu compte en rédigeant ma suggestion qu'il y a potentiellement des différences à discuter selon que l'Application est une SWA ou non. C'est en particulier le fait que vous parliez d'un "éventuel" état à passer àreload, qui m'a fait m'interroger à ce sujet : du côté de CodEx, si j'ai bien compris, ce n'est pas du tout éventuel mais indispensable puisqu'on change carrément de page.- "validé" (qui ne dit mot consent ;) ) - J'ai parfois parlé de
loadContentdans des contrats qui n'ont rien à voir. Ce n'est peut-être pas désirable (ou bien à reformuler en précisant "si le contrat est implanté" ?).- Modifié -
getContent(x2) : J'ai ajouté une info sur une contrainte de non modification des contenus durant la sauvegarde, côté Application. Il me semble en effet me souvenir de qqc à ce sujet... (et aussi parce que sinon, je ne voyais pas le but decontentSaved, donc "je me suis dit que ..."). Mais c'est vraiment au feeling.Remarque :
À propos de
contentSaved(), est-ce que ce ne serait pas intéressant d'y ajouter un argument booléen, pour indiquer à l'Application si la sauvegrade est un succès ou pas ? Vous avez déjà certainement du feedback dans la page elle-même, mais peut-être que l'Application pourrait un jour vouloir faire qqc de l'info ?