InseeFrLab / utilitR

Source of the utilitR French R documentation
https://book.utilitr.org/
Other
75 stars 57 forks source link

[Fiches thématiques] Aborder la question de shiny ? #75

Closed linogaliana closed 3 years ago

linogaliana commented 3 years ago

In GitLab by @linogaliana on Jul 1, 2020, 08:59

Questions:

linogaliana commented 3 years ago

In GitLab by @RLesur on Jul 1, 2020, 09:11

Mon opinion sur Shiny (disclaimer, je n'aime pas Shiny mais ce n'est pas le sujet) :

Le problème de Shiny selon moi, c'est qu'il y a un risque élevé de produire quelque chose de legacy.

Je pense que la seule solution, serait d'appliquer les bonnes pratiques présentées dans le livre Engineering Production-Grade Shiny Apps qui est en cours de rédaction ici https://engineering-shiny.org/

Autrement dit, d'utiliser le package golem.

linogaliana commented 3 years ago

In GitLab by @ggenin on Jul 1, 2020, 10:18

Shiny, c'est un gros morceau. Développer une appli, c'est un métier, avec une démarche propre, propre à l'outil et propre au projet lui-même.

Le souci est qu'il y a eu une démo à la DG montrant que Shiny c'est génial et ça fait tout, qui a beaucoup plu. On se retrouve à faire des applications de gestion avec Shiny. Certes, c'est mieux que quand c'était sous XL, mais est-ce le bon outil ?

L'alternative peut effectivement se présenter ainsi, Shiny versus macros sous Calc/XL. Dans les deux cas, on a un logiciel disponible sur tous les postes (ou sur AUS) et qui est présenté comme accessible à tous, sans devoir installer pleins de trucs ni rien configurer dans le réseau. Or Shiny peut être bien pour certaines choses (visualisation de données), mais n'est pas le mieux adapté pour tout. De plus, je trouve pas ce langage pas si facile, tout en devant concevoir l'architecture de l'appli. Et aussi se poser la question de ce qu'apporte l'appli réellement en plus de la table de données.

On peut toutefois exposer une utilisation de Shiny qui va bien et qu'on pourrait souhaiter promouvoir. À nous d'en discuter.

linogaliana commented 3 years ago

In GitLab by @CTassart on Jul 1, 2020, 11:48

Il me semble que la question n'est pas vraiment de savoir si shiny c'est bien ou pas. Shiny existe et fait partie des formations proposées par l'Insee. A partir de là :

Il me semble difficile de réaliser une fiche, claire et concise, genre "concevoir une application web avec Rshiny" en pas à pas : les notions à aborder sont trop nombreuses.

Toutefois, il y a une formation nationale en cours de finalisation, à laquelle j'ai contribué avec @ggenin (pilotée par JLL). Elle aborde les différentes notions de base mais elle ne suffira probablement pas pour développer une appli dans les règles de l'art, le respect des bonnes pratiques...

Le cas échéant, cette fiche pourrait s'adresser à des agents déjà initiés (on revient à la cible du produit utilitR) et :

Avec RStudio, je sais qu'il est possible d'exécuter des pgms shiny pour un affichage dynamique avec le runtime:shiny mais je ne sais pas trop comment est réalisé l'output html.

linogaliana commented 3 years ago

In GitLab by @ggenin on Jul 1, 2020, 12:03

Package golem ? "Un golem (hébreu : גולם, « embryon », « informe » ou « inachevé ») est, dans la mystique puis la mythologie juive, un être artificiel, généralement humanoïde, fait d’argile, incapable de parole et dépourvu de libre-arbitre..." (wikipedia) Oui, c'est un peu mon idée de RShiny ! ;)

linogaliana commented 3 years ago

In GitLab by @ggenin on Jul 1, 2020, 12:08

En fait, golem ne fait pas du Shiny, mais du Dash (c'est pas une marque de lessive).

https://rtask.thinkr.fr/dash-with-golem-the-beginning/

(en fait non, golem fait Shiny et Dash, désolée)

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Jul 1, 2020, 18:05

Comme dit sur Tchap, je ne connais pas bien Shiny. Mon opinion pas hyper informée est que Shiny est un outil puissant mais complexe, qui ne cadre pas très bien avec l'objet de la doc UtilitR. Je propose donc de laisser Shiny de côté pour le moment.

Ceci dit, on peut très bien imaginer que des contributeurs rédigent une documentation spécifique à Shiny, et que cette documentation soit disponible sur un futur site internet utilitr.insee.fr, au même titre que la documentation que nous sommes en train d'écrire.

linogaliana commented 3 years ago

In GitLab by @CTassart on Jul 2, 2020, 13:06

Ceci dit, on peut très bien imaginer que des contributeurs rédigent une documentation spécifique à Shiny, et que cette documentation soit disponible sur un futur site internet utilitr.insee.fr, au même titre que la documentation que nous sommes en train d'écrire.

Comme je l'ai dit plus haut, j'ai participé au groupe de conception de la formation nationale qui devait être testée en Avril mais...

A des fins personnels, j'ai commencé à reprendre les différents supports réalisés (impress & writer) pour en faire quelque chose avec markdown.
Je viens d'initier quelque chose avec le package bookdown que je pourrais mettre, si ça intéresse et correspond au projet, à disposition d' utilitR une fois finalisé.

Il me reste plusieurs choses à régler avant :

J'ajoute (pour @clairelegroux) que cela pourrait également alimenter l'intranet LS2

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Jul 2, 2020, 13:21

@CTassart : c'est une super idée. Je suis sûr que @linogaliana et d'autres seront prêts à t'aider pour déployer ton doc (moi pas trop, je n'y connais rien...). Il faudra voir sur quel site le déployer.

