? ? ? 今天來講講我最喜歡的一個網(wǎng)頁框架——shiny击孩。
? ? ? 大約在6年前,使用R語言有一定經(jīng)驗(yàn)的我,接觸了shiny——這個網(wǎng)頁開發(fā)工具迹炼。然后義無反顧的走上了用R語言進(jìn)行開發(fā)的道路:寫網(wǎng)頁删窒, 寫接口——這些原本應(yīng)該是java(最起碼也是python和js)干的活裂垦,我用R語言在玩,并且樂此不彼肌索。
? ? ? 但是3年后蕉拢,我毅然決然的放棄了R,放棄了shiny。現(xiàn)在偶爾也會用R語言代替excel做報表或者拉數(shù)據(jù)晕换。但是已經(jīng)沒有當(dāng)初的熱情了午乓。
? ? shiny這個框架的確有很多優(yōu)點(diǎn):因?yàn)榍昂蠖瞬环蛛x,所以開發(fā)速度快届巩,經(jīng)常是一個作品一天搞定硅瞧;代碼只需要會R語言就行了,不需要諸如html等其他知識恕汇;還有就是代碼量少腕唧,往往一個復(fù)雜功能,幾行代碼就搞定了瘾英,適合R語言資深玩家枣接。但是這些優(yōu)點(diǎn),同時也是缺點(diǎn)缺谴。
1.前后端不分離導(dǎo)致了代碼管理上的混亂首先要繼承或者管理你的腳本但惶,需要精通R語言;其次拓展模塊或者與其他系統(tǒng)兼容湿蛔,需要改參數(shù)膀曾,改代碼。而現(xiàn)在的很多網(wǎng)頁開發(fā)阳啥,前后端分離的話添谊,只要在后端或者前端加模塊就行了,不需要重寫察迟。
2.代碼不反扒R語言的代碼會自動打包生成js斩狱。但是不會使用js的一些反扒技能:比如js混淆,懶加載之類的扎瓶。這些R都沒有所踊。
3.令牌功能缺失這個功能我百度了很久,幾乎沒有R語言玩家使用這個概荷。登錄令牌是對于系統(tǒng)開發(fā)最底層最基礎(chǔ)的需求秕岛。如果沒有登錄令牌,那你做的東西永遠(yuǎn)只能稱作網(wǎng)頁误证,而不能叫系統(tǒng)继薛,不能叫網(wǎng)站。對于js而言雷厂,登錄令牌(token)是最基礎(chǔ)最簡單的一個功能惋增。然而對于R語言叠殷,幾乎沒有這樣的例子改鲫,也沒有人會用令牌。當(dāng)然也有解決辦法,就是使用收費(fèi)版shiny(一年年費(fèi)上萬美金)像棘。
? ? ? 所以由于以上的三個缺點(diǎn)稽亏,shiny難以推廣給企業(yè)。當(dāng)然還有一些其他的缺點(diǎn)(比如R語言不分布式缕题,網(wǎng)頁訪問量太大會卡死)截歉。所以這個框架以后也只會給人寫著玩,商用基本上是死路一條烟零。
? ? 大家還用過哪些好玩的R語言框架瘪松,可以評論區(qū)留言告訴我。