【プログラミング学習】フレームワークって何?
こんにちは、リサです。
フレームワークって何?という疑問に答えます。
これからプログラミング学習を始めるという方が、イメージできるように簡潔に説明します。
プログラミング学習者という同じ立場から説明するので、共感しやすいかなと思い記事にすることにしました。
フレームワークは開発のカギ
フレームワークは開発のカギです。
開発で一番コアな部分を握っているように感じるからです。
フレームワークがよくわかっていないうちは、
「言語の勉強終わったけど、全然開発できる気がしない。」と思うはずです。
私もつい最近までそうでした。
フレームワークの勉強がある程度進むまでは...。
プログラミング学習のロードマップとかで調べると、各ステップがそれなりにわかりやすく紹介してありますよね。
ただ、フレームワークについてはどれもいまいち理解できませんでした。
というか、イメージできないというか。
調べてみると、
「大きな枠組み」とか、
「開発によく使う機能をまとめたもの」とか、
「難しいことはわからなくても、使えばうまく作れる道具」
、と説明されています。
これで理解できるならいいです。
理解できたなら、この記事はもう読まなくてもいいでしょう。
でも実際この説明でわかりますか?
イメージできますか?
「枠組み」とか、「道具」とか、いったい何のことを言っているのでしょうか?
私も、不思議でしかたがありませんでした。
ただひとつ、実際に学習し初めて、
フレームワークがないと到底開発は始められないな、と感じました。
つまり、開発のカギとなるものです。
では実際何のことなのか、実際に見ていきましょう。
フレームワークって何?
私はPythonをメインに学習しています。
なので、PythonのフレームワークであるDjangoをベースに、
フレームワークとは何かを説明します。
※色々なプログラミング言語があるのと同じように、色々なフレームワークがあります。扱う言語に準じたフレームワークが用意されていますが、イメージはどれも同じです。
まず実際に見るフレームワークはこんな感じです。↓
え?
ただのコードじゃないかって?
そうです。実際に目にするフレームワークはこういうのなんです。
Pythonをある程度学習してくると、
簡単な処理をするプログラムが書けるようになります。
例えば、Hello Worldという文字列を画面に表示するプログラムは、
print('Hello World')
これはかなり極端な例ですが、大体のプログラムはPythonだけで書けてしまします。
でも複雑な処理になってくると、プログラムを書くのが大変になり、コードが長くなってしまいます。
そこでより短いコードで、同じ処理が書けるようにしたものがフレームワークです。
Webアプリケーションを作ろうとしていたと仮定しましょう。
Webアプリは当然インターネット上にあるので、ユーザーは検索をしてそのWebアプリ(のリンク)をクリックしてアクサセするはずですよね。
たとえば、「寿司打」というタイピングアプリがあります。
ユーザーはサーチエンジン(Google, Safari, etc.)から「寿司打」と検索し、そのリンクのタイトルを見つけます。
「寿司打」というWebアプリのリンクのタイトルがずらーっと出てきました。
一番上のタイトルをクリックすると、そのWebアプリのリンクに飛びます。
では、ユーザーがリンクをクリックしたとき、
どうやってWebアプリのこの画面を表示したのでしょうか?
考えてもわからないですよね。
どんなプログラム、どんなコードを書けばいいのか見当もつかなくないですか?
私もわからないです。
こういう、
複雑すぎてどうコードを書けばいいのかもわからない処理をするのに、
フレームワークを使っていると思ってください。
その複雑な処理(中身がよくわからない処理)を書くためのコードがフレームワークです。
実際、例で挙げた処理をフレームワークを使ってどうコードを書いていたのか、軽く説明しますね。
まず、ユーザーがリンクをクリックすると、
「このリンクにアクセスしたい!」というリクエスト(要望)が管理している側(サーバー)に送られます。
※リクエストに応えるための情報やプログラムを持っているのがサーバーという認識で大丈夫です。
そしたら、サーバーはそのリクエストをプログラム側に送ります。
リクエストが自分のプログラム(Webアプリ)に届くと、
Django内にあるURL(リンク、http://って始まるやつ)を扱うファイルが、
URLをもとにやるべき処理をきめます。
あとは、その処理をやるだけです。
プログラムが実行すべきファイルを実行して、
表示すべきファイルをサーバーに返します。
このサーバーに返すことを、レスポンス(応答)と言います。
最後に、サーバーがユーザーにそのレスポンスを送り、
(ブラウザが)ファイルを表示してユーザーのリクエストに応えた、
ということになります。
実際には、もっといろいろな処理があります。
今回は一つだけ、例としてかみ砕いて解説してみました。
どうでしょう?
フレームワークが使えたら、
なんとなく開発が始められそうな気がしませんか?
<ではまた今度、 Salut!!>
Django for Beginners: Build websites with Python and Django (English Edition)
- 作者:Vincent, William S.
- 発売日: 2018/02/22
- メディア: Kindle版