linogaliana commented 3 years ago

In GitLab by @linogaliana on Jul 2, 2020, 21:27

@CTassart je peux tout à fait t'aider pour le déploiement automatique des supports. En commençant sur ton gitlab perso ça peut être un bon début.

C'est je pense une bonne manière de valoriser vos supports. J'ai fait ça avec la formation Travail collaboratif sous R qui devait également être testée en Avril et aussi avec une formation "R avancée" faite avec Mathias (déploiement interne sur la PF innovation mais même principe)

linogaliana commented 3 years ago

In GitLab by @CTassart on Jul 3, 2020, 07:54

je peux tout à fait t'aider pour le déploiement automatique des supports. En commençant sur ton gitlab perso ça peut être un bon début.

C'est super ! Je n'y connais vraiment rien dans tout ce qui concerne le déploiement et j'ai hâte d'apprendre. Je suis à ta dispo (enfin, pas trop aujourd'hui : je suis déjà en WE :smiley: )

J'ai fait ça avec la formation Travail collaboratif sous R

Oui, j'ai vu. Je me suis même légèrement inspiré de ce que tu as fait :wink:

linogaliana commented 3 years ago

In GitLab by @linogaliana on Jul 3, 2020, 07:57

C'est super ! Je n'y connais vraiment rien dans tout ce qui concerne le déploiement et j'ai hâte d'apprendre. Je suis à ta dispo (enfin, pas trop aujourd'hui : je suis déjà en WE :smiley: )

Cool ! Pas de problème on peut faire ça en début de semaine. Si tu ne veux qu'un déploiement html, ce sera assez rapide à mettre en place (je commence à avoir l'expérience).

linogaliana commented 3 years ago

In GitLab by @CTassart on Jul 3, 2020, 08:05

OK. Dès Lundi, je me tiens dispo. Merci d'avance @linogaliana

linogaliana commented 3 years ago

In GitLab by @clairelegroux on Jul 15, 2020, 18:33

Hello

la question se posait au départ car nous avons "dû" prévoir une catégorie "Shiny" sur l'intranet LS². L'idée etait donc de savoir si on renverrait sur UtilitR ou non. Au final (et ça mérite peut être une autre issue quoi que... ça a déjà été abordé plusieurs fois), assez logiquement les contributeurs UtilitR sont aussi rédacteurs de formations ou documentations, plus ou moins liées...J'ai moi aussi de gros doutes sur la capacité à absorber un contenu Shiny dans UtilitR, mais en revanche, lier vers ce que @CTassart prépare... ça a du sens ! Au même titre que lier vers la formation outils co (avec R ?) dont nous parle @linogaliana

Pour compléter : on considère que Shiny n'est pas dans la banette du réseau LS² dont la cible est l'utilisateur Standard. ça peut embêter coté DInfra, car c'est officiellement toujours du "libre service". On sait juste (la preuve) que Shiny est utilisé par certains référents...

De mon coté c'est plus cohérent car Shiny (hors ce qui peut éventuellement se développer à l'UIA par ex) reste la mise en oeuvre d'une appli "d'initiative locale" avec tous les ennuis que cela comporte en terme de maintenabilité (les mêmes que pour ces fichues macros Excel -ou Calc- dont on ne veut pas !). @AntoineDreyer dit aussi que même si la compétence pour maintenir est dispo, la maintenance est assez hardue, et qu'il faut concevoir l'appli en mode "one shot" (de là je ne comprends pas non plus qu'on se prépare une catastrophe pour dans quelques temps...)

linogaliana commented 3 years ago

In GitLab by @CTassart on Jul 16, 2020, 05:48

Je ne sais pas si la maintenance est hardue mais maintenant que je suis amené à maintenir des appli développées dans d'autres langages, cela ne me semble finalement pas si compliqué que ça...
Je me souviens de plaintes sur Appoline parce qu'elle contenait 3000 lignes de codes : aujourd'hui, je trouve que ce n'est rien du tout. De plus, une appli doit évoluer (même dans les autres langages) alors, si elle est utile (et ça semble être le cas), il faut donner les moyens de le faire.

