20150212 イタンジプログラミング講座テキスト第2回
-
Upload
yusuke-yokozawa -
Category
Engineering
-
view
323 -
download
3
Transcript of 20150212 イタンジプログラミング講座テキスト第2回
![Page 1: 20150212 イタンジプログラミング講座テキスト第2回](https://reader030.fdocuments.net/reader030/viewer/2022020307/55a9c28a1a28abad7d8b45fe/html5/thumbnails/1.jpg)
イタンジ的プログラミング講座#2 2/16
今後の予定 #1 2/9:プログラムの基礎 #2 2/16:現代のプログラム(関数とオブジェクト指向) #3 2/23:データベースとSQL #4 3/2:WEBプログラミングとフレームワーク ※毎朝8時から実施します 事前準備 h2p://jsbin.com/ にアクセスし「use your email address」を選択して会員登録しておいてください
![Page 2: 20150212 イタンジプログラミング講座テキスト第2回](https://reader030.fdocuments.net/reader030/viewer/2022020307/55a9c28a1a28abad7d8b45fe/html5/thumbnails/2.jpg)
前回の復習と事前準備
• 第一回目相当の書籍です h2p://amzn.to/1FBeXvR
• 前回の復習と宿題の回答 h2p://jsbin.com/muroga/1/edit?js,console ・h2ps://paiza.io/でアカウント登録しておいてください。
![Page 3: 20150212 イタンジプログラミング講座テキスト第2回](https://reader030.fdocuments.net/reader030/viewer/2022020307/55a9c28a1a28abad7d8b45fe/html5/thumbnails/3.jpg)
関数とは?
• プログラムの構成要素を用いて最小単位を実行する再利用を想定したプログラムの塊
• 前回最後の「なべあつプログラム」は柔軟性が無く、使いづらいプログラム、これを効率化して再利用するには?
h2p://jsbin.com/tuyoda/1/edit?js,console
• 再利用できるものは徹底的に再利用する – 車輪の再発明をしない – DRY(Don’t Repeat Yourself)
![Page 4: 20150212 イタンジプログラミング講座テキスト第2回](https://reader030.fdocuments.net/reader030/viewer/2022020307/55a9c28a1a28abad7d8b45fe/html5/thumbnails/4.jpg)
関数とは?もう一つの役割
• 再利用とは別に関数には「何かを入れて、何かを返す」という機能が求められる場合が多い
• 入れる時には引数(ひきすう)、返す時には返り値(かえりち)と言う
• 例えば「なべあつプログラム」で3の倍数でfizzを表示した回数を知りたいとしたら?
h2p://jsbin.com/kozoqe/1/edit?js,console h2ps://paiza.io/projects/GJbCJXnLds5LSRi2qTGKag
![Page 5: 20150212 イタンジプログラミング講座テキスト第2回](https://reader030.fdocuments.net/reader030/viewer/2022020307/55a9c28a1a28abad7d8b45fe/html5/thumbnails/5.jpg)
関数と変数を組み合わせる、オブジェクト指向
• 現代プログラム言語のは、殆ど全てオブジェクト指向という考え方で作られています。
• オブジェクトとは「データ(変数)」と「処理(関数)」が一塊になった存在です。専門的には「振る舞い(関数)」と「状態(変数)」と言ったりします。
• 例えば「なべあつプログラム」を考えるとこのような要素に分解されます – いくつまで数えるか?というデータ – いくつで割るか?というデータ – 何回fizzになったか?というデータ – 実際にfizzを判定して表示する、という処理
![Page 6: 20150212 イタンジプログラミング講座テキスト第2回](https://reader030.fdocuments.net/reader030/viewer/2022020307/55a9c28a1a28abad7d8b45fe/html5/thumbnails/6.jpg)
なぜオブジェクト指向にするのか?
• 例えばなべあつのパクり芸人で、5の倍数の時に「hama!」と叫ぶ「世界のはまゆう」を作るとしたらどうするか?
h2ps://paiza.io/projects/QP8mDego4GrHDpbE_HVR-‐g
• 似たような関数を書いてる・・・この時に考えられる問題は? – 割り算の処理にバグや変更があったらなべあつもはまゆうも両方を修正しなきゃならない
– 「世界ののぐ」、「世界の北野」など似たようなパクり芸人が出てきたら都度コピペするのか?
– DRY(Don’t Repeat Yourself)に反する h2ps://paiza.io/projects/kSVkQllc3BYv-‐hR3W8lhqQ
![Page 7: 20150212 イタンジプログラミング講座テキスト第2回](https://reader030.fdocuments.net/reader030/viewer/2022020307/55a9c28a1a28abad7d8b45fe/html5/thumbnails/7.jpg)
Appendix
• オブジェクト指向の資料 – オブジェクト指向をエヴァで例えると超わかりやすい h2p://blog.livedoor.jp/itsoku/archives/38228939.html – オブジェクト指向でなぜつくるのか? h2p://amzn.to/JYECHn ※オブジェクト指向については概念から理解した方が幸せになれます
![Page 8: 20150212 イタンジプログラミング講座テキスト第2回](https://reader030.fdocuments.net/reader030/viewer/2022020307/55a9c28a1a28abad7d8b45fe/html5/thumbnails/8.jpg)
まとめ
• 現代プログラムでは再利用を第一に考え意味のある塊を作る事が重要視されます。
• そのための関数、オブジェクト指向、特に抽象化です
• プログラマの美徳と格言は昔から変わりません – 車輪の再発明をしない – DRY(Don’t Repeat Yourself) – 最大美徳(怠惰・短期・傲慢)
![Page 9: 20150212 イタンジプログラミング講座テキスト第2回](https://reader030.fdocuments.net/reader030/viewer/2022020307/55a9c28a1a28abad7d8b45fe/html5/thumbnails/9.jpg)
宿題
• 引数に1を与えたらコーラ、2を与えたらコーヒーを返す関数を作る
• 引数に1を与えたらお茶、2を与えたらレッドブルを返す関数を作る
• 1を与えたらコーラ、2を与えたらコーヒーを返すオブジェクトを作る
• 初期化する際に任意の飲み物を2つ私、1を与えたら第一引数、2を与えたら第二引数を返すオブジェクトを作る
• ↑で作ったオブジェクトにレッドブルとモンスター二つの引数を渡してイタンジ自動販売機というインスタンスを作る