Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
駆け出しエンジニア時代に書いた クソコードをリファクタしてみた
Search
Kana Haebaru
August 25, 2021
Programming
0
650
駆け出しエンジニア時代に書いた クソコードをリファクタしてみた
Kana Haebaru
August 25, 2021
Tweet
Share
More Decks by Kana Haebaru
See All by Kana Haebaru
バイアスを越えて、自分らしいエンジニアキャリアを見つける
kanasann1106
0
49
OpenAIとLangChainを活用して ジェンダーバイアス解消ツールを作った話
kanasann1106
0
12
Supabase × GASでサクッと作る!社内向け管理画面の作成法
kanasann1106
0
60
いいプロダクトを作りたい!の想いで動いていた結果 テックリードになっていた話
kanasann1106
0
16
フロントエンドエンジニアがLaravelでテストコードを書いてみた
kanasann1106
0
750
Other Decks in Programming
See All in Programming
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
330
Jakarta EE meets AI
ivargrimstad
0
540
Better Code Design in PHP
afilina
PRO
0
120
subpath importsで始めるモック生活
10tera
0
300
シールドクラスをはじめよう / Getting Started with Sealed Classes
mackey0225
4
640
C++でシェーダを書く
fadis
6
4.1k
LLM生成文章の精度評価自動化とプロンプトチューニングの効率化について
layerx
PRO
2
190
Remix on Hono on Cloudflare Workers
yusukebe
1
290
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
220
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
10
1.3k
ActiveSupport::Notifications supporting instrumentation of Rails apps with OpenTelemetry
ymtdzzz
1
230
Contemporary Test Cases
maaretp
0
140
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Adopting Sorbet at Scale
ufuk
73
9.1k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Facilitating Awesome Meetings
lara
50
6.1k
Writing Fast Ruby
sferik
627
61k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Become a Pro
speakerdeck
PRO
25
5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
Code Review Best Practice
trishagee
64
17k
Transcript
駆け出しエンジニア時代に書いた クソコードをリファクタしてみた 2021/08/25LaravelMeetUpOkinawa第11回
アジェンダ ⾃⼰紹介 本編 まとめ
南⾵原⾹奈(Kana) @kanasann1106 与那国島→⽯垣島→沖縄本島→東京 株式会社フォトラクションのエンジニア フロントよりのエンジニア なのでLaravelあまり書かない汗 ⾃⼰紹介
ちょっとだけ の Laravel 建設Tech フルリモート可 SaaS開発
本題 駆け出しエンジニアの時に書いたコードを振り返る(初⼼にかえる) 初学者へ、こういう書き⽅はよろしくないよと伝えたい 経験者へ、過去にこういう書き⽅したなとか懐かしんでもらえたらw
Modelの活⽤ 作成・更新の処理のたびに毎回この書き⽅だと⼤変
Modelの活⽤ Quizクラス Quiz作成(コントローラー)
メソッドめっちゃ⻑すぎ 140⾏くらいある ⾒通しが悪い ロジックも全てコントローラーに書いてしまっ ている
中⾝どうなってる? A B C A:期間単位のグラフデータ B:割合のグラフデータ C:総数のグラフデータ グラフのタイプ別にデータを取得
ロジックは別ファイルに切り出す
ハードコーディングはNG 定数にする 定数にする 1ってなに? 1ってなに?
if⽂の乱⽴① if⽂のネストが深くなると可読性が下がる 脳内メモリに保っておくべき情報が増える
if⽂の乱⽴② アーリーリターン 数珠つなぎの条件 メソッドに分ける if⽂のネストを防ぐ⽅法
コントローラーのロジックは外に切り出す Modelを活⽤ ハードコーディング 定数にする if⽂の乱⽴(ネスト) アーリーリターン、数珠つなぎ条件、メソッドに分ける まとめ
ご静聴ありがとうございました! おしまい