Webアプリケーションを作るための備忘録②
まずはこちらが前回の記事です。
この中で、以下のような疑問がありました。
全体像を把握しようとする中で気になったのはJavaはどこで必要になるのか?ということと、HTMLやCSSで記述されたページの裏方となるもの(機能)はどのように付加していけば良いのか?ということです。
Webアプリケーションを作るための備忘録① - 新米プログラマーの脳内メモ
これが解決したので、メモしておきます。
Webアプリケーションを作るうえで、大きく二つの開発工程(というかやるべきこと)があります。
- フロントエンド
- サーバサイド
フロントエンドとは、HTMLやCSSを用いてWebページを記述することです。
フロントエンドの開発を行うエンジニアのことをフロントエンジニアやWebデザイナーと呼ぶようです。
従来は、HTMLコーダーやマークアップエンジニアと呼ばれていたそうです。
ここら辺の言葉のニュアンスは若干の差異がありそうですが、現時点ではざっくり捉えられれば良いと考えています。
ちなみに、このフロントエンドのコードはJSPファイルに記述していくことになります。
※JSPについては下で詳しく補足します。
次にサーバサイドですが、これはフロントがユーザーから見える部分であるのに対して、裏方の役割をします。
具体的には、サーブレットクラス、Javaのクラスを用いて記述することになります。
フロントエンドとサーバサイドということで、Webアプリケーションをざっくりと捉えましたが、Webアプリケーションの全体像をその機能面からさらに詳細に捉えていこうと思います。
キーワードはMVCモデル(Model-View-Controller)です。
これは、ソフトウェアの設計モデルの一つで、Model,View,Controllerの3つに役割を分担して効率の良い開発を行う手法です。
1)Model
アプリケーションの主たる処理(計算処理など)やデータの格納などを行います。
Javaのクラスを記述していきます。
2)View
ユーザーに対して画面の表示を行います。
主にJSPファイルを記述していきます。
このJSPファイルにはJava言語を記述していくこともできるのですが、開発の規模によっては、HTMLとCSSを専門に扱うWebデザイナーやフロントエンジニアに開発を任せることが多いため、できるだけ、Javaのコードを減らした方が良いとされているそうです。
3)Controller
ユーザーからの要求を受け取り、処理の実行をモデルに依頼し、その結果の表示をビューに依頼します。
ModelとViewの仲介役のような機能を持ちます。
主にサーブレットクラスを用いて記述していきます。
このように、3つの機能に分けて開発していくと効率が良いとされているようですが、サーブレットクラスやJSPファイルのみでの開発も可能です。
ようやく全体像がつかめてきたわけですが、勉強すればするほどやらなければならないことが増えていきます。
とても一人で0から開発するのは難しそうで、それぞれの技術を専門とする人が集まって開発した方が効率が良さそうです。実際、企業での開発はほとんどの場合、そうなっていると思います。
ですが、そんな状況だからこそ、全体を理解していることに価値を見出しています。
ゼネラルなスペシャリストを目指したいです。