Help us understand the problem. What is going on with this article?

ライブラリとフレームワークの違い

More than 1 year has passed since last update.

前書き

開発中で、ほぼすべてのプロジェクトがライブラリとフレームワークを利用しています。
ライブラリとフレームワークが区別つかない、設計時に困るケースはあると思います。
それで、ライブラリはフレームはなんにか違うのかを調べました。

ライブラリは呼ばない限り何にも実行されない 

ユーザの指示コードがなければ、ライブラリは処理を行わないです。
ライブラリ単体では処理が行わないこと。

たとえば、ログ記録、メール送信などのライブラリはユーザで初期化して、処理するメソッドを呼ばない限りは、処理は実行されません。

フレームワークは利用時に既に色々処理してくれて、後は詳細を埋めるだけ 

フレームワークは逆の世界です。

初期化から実処理、終了までの流れを管理しています。

ユーザーは穴を埋めて行けば、予想通りの動作実現してくれます。

これはソフトウェア工学において、制御の反転(Inversion of Control、IoC)と呼ばれています。

たとえば、rails、playなどのMVCフレームワークでは、ユーザは必要なrouting、view、controller、modelを登録するだけで、動くアプリになります。

終わり

プロジェクト開発時には、大体プロジェクト専用のライブラリ群を自社開発必要があり、フレームワークと混乱せずに作りましょう!

参考

wiki 制御の反転

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away