hrddd / poke-anagram

https://poke-anagram.vercel.app
0 stars 0 forks source link

ベース作りその2 #5

Open hrddd opened 4 years ago

hrddd commented 4 years ago

10個選んでシャッフル

やっぱり公式 https://typescript-jp.gitbook.io/deep-dive/type-system/generics#dezainpatnnajenerikku ここからおパクリ遊ばす、、、 配列型を通すのが難儀だった。要はジェネリクス、、、 typeに代入していたのがよくなかったよなあ、、、単純な配列ならtypeに突っ込むほどでもないね。使うときに指定するのも疲れない、、、

かかった時間

3時間

こちこちクリックして入れ替える

とりまハンドラ入れる。30分。
お次、選択したパネルの色を変える、ためにデータを整える。文字ごとにidがなきゃね。30分
クリックハンドラにイベント以外のデータ渡すのに、moleculesの中で関数宣言してるのが嫌になった。
カリー化する。(初めて使った可能性がある) 30分(調査) + 30分(実装)

※他の方法のがいいかもだがまあ、、、あとで!

https://qiita.com/tanakyut/items/97975e21af8c7bb4de9d

ここで画面と行き来するのがダルくなる

カリー化する。

をやっている時に、画面をみるのがダルかった。 データの流れの部分はTypeScript + テスト、で十分な予感がしてきているのだ、、、。 TSで型はつけてはいるが、所詮僕がつけたもの。自分で自分を信じられぬ、、、

この辺、、、綺麗にするところはテストで進めて、機能が実装できたぞいってとこで画面確認、が楽チンそう。 リファクタは手元だけでも発生するんだもんな、当たり前か、、、

テストを入れよう!

(一旦中断して)テスト入れる

別途チュートリアルやる、、、(テストまでが長い)

やってみた。 テストから書く。なるほどみ。入れる。

とりま

https://typescript-jp.gitbook.io/deep-dive/intro-1/jest コレ

やってわかったこと

入れて、そして実装したものがテスタビリティが低いことがわかった。 testありきで書かないとハードルが高そう。情報構造はできるだけ、シンプルなのがいいな、、、APIから取得したものを処理したくなった時に、「シンプル」に行かないとすごいめんどい。モジュールごとの範囲はできるだけ狭めておく、、、

かかった時間

30分(チュートリアル期間のぞく)

(テスト前に)責務分けをする

ui→アナグラムパズル専用 resource→使えるデータ形式を吐き出し(今コレをuiでやってる。よくない。shuffule機能もあり、一個のテストがでかくなっちゃう) 開発中なので、リファクタではあるけど、許して、、、 いや、、、こういう時に役立つ・・・?もしかして、、、 やってみる

かかった時間

1.5時間くらい?(テストを書く、シンプルなデータ構造にする。問題作成機能は残してみた)

テスト書いて既存を調整、、、

テスト書いて既存を調整その2

テスト書いて既存を調整その3

テスト書いて既存を調整その4

テスト書いて既存を調整その5

文字入れ替え、正解、、、まで一応作る。
シンプルなのはやはりいいのだろうな、、、
一個一個の機能に最低限な変更をしていく、、、と綺麗にできる感じ。次の機能を予想しながら作ると逆にうまく行かない。
職人みたいだな。
例えば、answersを配列で作っていたが、実際はnormalizeされてた方が、、、ということ、、、。 answersなんて最初は作らない方がよかった。 isCompleteなんかも、正解したものを登録した方がテストしやすいやね、、、 コレ必要ですよね、という驕りがよくないのだ、、、。

かかった時間

4時間くらい

テスト書いて既存を調整その6

selectorの調整とcomponentの調整。 reduxとcomponentはお互いにシンプルに作っておき、セレクター、コンテナーで複雑さを吸収する、、、のが良いかなあ コンテナにもロジック入れたくない、というのはやりすぎ感。(その分reduxの方にどん詰まり感が) 無駄に悩んだ。

しかし、、、カスタムhooksで非同期書いたの、、、微妙だった(読みにくい)ような、、、うーん、、、

しかし、テスト書いてから配置すると、やりやすいなあ。。。 組み込んだところで、テスト書いたアクションにバグなかったしな

かかった時間

4時間くらい

正解の状態を表示

個々の問題、全て正解を設置。 テストでselectorを書いていて、全て正解でこけてた。 問題0個の時に、正解扱いになってしまう、というやつ。 コレにさくっと気づけたのはテストならでは

かかった時間

1時間くらい