Upgrade to Pro — share decks privately, control downloads, hide ads and more …

駆け出しエンジニア時代に書いた クソコードをリファクタしてみた

駆け出しエンジニア時代に書いた クソコードをリファクタしてみた

4dca78303031ea5acf25b0183cd900f8?s=128

Kana Haebaru

August 25, 2021
Tweet

Transcript

  1. 駆け出しエンジニア時代に書いた クソコードをリファクタしてみた 2021/08/25LaravelMeetUpOkinawa第11回

  2. アジェンダ ⾃⼰紹介 本編 まとめ

  3. 南⾵原⾹奈(Kana) @kanasann1106 与那国島→⽯垣島→沖縄本島→東京 株式会社フォトラクションのエンジニア フロントよりのエンジニア なのでLaravelあまり書かない汗 ⾃⼰紹介

  4. ちょっとだけ の Laravel 建設Tech フルリモート可 SaaS開発

  5. 本題 駆け出しエンジニアの時に書いたコードを振り返る(初⼼にかえる) 初学者へ、こういう書き⽅はよろしくないよと伝えたい 経験者へ、過去にこういう書き⽅したなとか懐かしんでもらえたらw

  6. Modelの活⽤ 作成・更新の処理のたびに毎回この書き⽅だと⼤変

  7. Modelの活⽤ Quizクラス Quiz作成(コントローラー)

  8. メソッドめっちゃ⻑すぎ 140⾏くらいある ⾒通しが悪い ロジックも全てコントローラーに書いてしまっ ている

  9. 中⾝どうなってる? A B C A:期間単位のグラフデータ B:割合のグラフデータ C:総数のグラフデータ グラフのタイプ別にデータを取得

  10. ロジックは別ファイルに切り出す

  11. ハードコーディングはNG 定数にする 定数にする 1ってなに? 1ってなに?

  12. if⽂の乱⽴① if⽂のネストが深くなると可読性が下がる 脳内メモリに保っておくべき情報が増える

  13. if⽂の乱⽴② アーリーリターン 数珠つなぎの条件 メソッドに分ける if⽂のネストを防ぐ⽅法

  14. コントローラーのロジックは外に切り出す Modelを活⽤ ハードコーディング 定数にする if⽂の乱⽴(ネスト)   アーリーリターン、数珠つなぎ条件、メソッドに分ける まとめ

  15. ご静聴ありがとうございました! おしまい