? ? ? 今天來講講我最喜歡的一個網(wǎng)頁框架——shiny。
? ? ? 大約在6年前,使用R語言有一定經(jīng)驗的我,接觸了shiny——這個網(wǎng)頁開發(fā)工具。然后義無反顧的走上了用R語言進行開發(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)點:因為前后端不分離,所以開發(fā)速度快,經(jīng)常是一個作品一天搞定;代碼只需要會R語言就行了,不需要諸如html等其他知識;還有就是代碼量少,往往一個復(fù)雜功能,幾行代碼就搞定了,適合R語言資深玩家。但是這些優(yōu)點,同時也是缺點。
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)然也有解決辦法,就是使用收費版shiny(一年年費上萬美金)。
? ? ? 所以由于以上的三個缺點,shiny難以推廣給企業(yè)。當(dāng)然還有一些其他的缺點(比如R語言不分布式,網(wǎng)頁訪問量太大會卡死)。所以這個框架以后也只會給人寫著玩,商用基本上是死路一條。
? ? 大家還用過哪些好玩的R語言框架,可以評論區(qū)留言告訴我。