是否有任何方法为R闪亮应用程序生成文档?
如果没有文档,维护一个闪亮的应用程序将变得非常困难。
似乎所有的测试/文档生态系统都是为R包结构创建的。也许我们可以模仿/扩展这种行为为一个闪亮的应用程序?
示例:
响应式表达式通常是一个R元素,它可以包含复杂的数据结构。
filtered_dat <- reactive({
dx[ NAME == input$crr & TOU == input$tou &
PlotYear == input$year. & PlotMonth == input$season]
})
为了给出更多的上下文,我在这里使用R shiny构建一个完整的web应用程序。所有的业务逻辑都包装在一个单独的包中。
对于测试Ui,我认为它很复杂(例如可以使用Rselenium),但是从roxygen2
注释生成文档只是解析。拥有这样的工具应该很容易。
这是个好问题。如何用Shiny创建一个复杂清晰的web应用程序?我相信组织一个巨大的项目是Shiny架构的弱点。
首先,Shiny只在一个html文档中创建一个web。这个文档是分层的,要开发一个庞大的应用程序,你需要正确地管理这些层。然而,这带来了一个重要的问题:如何组织代码?
在这里,有不同的方法可以做到这一点。事实上,你可以应用不同的方法,如Joe Cheng:
- https://github.com/jcheng5/shiny-partials
在我的案例中,在一个大项目中,我实现了MVC模式,但使其适应Shiny架构。
update
添加一个闪亮应用程序示例
没有一个理想的解决方案,但这基本上是我正在做的,以处理我的闪亮的应用程序,以创建一个健壮的和良好的"文档"闪亮的应用程序:
- 创建一个包,将所有的逻辑放在其中。不要担心从包中调用输入/输出结构作为参数。还要尝试在包中创建一些控件。例如,您可以拥有一些基本闪亮控件的内联版本。
一个典型的包将有这样的结构:
R
ui-view1.R
ui-view2.R
server-server1.R
server-server2.R
controls.R
- 创建一个闪亮的应用程序,以一种反映不同应用程序元素的方式构建。基本上为每个应用页面创建一个视图/服务器文件。当然,你可以把闪亮的应用程序放在inst/ui下,或者放在一个单独的项目中。
下面是一个例子:
app
ui.R
server.R
global.R
views
view1.R
view2.R
servers
server1.R
server2.R
init
global1.R
gloabl2.R