Lifeblogs

情報系の海外大学に通いながら独学でWeb制作を学ぶ女子大生の学習記録

【プログラミング学習】フレームワークって何?

f:id:lifeblogs:20200816230327p:plain

 

こんにちは、リサです。

 

フレームワークって何?という疑問に答えます。

 

これからプログラミング学習を始めるという方が、イメージできるように簡潔に説明します。

 

プログラミング学習者という同じ立場から説明するので、共感しやすいかなと思い記事にすることにしました。

 

 

 

フレームワークは開発のカギ

 

フレームワーク開発のカギです。

開発で一番コアな部分を握っているように感じるからです。

 

フレームワークがよくわかっていないうちは、
言語の勉強終わったけど、全然開発できる気がしない。」と思うはずです。

 

私もつい最近までそうでした。
フレームワークの勉強がある程度進むまでは...。

 

プログラミング学習のロードマップとかで調べると、各ステップがそれなりにわかりやすく紹介してありますよね。

 

ただ、フレームワークについてはどれもいまいち理解できませんでした。
というか、イメージできないというか。

 

調べてみると、
「大きな枠組み」とか、
「開発によく使う機能をまとめたもの」とか、
「難しいことはわからなくても、使えばうまく作れる道具」

、と説明されています。

 

これで理解できるならいいです。
理解できたなら、この記事はもう読まなくてもいいでしょう。

 

でも実際この説明でわかりますか?
イメージできますか?

 

「枠組み」とか、「道具」とか、いったい何のことを言っているのでしょうか?

私も、不思議でしかたがありませんでした。

 

ただひとつ、実際に学習し初めて、

フレームワークがないと到底開発は始められないな、と感じました。

 

 

つまり、開発のカギとなるものです。
では実際何のことなのか、実際に見ていきましょう

 

 

フレームワークって何?

 

私はPythonをメインに学習しています。


なので、PythonフレームワークであるDjangoをベースに、
フレームワークとは何かを説明します。

※色々なプログラミング言語があるのと同じように、色々なフレームワークがあります。扱う言語に準じたフレームワークが用意されていますが、イメージはどれも同じです。

 

 

まず実際に見るフレームワークはこんな感じです。↓

f:id:lifeblogs:20200818163018p:plain

 え?

 

ただのコードじゃないかって?

 

そうです。実際に目にするフレームワークはこういうのなんです。

 

Pythonをある程度学習してくると、

簡単な処理をするプログラムが書けるようになります。

 

例えば、Hello Worldという文字列を画面に表示するプログラムは、

print('Hello World')

これはかなり極端な例ですが、大体のプログラムはPythonだけで書けてしまします。

 

でも複雑な処理になってくると、プログラムを書くのが大変になり、コードが長くなってしまいます

 

そこでより短いコードで、同じ処理が書けるようにしたものがフレームワークです。

 

 

Webアプリケーションを作ろうとしていたと仮定しましょう。

 

Webアプリは当然インターネット上にあるので、ユーザーは検索をしてそのWebアプリ(のリンク)をクリックしてアクサセするはずですよね。

たとえば、「寿司打」というタイピングアプリがあります。

 

ユーザーはサーチエンジンGoogle, Safari, etc.)から「寿司打」と検索し、そのリンクのタイトルを見つけます。

 

「寿司打」というWebアプリのリンクのタイトルがずらーっと出てきました。

 

f:id:lifeblogs:20200818164848p:plain

 

一番上のタイトルをクリックすると、そのWebアプリのリンクに飛びます。

 

f:id:lifeblogs:20200818164958p:plain

 

では、ユーザーがリンクをクリックしたとき、

どうやってWebアプリのこの画面を表示したのでしょうか?

 

考えてもわからないですよね。

どんなプログラム、どんなコードを書けばいいのか見当もつかなくないですか?

 

私もわからないです。

 

こういう、

複雑すぎてどうコードを書けばいいのかもわからない処理をするのに、

フレームワークを使っていると思ってください。

 

その複雑な処理(中身がよくわからない処理)を書くためのコードフレームワークです。

 

 

実際、例で挙げた処理をフレームワークを使ってどうコードを書いていたのか、軽く説明しますね。

 

f:id:lifeblogs:20200818190626p:plain

まず、ユーザーがリンクをクリックすると、

「このリンクにアクセスしたい!」というリクエスト(要望)が管理している側(サーバー)に送られます。

※リクエストに応えるための情報やプログラムを持っているのがサーバーという認識で大丈夫です。

 

そしたら、サーバーはそのリクエストをプログラム側に送ります。

 

f:id:lifeblogs:20200818190708p:plain

 

リクエストが自分のプログラム(Webアプリ)に届くと、

Django内にあるURL(リンク、http://って始まるやつ)を扱うファイルが、

URLをもとにやるべき処理をきめます。

 

あとは、その処理をやるだけです。

f:id:lifeblogs:20200818190831p:plain

f:id:lifeblogs:20200818190853p:plain

 

プログラムが実行すべきファイルを実行して、

表示すべきファイルをサーバーに返します。

 

f:id:lifeblogs:20200818190948p:plain

 

このサーバーに返すことを、レスポンス(応答)と言います。

 

f:id:lifeblogs:20200818191135p:plain

 

最後に、サーバーがユーザーにそのレスポンスを送り、

(ブラウザが)ファイルを表示してユーザーのリクエストに応えた、

ということになります。

 

 

実際には、もっといろいろな処理があります。

今回は一つだけ、例としてかみ砕いて解説してみました。

 

 

どうでしょう?

 

フレームワークが使えたら、

なんとなく開発が始められそうな気がしませんか?

 

 

<ではまた今度、 Salut!!>

 

 

 

Python Django3超入門

Python Django3超入門

 
Djangoビギナーズブック

Djangoビギナーズブック

  • 作者:滝澤 成人
  • 発売日: 2019/12/01
  • メディア: 単行本