アウトプット「MVC」

気がつけば、

テックキャンプのカリキュラムが始まって

三週間が経過しました。

 

今回はブログ記事の執筆を通して

知識を整理しておきたいと思います。

 

さて、プログラミングと一口に言っても

実際にはクライアントサイドやサーバーサイド、インフラなど

広範な分野があるようです。

 

その中でも

僕が学習しているのは

Webアプリケーションの作成で、

Rubyという言語を使っています。

 

プログラミング言語には

ライブラリと呼ばれる拡張機能があるのですが、

やはりRubyにもライブラリが存在し、

それらはGemという呼称を持ちます。

 

Rubyには

複数のGemを使いやすいように

まとめたもの、いわゆるフレームワークがあり、

そのうちの一つである

Ruby on Rails

今まさに僕が勉強しているものに当たります。

 

そのRuby on Rails(以下Rails)で

Webアプリケーションを作っていくわけですが

WebアプリにはMVCと呼ばれる仕組みがあり、

それが理解ができていないとうまくプログラミングができません。

 

このMVCを理解できているかどうかが

初学者には一つの関門となるようなので、

本記事ではこれについて記述していきたいと思います。

 

MVCとは大まかに言うと、

ユーザーからWebアプリに送られるリクエストを

どのように処理し

どのような情報を返すか、と言う仕組みです。

 

Mはデータを扱うモデル

Vは表示画面を作るビュー

Cは処理を司るコントローラー

を指しています。

 

これだけだと

割とシンプルなようにも思えますが、

実際はより複雑なものに発展していきます。

 

と言うのは、

一つのWebアプリに対して

モデルやコントローラーは一つとは限らないのです。

 

ユーザー管理、投稿内容、コメント内容、など

それぞれにモデルやコントローラーは作成されます。

 

更に、どのユーザーが何の投稿をしたか、

と言ったことを当然管理する必要があるので

各モデルの紐付けを行わなければならず(association)、

また、コントローラーも登録情報の処理用、投稿の処理用など

入れ子構造で管理する場合があります。

 

モデルが紐づいた場合、

例えばユーザーが退会した場合には

そのユーザーが投稿した内容も同時に削除されるように

設定を行うことも必要になってきます。

 

また、ユーザー登録がある場合は

ログイン状態、ログアウト状態で

表示されるビューも分けなければなりません。

 

こうなってくると

考えることが非常に多くなってくるのですが、

三週間の勉強を終えて改めて、

Webアプリの開発に肝要となるのが

まず全体像を把握しておくことなのだ、と

痛感しています。

 

どんなアプリなのか?

どんな機能が必要なのか?

その機能を実装する時、どんなプログラムを組むのか?

何種類のデータを扱うのか?

 

これらの全体的な視野を持つことは

基礎的な知識が盤石になっていないと

なかなか実現が難しいと思います。

 

よって次回の記事では

実際のプログラミングに使用する

記述などをアウトプットしていくつもりです。

 

今日でオリンピックも閉会だそうです。

大阪のコロナ感染者数は連日1000人超(東京は5000人)。

夏祭りもなければ花火もない、

不思議な八月を過ごしています。