12/21 フレームワークとライブラリの違い
イマイチ理解できていなかったのでまとめておこうかな、、、
1.フレームワーク
フレームワークはアプリケーションを開発する骨組みのようなもの。事前にアプリケーションを動かすのに必要な機能が備わっており、別途必要な機能はユーザが実装してフレームワークに組み込んで使用する。フルスクラッチ(いちから自分で)するのは面倒くさいからコレを使おうみたいな。あらかじめ枠組みとか開発フローが定義されていて、ユーザはそれに従う感じだからカチッとしたものに必要に応じてえいえいってコードを乗っけていくみたいなイメージ?
例)laravel,cakephp(php) bootstrap(css) vue.js,angular(js) rails(ruby)などなど…
2.ライブラリ
汎用的に使用するでしょ?ということであらかじめ誰かが作ってくれたプログラムの集まり。呼び出すことで一からコードを書かなくても機能を実現できるから、作業が簡略化される。楽!
分離された便利な部品みたいなイメージらしい、よく分からないけど…
例)react(js)とかなんかいっぱい
疑問?とか
これあれば極論コードなんて殆ど書かなくて良くないんじゃないの?どのwebアプリもサイトも同じような機能ばっかじゃん。なんかエラーが起きた時に中身が分からずに使ってると大変そうだったり依存性云々でぐちゃぐちゃになりそうなイメージは出来るけど…
あと他にもモジュール、プラグインって単語が出てきた。プラグインは既にある特定のソフトウェアの機能の拡張。モジュールは単体でも動くけど他の部品と組み合わせて使用する部品(機能やシステムといった方が分かりやすい気がする)
コンポーネントっていうのもあって、これはモジュールとほぼ同じだけど単体で使用できないって違いがあるみたい。
外部提供のものがライブラリ、内部で開発した部品がモジュールだって。
ただこれらの単語は厳密には違いはあっても、現場ではごちゃまぜに使われるらしい。じゃあこの時間はなんだったんですか…?
3.両者の違い
どっちも作業の効率化を目的に使われるものではあるけど、フレームワークは開発のための土台、ライブラリはプロセスを制御して特定の機能の実装をしてくれる分離した外的なクラスや関数の集合体って感じ。図書館にいっぱい本があってそのそれぞれがライブラリ、みたいな?
分かりやすかったやつの引用
『料理を作る時を想像してみましょう
必要な基本的な具材が最初から揃っているような、「パルシステムのお料理セット」のようなものがフレームワーク。
煮干しや昆布から出汁を取る手間を省いてくれる「だしの素」とか、料理を楽にしてくれる「簡単に調理できる鍋」とか、ヘルシオみたいな「ハイテク家電」がライブラリー。』
Discussion