めっちゃ時間かかってたIssueが終わったので振り返り

めっちゃ時間かかってたIssueがやっと終わった。

思ったより、時間かかったので、なんでこんなに時間かかったのかを振り返る。

振り返り

時間かかったと思われる要因、適当にあげてみる

  • 欲しい配列の構造を作るのがむずかった(配列操作力弱すぎ)

    • まず欲しいデータの構造を決めるのがむずい
    • 決めたとして、どうやって引っ張ってくるかが考えるのがむずい
    • やってる途中で、この要素いらないんじゃない?この要素必要なんじゃない?ってのが出てきて、むずい
    • 引っ張ってくるデータの関連性とか考慮しないといけなくなると難しくなる印象
  • データを引っ張ってくるときに、クエリビルダ を使えばいいのか、Eloquentを使えばいいのか迷った

  • どちらを使うにせよ、使い方をちゃんとわかっておらず、ドキュメントみながらで、時間かかった

    • ちゃんとわかっていないって言ってるのは、準備されてるメソッドの使い方とか、このメソッドを使うときの引数やreturnがどんな感じになってるのか、etc....
    • なので、ドキュメント見ればいいだけなんだけど、なんというかドキュメントを読み解くのに時間がかかったってのと、ドキュメントに書いてるサンプルコードを自分が書いてるコードに合わせて書くってのに時間がかかった
    • あと、そもそも、どういうのが準備されてるのかを探すとことか時間がかかった
  • SQL弱い

    • joinとかinnerjoinとか複数のテーブルの操作系
  • 過去やったことあるやつもすぐ忘れて同じこと調べすぎ問題

  • 既存コードの意図を読み取るのに時間がかかった(そもそものコード読む力弱い)

  • JSのコード読む力弱すぎた(そんなに難しいコードじゃないかもだけど、今回はJSのコードも変更に含んでて、わからなすぎて時間かかった)

改善

上記、振り返りを改善するために、ざっくり考えたこと

  • 欲しい配列の構造を作るのがむずかった(配列操作力弱すぎ)の改善

    • APIとか触るようになると、もっと理解力深まるかも。
    • 難しいと思ったコードと似てるコードをもっと読む(今作ってるアプリの違う機能のとこで、似たようなとこありそうだから読んでみるとか。慣れる)
    • 難しいと思ったコードの状況と似ているコードが必要になるシュツエーションを想像する。そして書いてみる
  • データを引っ張ってくるときに、クエリビルダ を使えばいいのか、Eloquentを使えばいいのか迷った。の改善

    • 使い分けの目安を持つ
      • Eloquentを使うときは、対象とのテーブル(モデル)が1つの場合とか、関連するデータを富豪的に取ってきたい時とか。Eloquent使う場面の方が多そう
      • クエリビルダ を使うときは、複数のテーブルからデータを取ってこないといけない、ちょっと複雑なSQLを使ってデータを取ってきたい時とか
  • どちらを使うにせよ、使い方をちゃんとわかっておらず、ドキュメントみながらで時間かかった。の改善

  • SQL弱い。の改善

    • 都度理解していくようにする
    • Laravelドキュメントのクエリービルダーのとこ中心に復習
    • 時間見つけて、SQLの本読んでみる
  • 過去やったことあるやつもすぐ忘れて同じこと調べすぎ問題。の改善

  • 既存コードの意図を読み取るのに時間がかかった(そもそものコード読む力弱い)の改善。

    • 単純に読む量少ない問題あると思うので、時間積む
    • ただ、闇雲に読むってのも微妙かもなので、効率的に読むポイントとかあれば抑えたい(模索中)
  • JSのコード読む力弱すぎた(そんなに難しいコードじゃないかもだけど、JSのコードも変更に含んでて、わからなすぎて時間かかった)の改善。

    • 改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用までって本を買ったので、基礎から勉強する

感想

ちょっとづつ進歩してる感じもあるけど、もっとサクサクコードかけるようになりたい。頑張ろ。