Avoir des capacités de dev d'outils , c'est aussi permettre aux services de se faciliter la vie mais je comprends que ça pose des soucis de maintenabilité et de pérennité avec les mobilités. Je pense que c'est maintenant une question de volonté : est-ce qu'on investit pour multiplier les capacités (formations...) ?

Selon moi, il faudrait même une 2ème formation shiny "expert" pour aborder les modules, golem, le déploiement Insee... C'est à partir de la qu'on pourrait être serein sur nos capacités à bien développer et à maintenir les outils.

Mais, j'ai digressé et ne répond pas vraiment à la question.
Je voulais initialement déposé ici le résultat du shiny contest 2020. C'est l'occasion de voir differentes initiatives shiny notamment une appli permettant de créer (facilement) son logo hexagonal.

Ps : je veux bien que les "détracteurs" de Shiny me disent ce qui les rebute (pour ma culture).

linogaliana commented 3 years ago

In GitLab by @RLesur on Jul 16, 2020, 15:22

oh ben personnellement, ce que je n'aime pas dans Shiny...

Les mauvaises utilisations de Shiny :

Au niveau techno :

Le code qu'on écrit :

En conclusion, et pour finir sur une note positive, Shiny me semble vraiment utile pour des petites équipes qui n'auraient que 1 ou 2 statisticiens et aucune compétence web. Ca permet aux statisticiens de créer des sites dynamiques. Mais ça ne me semble absolument pas correspondre au contexte de l'Insee (près de 5000 agents avec des compétences web).

linogaliana commented 3 years ago

In GitLab by @ggenin on Jul 17, 2020, 06:22

Pas tout compris, mais d'accord sur le fait que développeur informatique soit un (ou plusieurs) métier.

Shiny est bien adapté pour faire de la visualisation de données. J'ai des paramètres qu'on fait varier dans l'UI, qui me permet de façonner un tableau de données à partir d'une table (éventuellement traitée dans une database), et le server en fait une illustration graphique (graphique, tableau, carte...). Bien.

S'il faut faire une appli de gestion, je suis sceptique, je crains que Shiny ne soit vraiment pas fait pour ça. Il y a là un manque de communication avec les équipes idoines, notamment dans la réticence à nous donner accès aux bons outils (database, etc.).

linogaliana commented 3 years ago

In GitLab by @RLesur on Jul 17, 2020, 07:12

ah oui, tu as raison, dans le côté positif j'avais oublié le fait de se développer des petits outils à usage personnel. C'est d'ailleurs la seule façon dont j'ai pu l'utiliser.

linogaliana commented 3 years ago

In GitLab by @ggenin on Jul 17, 2020, 07:35

Pas forcément à usage personnel. Ce projet https://sebastianwolf.shinyapps.io/Corona-Shiny/ montre au monde entier qui le voudrait, des données publiques. Simplement de la data-visualisation.

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Jul 17, 2020, 09:17

Merci à tous pour la discussion. Il me semble que nous parvenons à deux conclusions: 1/ la doc UtilitR n'aborde pas Shiny à ce stade; 2/ il faut qu'on décide si on veut que le site UtilitR propose des supports sur Shiny (indépendamment de notre documentation).

Je ferme l'issue car j'ai l'impression qu'on a répondu à la question. N'hésitez pas à la rouvrir si vous n'êtes pas d'accord.

linogaliana commented 3 years ago

In GitLab by @CTassart on Nov 26, 2020, 21:17

Comme convenu, voici les supports de la formation RShiny que j'ai adapté :

URL de déploiement :

format url Etat
Bookdown de la formation https://ctassart.gitlab.io/formation-rshiny-bookdown/ A relire
Diaporama de la formation https://ctassart.gitlab.io/formation-rshiny/formation-shiny-bookdown WIP
Notice création service RStudio du SSP Cloud https://ctassart.gitlab.io/formation-rshiny/SSPCloud_RStudio.html WIP

Pour autant, rien n'oblige à ce que ces supports soient intégrés, d'une façon ou d'une autre, à utilitR.

linogaliana commented 3 years ago

In GitLab by @linogaliana on Nov 27, 2020, 14:24

Merci @CTassart. Je vois deux possibilités :

linogaliana commented 3 years ago

In GitLab by @oliviermeslin on Nov 30, 2020, 07:43

Merci @CTassart, j'ai jeté un coup d'oeil à ton bookdown, c'est une bonne base de départ! Je pense que le mieux est que ton support soit référencé sur le site utilitR, voire déployé directement sur le site (si c'est techniquement possible, je laisse Lino confirmer).

linogaliana commented 3 years ago

In GitLab by @linogaliana on Nov 30, 2020, 09:02

Je confirme, on va ajouter une section sur www.utilitr.org pour référencer des formations ou projets associés. Ce sera naturel de référencer la formation là. En revanche, je ne suis pas sûr qu'il faille redéployer directement sur le site d'utilitR les supports, ça risque d'entraîner une maintenance lourde pour garder une version à jour par rapport aux évolutions de la formation

linogaliana commented 3 years ago

Je ferme cette issue car nous sommes, il me semble, arrivé au consensus suivant :