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

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

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

Kana Haebaru

August 25, 2021
Tweet

More Decks by Kana Haebaru

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide