求剧情
R的极客理想——高级开发篇 · 第二十一节

《R的极客理想——高级开发篇》第二十一节

本节介绍了R包开发的完整流程与一个微博应用的架构设计。在开发流程上,通过devtools包可直接加载项目目录,无需打包即可运行。

本节介绍了R包开发的完整流程与一个微博应用的架构设计。

在开发流程上,通过devtools包可直接加载项目目录,无需打包即可运行。为保证代码质量,需建立单元测试:创建以test.开头的测试文件,用test_that()定义用例,运行后若无输出则通过,出错则提示;功能多时可用auto_test()扫描源码与测试目录实现自动化测试。帮助文档方面,采用roxygen2包,在源代码注释中撰写说明,通过roxygenize()生成LaTex文档,避开LaTex语法。上述加载、测试、文档生成及程序检查均可通过少量函数调用完成。开发完成后可选择发布平台:CRAN与RForge审查严格,Github无审查,适合个人发布。项目可通过git工具上传至Github,他人可用devtools从Github安装使用。整个过程依赖devtools、roxygen2、testthat三个工具包。

随后引出“每日中国天气”微博应用的问题。该应用以R为可视化引擎,同时完成爬虫、XML解析与数据处理,是多语言混编的实践。应用需实现天气数据下载与存储、定时更新、地图与天气可视化、Web展示、微博接入及用户交互等功能。若仅用PHP,可视化困难;若仅用R,其单线程同步模型无法应对Web高并发。因此按语言优势分工:R负责爬虫(RCurl包)、XML解析、数据处理与地图可视化(ggmap、mapdata、maptools配合plot()生成图片);PHP负责Web开发(YII框架)、新浪微博API接入与用户交互,由Nginx+Spawn构建运行环境,定时任务用Linux的CRON实现。两者无需直接通信,架构简单。作者主张多语言混编,各取所长,并指出掌握单一语言的程序员容易陷入视野局限。

‹ 上一章目录下一章 ›

全部 27 章