めっちゃ時間かかってたIssueが終わったので振り返り
めっちゃ時間かかってたIssueがやっと終わった。
思ったより、時間かかったので、なんでこんなに時間かかったのかを振り返る。
振り返り
時間かかったと思われる要因、適当にあげてみる
欲しい配列の構造を作るのがむずかった(配列操作力弱すぎ)
- まず欲しいデータの構造を決めるのがむずい
- 決めたとして、どうやって引っ張ってくるかが考えるのがむずい
- やってる途中で、この要素いらないんじゃない?この要素必要なんじゃない?ってのが出てきて、むずい
- 引っ張ってくるデータの関連性とか考慮しないといけなくなると難しくなる印象
データを引っ張ってくるときに、クエリビルダ を使えばいいのか、Eloquentを使えばいいのか迷った
どちらを使うにせよ、使い方をちゃんとわかっておらず、ドキュメントみながらで、時間かかった
- ちゃんとわかっていないって言ってるのは、準備されてるメソッドの使い方とか、このメソッドを使うときの引数やreturnがどんな感じになってるのか、etc....
- なので、ドキュメント見ればいいだけなんだけど、なんというかドキュメントを読み解くのに時間がかかったってのと、ドキュメントに書いてるサンプルコードを自分が書いてるコードに合わせて書くってのに時間がかかった
- あと、そもそも、どういうのが準備されてるのかを探すとことか時間がかかった
SQL弱い
- joinとかinnerjoinとか複数のテーブルの操作系
過去やったことあるやつもすぐ忘れて同じこと調べすぎ問題
既存コードの意図を読み取るのに時間がかかった(そもそものコード読む力弱い)
JSのコード読む力弱すぎた(そんなに難しいコードじゃないかもだけど、今回はJSのコードも変更に含んでて、わからなすぎて時間かかった)
改善
上記、振り返りを改善するために、ざっくり考えたこと
欲しい配列の構造を作るのがむずかった(配列操作力弱すぎ)の改善
- APIとか触るようになると、もっと理解力深まるかも。
- 難しいと思ったコードと似てるコードをもっと読む(今作ってるアプリの違う機能のとこで、似たようなとこありそうだから読んでみるとか。慣れる)
- 難しいと思ったコードの状況と似ているコードが必要になるシュツエーションを想像する。そして書いてみる
データを引っ張ってくるときに、クエリビルダ を使えばいいのか、Eloquentを使えばいいのか迷った。の改善
どちらを使うにせよ、使い方をちゃんとわかっておらず、ドキュメントみながらで時間かかった。の改善
例えば、Laravelのドキュメントの以下のページをみることが多かった。定期的に振り返って理解定着させる
SQL弱い。の改善
- 都度理解していくようにする
- Laravelドキュメントのクエリービルダーのとこ中心に復習
- 時間見つけて、SQLの本読んでみる
過去やったことあるやつもすぐ忘れて同じこと調べすぎ問題。の改善
- 以下のメソッドをよく使ったのでメモ。忘れないようにする
- whereIn
- 指定した配列の中にカラムの値が含まれている条件をつける
- https://readouble.com/laravel/5.1/ja/queries.html
- array_pluck
- 配列から指定されたキー/値ペアのリストを取得する。ネストされてても取れる
- https://readouble.com/laravel/5.3/ja/helpers.html#method-array-pluck
- array_push
- array_push — 一つ以上の要素を配列の最後に追加する
- https://secure.php.net/manual/ja/function.array-push.php
- pluck
- 指定したキーの全コレクション値を取得する
- https://readouble.com/laravel/5.5/ja/collections.html#method-pluck
- with(Eloquent)
- Eagerローディングする
- isEmpty
- コレクションが空かどうかチェック
- https://readouble.com/laravel/5.1/ja/collections.html#method-isempty
- whereIn
- 以下のメソッドをよく使ったのでメモ。忘れないようにする
既存コードの意図を読み取るのに時間がかかった(そもそものコード読む力弱い)の改善。
- 単純に読む量少ない問題あると思うので、時間積む
- ただ、闇雲に読むってのも微妙かもなので、効率的に読むポイントとかあれば抑えたい(模索中)
JSのコード読む力弱すぎた(そんなに難しいコードじゃないかもだけど、JSのコードも変更に含んでて、わからなすぎて時間かかった)の改善。
- 改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用までって本を買ったので、基礎から勉強する
感想
ちょっとづつ進歩してる感じもあるけど、もっとサクサクコードかけるようになりたい。頑張ろ。