プログラミングを料理と作曲と漫画に例えてみた (1/3) | おるずラボ

おるずラボ

発想、プログラミング、デザイン・・あなたも『Creative』な力を手に入れませんか?

以前こんな記事を書きましたが・・

=> 構造的に文章を考えるメリット

これって、単にプログラムの構造を「抽象化」しているだけで
端から見たら訳分からないままなんだろうなー、と思ったので
もっと分かり易くしてみようと、トライ。

「料理」「作曲」「漫画」という
一見まったく関係のないような事にも
実はプログラミング的な要素があるんです、というお話です。

プログラミングに対するイメージが
ちょっとでも柔らかくなると嬉しいです。


【目次】

料理のレシピは「プログラム」


僕たちプログラマーは、
処理の手順をプログラミング専用の言葉を使って記述します。

例えば、ログインボタンを押された時には
まずIDとパスワードが入力されているかチェックして、
次に該当するユーザーがいるかチェックして、
問題なければメイン画面へ移動する、という一連の流れ。

これは、料理で言えば
「レシピ」を作るようなものです。

レシピというものには

・材料
・作り方

の2つが、書かれています。

例えばコロッケのレシピであれば・・

--------------------------------------------
【材料】

・ジャガイモ
・タマネギ
・肉
・小麦粉
・卵
・パン粉
・塩コショウ
(分量は省略)

--------------------------------------------
【作り方】

1)ジャガイモを茹で、皮をむいてつぶす。
2)タマネギをみじん切りにする。
3)肉を炒める。(塩コショウも)
4)すべて混ぜ、まるめる。
5)小麦粉、卵、パン粉をまぶす。
6)油で揚げる。

--------------------------------------------

・・こんな、感じ?
(作り方は某アニメソングより拝借)

材料を元に、どんな手順でやれば
望みの結果(コロッケ完成!)が得られるのか?

そのやり方を記述したのが、レシピなわけです。

「プログラム」をレシピ風に考えてみると・・


・・さて、
話をプログラミングに戻しますが。

「ログイン処理」のプログラムを書くという事は
いわば「ログイン処理のレシピ」を書く、って事なんです。

レシピ風に書くと、こんな感じでしょうか?


<ログイン処理のレシピ(プログラム)>
--------------------------------------------
【材料】

・ユーザーが入力したID
・ユーザーが入力したパスワード

--------------------------------------------
【手順】

1)IDとパスワードが入力されているかチェック。
2)IDとパスワードに該当するユーザーが存在するかチェック。
3)チェックOK!メイン画面へ移動する。

--------------------------------------------

材料は、入力されたIDとパスワード。
この材料を元に、どんな手順でやれば
望みの結果(ログイン完了!次の画面が表示される)が得られるのか?

それを作っていく行為が、プログラミングなのです。

料理のレシピは日本語で、プログラムは英語で書かれる


・・で、プログラミングが料理のレシピと違うのは
料理のレシピが日本語で書かれるのに対して
プログラミングは(基本的に)英語の、しかも
「プログラミング専用の言語」で書かれるという点。

上のログイン処理レシピを
プログラムで書くと、こんなイメージになります。



public void login (Id, Password) {
 // IDとパスワードが入力されているかチェック。
 if ( Id == "" ) {
  ErrorMessage = "IDが入力されていません。";
  return;
 }
 if ( Password = "" ) {
  ErrorMessage = "パスワードが入力されていません。";
  return;
 }

 // IDとパスワードに該当するユーザーが存在するかチェック。
 if ( checkUser(ID,Password) == False ) {
  ErrorMessage = "入力されたユーザーが存在しません。";
  return;
 }

 // チェックOK!メイン画面へ移動する。
 moveNextPage();
}



・・ちょっと、ややこしく見えるかもしれませんが
1行目の「login」というのが、レシピの名前
その後ろの括弧内にある単語(IdとPassword)が、材料です。

そして、{と
}で括られた間に手順(作り方)を記述していく。

こうして、プログラムは完成していきます。



プログラミング、それは
コンピュータに処理の手順を教えるための「レシピ」作り。



【告知】
メルマガ始めました。

VB.NET、Java、PHPなどの体験型プログラミング講座や、
自作Webサービスの開発進捗などを随時報告していきます。

=> メルマガ『武器としてのプログラミング』に登録