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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kana Haebaru
August 25, 2021
Programming
710
0
Share
駆け出しエンジニア時代に書いた クソコードをリファクタしてみた
Kana Haebaru
August 25, 2021
More Decks by Kana Haebaru
See All by Kana Haebaru
技術だけじゃ足りなくなった日 ~エンジニアがFDE的に越境して見えたこと~
kanasann1106
0
4
そろそろ本格的にはじめたい生成AIアプリ開発
kanasann1106
0
22
おさえておきたい!LLM アプリケーション開発の基礎とLangChain/LangGraph の概要解説
kanasann1106
0
19
開発以外の業務も、Cursor で効率化できる?
kanasann1106
0
98
生成AI活用機能のプロンプト設計と開発の裏側
kanasann1106
0
320
バイアスを越えて、自分らしいエンジニアキャリアを見つける
kanasann1106
0
180
OpenAIとLangChainを活用して ジェンダーバイアス解消ツールを作った話
kanasann1106
0
42
Supabase × GASでサクッと作る!社内向け管理画面の作成法
kanasann1106
0
840
いいプロダクトを作りたい!の想いで動いていた結果 テックリードになっていた話
kanasann1106
0
93
Other Decks in Programming
See All in Programming
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
3
590
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
6
1.1k
新規プロダクトを高速で生み出すハーネスエンジニアリング
seanchas116
3
270
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
210
GitHub Copilot CLIのいいところ
htkym
2
1k
Talking to terminals (and how they talk back) (KotlinConf 2026)
jakewharton
PRO
1
110
20260514 - build with ai 2026 - build LINE Bot with Gemini CLI
line_developers_tw
PRO
0
470
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
110
Copilot CLI の継戦能力を高める コンテキスト管理
nozomutu
1
940
AI時代だからこそ「Bloc」を採用する価値があるのかもしれない
takuroabe
0
230
AI駆動開発勉強会 広島支部 第一回勉強会 AI駆動開発概要とワークショップ
hayatoshimiu
0
360
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
270
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Facilitating Awesome Meetings
lara
57
6.9k
Design in an AI World
tapps
1
210
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
510
The Language of Interfaces
destraynor
162
26k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
830
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
65
54k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Building Applications with DynamoDB
mza
96
7k
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⽂の乱⽴(ネスト) アーリーリターン、数珠つなぎ条件、メソッドに分ける まとめ
ご静聴ありがとうございました! おしまい