• 软件
  • R shiny-server 工程化的几个问题

yihui 👍️ 那我得来一个小众点评:

首先,我个人基本不用 upcasting 这种特性,因为我认为这样会让类型变得不稳定,容易让静态分析无法直接检查出问题,只能推迟到运行时暴露。

但是!我还是果断把实现更新成了你的火星版本。原因在于,这个重构体现了纯正的函数式思想,并且让代码的 cyclomatic complexity 从 4 降到了 1。这些压倒性的优点使得类型稳定的考虑显得不再那么重要。

再次更新:使用 Bootstrap 5 的容器大小定义 + findInterval()

    nan.xiao 我没听说过这些概念,学习了。我的动机纯粹是《怦然心动的人生整理魔法》,是近藤麻理惠小姐捉住我的手敲了上面的两行代码,就像看见了三双同款袜子,就把它们叠整齐了放到同一个收纳盒中,这样只需要看最上面那双袜子,就知道这一盒袜子是什么样式的。

    zizhou 资源这种东西,往往一搜一大把,最终多是躺在浏览器里或是硬盘里吃灰。楼主若是有心,整理一份中文文档,造福一方,投给咱们统计之都。

    1. Effectively Deploying and Scaling Shiny Apps with ShinyProxy, Traefik and Docker Swarm: A tutorial for securely and effectively deploying scalable and production-grade R Shiny apps with ShinyProxy, Docker Swarm and Traefik. https://www.databentobox.com/2020/05/31/shinyproxy-with-docker-swarm/
    2. Deploying Secure and Scalable Streamlit Apps on AWS with Docker Swarm, Traefik and Keycloak. https://www.databentobox.com/2020/10/08/python-apps-with-docker/
    3. Production-Grade Container Scheduling and Management. https://github.com/kubernetes/kubernetes
    4. ShinyProxy: Open Source Enterprise Deployment for Shiny https://github.com/openanalytics/shinyproxy
    5. Docker Compose: Define and run multi-container applications with Docker https://github.com/docker/compose
    6. 在线建模分析展示平台 https://github.com/ShichenXie/dstudio
    7. Information for the Docker for Data Science Tutorial at useR!2019 https://github.com/openanalytics/useR-2019-docker-for-data-science
    8. 谭显英, 使用 ShinyProxy 部署 Shiny Apps https://github.com/shrektan/Use-ShinyProxy-To-Deploy-ShinyApps
      https://www.bilibili.com/video/BV1cU4y1T7x5/
    9. Docker 命令手册 https://www.kancloud.cn/woshigrey/docker/934967
    10. kubernetes 从入门到实践 https://www.kancloud.cn/huyipow/kubernetes/531982
    11. Orchestration 编排 https://docs.docker.com/get-started/orchestration/
    12. Deploy to Swarm https://docs.docker.com/get-started/swarm-deploy/

      Cloud2016 谢谢大佬的指导,我可能需要点时间消化您给的资源,我项目顺利运转后会整理一下文档,到时候你们帮忙审核一下,再投稿。

        plumber 开发api也可以试试( ’ - ’ * )

        16 天 后

        nan.xiao
        Hi,nanxiao
        谢谢你给我的session$reload()建议,我尝试了一下,可以解决部分问题,
        如reactive(code)相关的内容都可以恢复初始状态,但如果是renderDT、renderplot等输出的表格或者图形的形式无法恢复初始状态;我尝试使用rm(list=ls())发现当前session下没有可删除的变量。
        请教naoxiao,是否可以有其他方式解决?

        1 个月 后