ケースタディ!

プログラミングやITに関する知識、私なりの様々な学習方法、読書感想などを綴っていきます!

複数のファイル、ライブラリ間の「依存関係」について語ります!

依存関係とは何か?

⑴定義

あるファイルやライブラリが正常に動作するために、別のファイルやライブラリによる処理と結果が必要になる状態を依存と呼び、依存している関係のことを依存関係と呼ぶ。

f:id:keisuke-studyingIT:20200803130342p:plain

ふむふむ。言い換えれば、異なるファイルやライブラリ同士の共存関係やニコイチといったところですか。

⑵依存関係から生じる問題とは?

仮に、とあるライブラリAがあり、そのライブラリAの処理を利用して動作するライブラリBがあるとき、「AとBは依存関係にある」と言えます。

しかし、AまたはBのどちらかのバージョンが更新されると、お互いの共存関係が崩れてしまい、動作上で不具合を起こしてしまう場合がございます。

この解決策には、いずれかのバージョンを上げすぎないようにしたり、一方の更新に伴ってもう一方のライブラリのバージョンも更新するという方法もございます。つまりどちらか、または両方のライブラリに調整を加えて、できる限り共存性を保とうと言う訳です。 

「しかし、この例ではたった2つのライブラリだけが関与しておりますが、実際はもっと大量のライブラリ同士が複雑に関わり合っているため、依存関係の管理を人が行おうとするとほぼ確実に依存関係の問題が生じます!

⑶複数のファイル、ライブラリから生じる依存関係の問題の解決策

前述した通り、この状態になるともう人の手には追えません

そこでこの依存関係の問題を回避・解決するため大抵の場合、ツールが用意されています。

例えばパッケージ管理と呼ばれる、パッケージやパッケージが持つライブラリなどの依存関係を考慮してインストールやバージョンアップを行う管理する方法があります。

ここで言うパッケージとは、プログラムや処理をひとまとめにしたもののことです。

例えば1つのパッケージを利用したい場合、そのパッケージと依存関係にあるパッケージも合わせてインストールしてくれると言う素晴らしい機能があると言うことです。

大変便利な機能ですね。の機能のおかげで我々はファイル同士の依存関係をほとんど考慮せずに大量のファイルやライブラリを扱える訳です!

 

少し短めの記事となりましたが、今後はこう言った「一つの概念や用語だけに的を絞った記事」も私自身の備忘録も兼ねて、投稿していくことと致します。