私は科学研究コード、特にバイオインフォマティクスを書いています。もちろん、科学では、結果は再現可能でなければなりません。定期的にプロジェクトに関与しておらず、インフラストラクチャを詳細に理解していない人は、正当に私のコードを見て結果を再現したいと思うかもしれません。問題は、そのような人に簡単に提供/説明できるようにコードを自己完結型にすることは、可能な再利用の量を大幅に制限するように思われることです。
いくつかの関連プロジェクトで使用されている機能を個人用ライブラリに分解するのは便利なことがよくありますが、何も持たない 5,000 行のコード (製品/リリースの品質を意図していないため、ドキュメントが不十分であることは確かです) を含むライブラリをダンプするのは便利ではありません。すぐに結果を再現したい人が直面している問題を処理します。
システムにいくつかの重要なライブラリのセットをインストールし、何も考えずにすぐに使用できるようにしておくと便利なことがよくありますが、プログラマーではなく主に科学者である人に、これらすべてをどのようにセットアップするかを説明するのは便利ではありません。これは、自分で詳細を覚えていない場合に特に当てはまります。(ただし、問題の詳細は科学とは何の関係もない技術的な細目であることに注意してください。)
研究プロジェクトのいくつかの関連する側面のすべてのコードを、多数のオプションを備えた 1 つの大きなプログラムに保持する方が、わずかなバリエーションや試したことごとに完全に自己完結型のコードを記述するよりも便利な場合がよくありますが、繰り返しになりますが、すべてをダンプするのは便利ではありません。結果を再現したいだけの人に、これについて、またはこれらすべてを説明してください。
これらの問題に対処してコードを再利用できるようにする方法はありますか?ただし、結果を再現したい人が妥当な労力でコードを実行できるようにする方法はありますか? 私の質問の中心にあるのは、あまり成熟していないコードの再利用可能なライブラリを作成する可能性であることに注意してください。