sw-otay / app-development-training

0 stars 0 forks source link

ikegamir-impressions #1

Open ikegamir-sw opened 1 year ago

ikegamir-sw commented 1 year ago

お疲れさまでした!ちゃんと動きそうですね:clap: ただし、正直言って実装はかなり微妙です。。ちょっとずつおべんつよしていきましょう。

指摘

コード上すぐ直せること

設計の話

結果表示のアプローチについて

これで動くは動くんですが、かなり悪手です。 ということで、別の手段も考えてみましょう。複数浮かべば浮かぶだけ。issueにどういう方針で実現するか、日本語でコメントしてください。 https://github.com/sw-otay/app-development-training/blob/4eaaea8077b9d54731640067f8deccf28bf8ac11/src/App.vue#L48-L53

太田さんがとったアプローチ

再利用性が低い

「おみくじの結果の表示は子コンポーネントに任せたいので、結果を子コンポーネントに渡してください」というケースを考えると、

  {
    id: 4,
    name: '吉',
    description:
      '吉です'
  }

を子コンポーネントに渡したいけど、今の書き方だと大幅改修が必要です。

不要な全件ループが行われている

今は5つしかないから全然大丈夫なんですが、もし結果が100万件とかある場合、毎回100万回ループすることになります。 シュッと書くと自然とスケーラブル(数字がでかくなってもちゃんと動く)になります。

プログラムに直接関係ない細かいこと

InoueTakahiro-sw commented 1 year ago

result.value = Math.floor( Math.random() * (items.length + min));

これに修正してもらってますが、これだと切り替わらない(消える)ことがある気がします。 https://github.com/sw-otay/app-development-training/commit/513dc1791981f1ddcf2fd903774bc49bbfca7f0f#diff-7a7a37b12ee1265d7e27577ec286120d2cbc0940908635e264a2be44ccb9a8a0R41

ikegamir-sw commented 1 year ago

ということは、バグってますよね。 https://github.com/sw-otay/app-development-training/blob/513dc1791981f1ddcf2fd903774bc49bbfca7f0f/src/App.vue#L41 このコードで何が起こるか説明できますか?できれば直せると思います。

あと、この課題ではそんなに重要ではないんですが、コミットメッセージは「自分がコードに対して何をしたか」を書いたほうがいいです。他人が見るものだからです。 「指摘事項修正」は最悪のコミットメッセージのひとつです。他人には指摘事項がわからないからです。

sw-otay commented 1 year ago

result.value = Math.floor( Math.random() * (items.length + min));

のバグを修正しました。 0〜1の不動小数点を生成するMath.random()に最大値をかけて最大値の数分の数値の中からランダム値を生成する、minを足すのは0〜でなく最小値〜とするためだったのですが ()の位置がおかしくなってしまっていたためバグっていました。

sw-otay commented 1 year ago

結果表示のアプローチの改善案