【らいぶらり】

ライブラリ とは?

💡 「車輪の再発明を防ぐ」再利用可能なコードの部品集
📌 このページのポイント
ライブラリ vs フレームワーク ライブラリ 自分のコード 制御の主導権は自分 ライブラリA ライブラリB 必要な機能を呼び出す フレームワーク フレームワーク 制御の主導権はフレームワーク 自分のコード 決められた場所に書く ライブラリ: 自分が呼ぶ フレームワーク: 呼ばれる(制御の反転)
ライブラリのイメージ
ひよこ ひよこ

ライブラリって何?

ペンギン先生 ペンギン先生

便利な機能が事前に実装されたコードの集まりだよ。例えば画像処理したいなら、ゼロから実装せずにPillowというPythonライブラリをimportするだけで画像の読み込み・加工ができる。

ひよこ ひよこ

フレームワークとの違いは?

ペンギン先生 ペンギン先生

ライブラリはあなたのコードが「必要なときに呼び出す」もの。フレームワークはあなたのコードが「呼び出される枠組み(フレーム)」の中で動く。主役の違いで「ライブラリを使う」vs「フレームワークに従って書く」という感覚の差がある。

ひよこ ひよこ

npmpipって何?

ペンギン先生 ペンギン先生

ライブラリを管理するツール(パッケージマネージャ)。「npm install axios」でaxiosというHTTPライブラリをダウンロードしてプロジェクトに追加できる。依存関係の管理もやってくれる。

ひよこ ひよこ

ライブラリのバージョンアップで動かなくなることってあるの?

ペンギン先生 ペンギン先生

あるよ。これが「依存関係地獄」と呼ばれる問題。セマンティックバージョニング(SemVer)で「メジャー.マイナー.パッチ」という規則があり、メジャーバージョンが上がると互換性が壊れる可能性がある。package.jsonやrequirements.txtでバージョンを固定して、Dependabotで安全にアップデートするのが現代の定石だよ。

ひよこ ひよこ

良いライブラリの選び方ってあるの?

ペンギン先生 ペンギン先生

GitHubのスター数・最終更新日・issue対応の速さ・ドキュメントの充実度を見るのが基本。あとダウンロード数(npmならweekly downloads)とメンテナーの人数も重要。1人のメンテナーに依存しているライブラリは「バス係数1」(その人がいなくなったら終わり)のリスクがある。left-padやevent-streamの事件のように、小さなライブラリが大問題を引き起こすこともあるから、依存関係は最小限にするのが賢明だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
ライブラリって出てきたら「特定機能が実装済みの再利用可能なコード部品集、importして使う」と思えばOK!
📖 おまけ:英語の意味
「Library」 = 図書館・書庫
💬 本(コード)が収められた「図書館(ライブラリ)」のイメージ。必要な本(関数・クラス)を取り出して使う
← 用語集にもどる