2023.09.12 システム
[プログラミング] プログラムってどうやって動いているの?
ウェブサーバ上で動くプログラムといえばPHPやPythonが有名ですね。
新人さんはじめ、あまりプログラムに詳しくないメンバーと話していると、これらプログラムがどうやって画面を表示しているのか、どうやってデータを操作したりしているかは理解されていないことが多いようです。
今回は、ウェブサーバがどうやってプログラムを動かしているかをざっくり解説してみたいと思います。
例として、「https://hogehoge.com/shikumi」というURLで何らかのシステムが動いている想定で進めます。
まずは、プログラムを動かしたときの見た目の動きを見てみましょう。
1.ブラウザで検索処理のURLを指定して実行(https://hogehoge.com/shikumi/search)
↓
2.検索結果が画面に表示される(https://hogehoge.com/shikumi/result)
見た目の動きはこうなりました。
では、中身の動きを解説します。
1.ブラウザで検索処理のURLを指定して実行(https://hogehoge.com/shikumi/search)
ブラウザでリンクやボタンを押すことで処理が開始します。
ここで、
・「search」に一致するサーバ側のプログラム(searchAction、searchController等の名前が付いたクラス)がロードされます。
・検索の処理がサーバ上で実行され、結果を「結果セット」に格納します。(form、配列等)
・結果セット格納後、「result」画面を表示します。(forward、renderといった名称のメソッドで表示先テンプレートを指定)
・resultテンプレート上に結果セットのデータを当てはめて画面を組み立てる。
・組み立てた「result画面」を呼び出し元に返す。
2.検索結果が画面に表示される(https://hogehoge.com/shikumi/result)
組み立て済みの「result画面」をHTMLとして表示する。
見た目は「ボタンを押す→結果画面が表示」というシンプルなものですが、ウェブサーバを介した動きに注目してみると
「ボタンを押す→画面指定のプログラム実行(ウェブサーバ)→戻り先画面を指定(ウェブサーバ)→結果画面が表示」
となります。
「実行結果は結果画面に表示される(実行元の画面に表示される訳ではない)」ということが、特に初心者には分かり辛いようです。
データを戻す、リターンする等の「戻す」ような内容で教えられるため、結果画面に遷移しているのに元画面に戻っていると勘違いしてしまうようです。
これは教える方も覚えておかないと、新人や初心者を余計に迷わせることになりそうです。
「画面に戻す」ではなく、「結果画面に進む」とした方がわかりやすいかもしれませんね。
それでは。