- アプリの中心の機能を JS で作れる
- 「画面」と「考える部分」を分けると良い、と分かる
- 関数にまとめて、ちゃんと動くか確かめられる
だい6(if)・だい7(配列)・だい12(関数)でならったことを使います。
考える部分(ロジック)を分ける
アプリの中で「いちばん大事な、考えるしくみ」のことを ロジック といいます。たとえば九九アプリなら「どの問題を出すか」「答えが合っているか」がロジックだね。
このリポジトリの九九アプリは、その出題や正誤の判定を lib/kuku.ts という、画面(ボタンや色)とは切り離した場所に書いています。画面のコードと、考えるコードを分けているんだ。
分けると、こんないいことがある。考える部分だけを取り出してかんたんに確かめられるし、ほかの場所でも使い回せる。
純関数:入れたら必ず同じ答え
九九アプリのロジックは 純関数 という形で書かれています。純関数は「同じものを入れたら、いつも同じ答えを返す」関数のこと。画面をいじったりせず、ただ計算するだけ。だから何回でも安心して試せる。
たとえば「答えが正しいか判定する関数」はこう書ける↓
function hantei(kotae, seikai) {
// 答えと正解が同じなら true
return kotae === seikai
}
コンソールで、入れる数字を変えて呼んでみよう↓
console.log(hantei(6, 6))
// → true(合っている)
console.log(hantei(5, 6))
// → false(ちがう)
画面がなくても、関数だけで「ちゃんと考えられているか」を確かめられたね。これが分けることの力。
だい28で作った自分のアプリの「中心の機能」を、関数1つに書いてみよう。
- 「問題を作る関数」か「正誤を判定する関数」のどちらか1つを、まず書く
- コンソールでいろんな入力を入れて、正しく動くか確かめる(合うとき・ちがうとき両方)
- だい28で作った画面のボタンと、その関数をつなぐ
- うまく動かない所は、その関数をそのまま AI に見せて相談する
💡 AIにたしかめてもらおう:書いた関数を見せて「この関数、変な入力(からっぽや、思っていない数)でも大丈夫?こわれない?」と聞いてみよう。自分では気づきにくい「あぶない入力」を教えてくれるよ。
- アプリの中心の、考えるしくみを何という?(→ ロジック)
- 画面と分けると何が良い?(→ かんたんに確かめられて、使い回せる)
- 純関数ってどんな関数?(→ 同じ入力なら、いつも同じ答えを返す)
つぎの回では、作ったロジックの結果を DB に「保存する」ことをやります。消えずに、ずっと残せるようになるよ。