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
710
駆け出しエンジニア時代に書いた クソコードをリファクタしてみた
Kana Haebaru
August 25, 2021
Tweet
Share
More Decks by Kana Haebaru
See All by Kana Haebaru
そろそろ本格的にはじめたい生成AIアプリ開発
kanasann1106
0
11
おさえておきたい!LLM アプリケーション開発の基礎とLangChain/LangGraph の概要解説
kanasann1106
0
7
開発以外の業務も、Cursor で効率化できる?
kanasann1106
0
87
生成AI活用機能のプロンプト設計と開発の裏側
kanasann1106
0
270
バイアスを越えて、自分らしいエンジニアキャリアを見つける
kanasann1106
0
170
OpenAIとLangChainを活用して ジェンダーバイアス解消ツールを作った話
kanasann1106
0
34
Supabase × GASでサクッと作る!社内向け管理画面の作成法
kanasann1106
0
530
いいプロダクトを作りたい!の想いで動いていた結果 テックリードになっていた話
kanasann1106
0
87
フロントエンドエンジニアがLaravelでテストコードを書いてみた
kanasann1106
0
840
Other Decks in Programming
See All in Programming
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
320
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
1.1k
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
540
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
690
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
340
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
630
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
240
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
160
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
180
Grafana:建立系統全知視角的捷徑
blueswen
0
280
CSC307 Lecture 03
javiergs
PRO
1
470
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
310
Featured
See All Featured
Balancing Empowerment & Direction
lara
5
840
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
250
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
370
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
220
Writing Fast Ruby
sferik
630
62k
How to Ace a Technical Interview
jacobian
281
24k
Accessibility Awareness
sabderemane
0
34
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
65
35k
Site-Speed That Sticks
csswizardry
13
1k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
280
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⽂の乱⽴(ネスト) アーリーリターン、数珠つなぎ条件、メソッドに分ける まとめ
ご静聴ありがとうございました! おしまい