最近、私はいくつかの非常によく似たShinyアプリケーションをさまざまなクライアント向けに作成し、shinyapps.ioでそれらをホストしています。さまざまなバージョンのShinyアプリケーションを維持するためのワークフロー
各アプリのタイトル、データ、ブランドの違いなどがありますが、それ以外のコードは非常に似ています。
これらのアプリのメンテナンスに問題があります。バグを見つけて修正するときは、現在5つの異なるアプリを使い、毎回変更を加えなければなりません。
誰もこれを処理する方法に関する良い提案はありますか? Gitブランチ? 1つのアプリを持ち、異なるデータをアップロードするのが最善の解決策であることはわかっていますが、残念ながらそれは不可能です。
私はshinyapps.ioを使い続けたいと思っていますが、私のワークフローをより良くするには、他の場所にアプリをホストすることができます。私はコメントに書いたように
もしそれらが同じルーチンを共有している場合は、それらのルーチンをパッケージに束ねてそこから共有ルーチンを維持することができます –
光沢のあるモジュールのようなサウンドがここで役立ちます:https://shiny.rstudio.com/articles/modules.html 。コードを何回か使用しているように見えますが、反応関数を光沢のある外に定義してそこで更新し、関連するアプリで 'callModule()'を使って呼び出すことができます。私はここで最小の例を書きました:https://stackoverflow.com/questions/43976128/create-a-reactive-function-outside-the-shiny-app/43976516#43976516。 – BigDataScientist
Git分岐が役立つかもしれません。共通の機能を備えたセントラルブランチを持つことができ、各アプリごとに分岐することができます。一般的なバグ修正は 'master'で起こり、他のブランチはそれに同期できます。 –