背景
- 多くのクローズドなJavaScriptモジュールを保有しています
- クローズドなモジュール同士で依存関係(入れ子関係)があります
- 管理の粒度もバージョン管理体制(Gitなし/Git導入済みだけどローカル管理のみ/Git導入済みだが元から借りてたレンタルサバにリモートリポジトリ置いてるetc)もバラバラです
- GitHubアカウントを持ってますがissue投げたりとかにしか使っておらず、GitHubを使った本格的な運用管理経験がありません。Git自体は数年やっているので大丈夫です。
課題
- モジュール同士に依存関係があるが、現状手作業でコピペしているためミスの可能性が高い
- 現状一応表向きの依存関係が2段までなのでまだ何とかなっているが、将来3段以上になった時に無理がくる
検討中の解決方法
- Gitを導入し、GitHubのクローズドリポジトリに全部上げる
- npmではなくGitHubからインストールする形にすることにより、クローズドなままモジュールの導入ミスの可能性を無くす
質問内容
- 制度的、技術的に可能でしょうか
- その他、見落としてるポイントや注意点があれば教えて下さい
大分前から「Git同士の入れ子」などの方法で調査したりしていたのですが、(ちょくちょく見かけるので需要はあるようですね)、
バージョン管理だけでなく導入も問題となっており、最近になってこの形の方がよりスマートじゃないかと閃いたので質問します。
ちょっと何を聞きたいのかわかりません。
「モジュール同士に依存関係」
AがBに依存しているならBはAに依存してはいけません
> 制度的、技術的に可能でしょうか
この手のご質問を見ていつも不思議に思うのが、「なぜ、まず自分で試してみないのか。」と言うことです。gitで管理できそうなら、まず自分で簡単にでも試してみる。そこから現実的に出てくる課題を聞けば、回答もつきやすいと思うのですが。
ローカルでバックアップしておけば、リポジトリの作成に失敗しても再度作れば良いだけ、なはずです。
(JavaScript特有の課題があるのかもしれませんが)
>yambejpさん
依存関係は単方向かつ循環しません。
あとあえて苦言を呈しますが、「~に依存関係がある」という言葉そのものには双方向かどうかの意味はありませんよ。
「モジュール同士」と書いたので勘違いされたかと思いますが、「モジュールに依存関係があり~」では流石にOSSのモジュールと自作モジュールの区別すらできておらず漠然としすぎていると考え、この表現になりました。
双方向に依存関係がある設計がバッドプラクティスなのは常識ですから、「(自作)モジュール同士に単方向の依存関係がある」と読み取ることを期待していたのですが。
正直、日本語読解能力が低いか、あるいは上げ足取り扱いされても仕方ないと感じます……。
@u83unlimited さん
> 正直、日本語読解能力が低いか、
「同士」は「互いにある共通の関係にある人」を指します。
https://www.weblio.jp/content/%E5%90%8C%E5%A3%AB
「AがBに依存する」は「A=依存する側」「B=依存される側」となり、同じ関係性ではありませんので、「同士」という表現は使いません。
そこで「同じ関係性であるなら、AとBがお互いに依存しているのでは?」に至るのは、論理的に正しいと私は考えます。
yambejpさんは、正しく読解していると思います。
dodox86 さんと同意見です。やってみればいいじゃないですか。やり方がわからなければわからないところを聞けばいいと思いますが、「同士」とか「入れ子」とか他人に伝わるかどうかを考えない言葉で説明されても。
npm で依存関係をどうにかしたいなら、パッケージ化しなきゃいけないと思いますが、それはできてるんですか? ここで GitHub が出てくる意味もわかりません。
>think49さん
貴方の仰ることも分かります。
私は正確さを求める余り読みにくい文章になるのも避けたかったので、バランスを考慮してこれが妥当と今も考えているだけで。
読みにくいわけですが。
> 日本語読解能力が低いか、あるいは上げ足取り扱い
そういううがった解釈をされるのであれば、私からお伝えすることは
もうなにもありません。
>dodox86さん
>Zuishinさん
試すのをサボってるのは認めるし、教えて君が嫌われるのも理解してます。
ただ表に出てこないだけで同じ課題を持つ組織・人は多いと考え、ざっくり聞きたいなと思って気軽に投稿したのですが、私が空気読めてなかったようですね……。
>Zuishinさん
それがパッケージ化は大体できてますが適切な粒度で切られてないんですよ~。だから実作業的にはそのまま行くのか、どう切るかも難題なんですよね(汗)
私の理解では、
- npmで導入できるのはnpm or GitHub or ローカルディレクトリ指定のみ
- npmはオープンオンリー
- GitHubはクローズドリポジトリ制度がある
以上により質問の解決方法を考えたのですが……。年単位での課題なので、回答来ないようならいずれ実践して上げます。
具体性が無いので回答のしようがないんじゃないですか? 適切な粒度でできてないなら適切な粒度に作り直せとしか。
回答1件
あなたの回答
tips
プレビュー