摘要
通常使用Shiny开发看板的方法:无论看板是由几个板块组成的,这些板块都放在一个R文件里。对于一个非常简单的教学项目或者MVP而言,的确非常方便。但当项目变得越来越复杂时,将所有展示和计算逻辑的代码放一起会使得debug的难度大大增加。为了方便debug和提升scalability,有必要使用结构化的层次结构进行开发。Shiny提供了将各个板块分离开发的解决方案,本文将详细介绍如何使用Shiny进行模块化开发。其中,也会用一小段篇幅介绍如何使用前端模板,使Shiny制作出来的看板页面更加灵活好看。
本文结构
本文将用一个非常简单的例子说明如何用Shiny进行模块化开发。首先会介绍目录结构,其次根据从整体到细节的角度介绍每个文件里关键代码的作用,最后再浅尝辄止地介绍一下下前端模板的概念以及如何在Shiny里使用。
目录结构
app/
|--modules/
|--page1.R
|--methodology
|--data_handler.R
|--www/
|--img/
|--js/
|--css/
|--template/
|--page1.html
|--global.R
|--server.R
|--ui.R
文件夹功能说明
modules:存放不同板块的脚本,一个脚本仅包含一个板块前端和后端代码。板块的含义:假设有一个NLP看板,看板由ABC三个板块组成,每个板块各占一页。看板A展示基本统计信息,看板B展示信息相关性预测,看板C展示情感分类结果
methodology:存放一些额外功能的函数,类似于普遍意义上所说