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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
18
おさえておきたい!LLM アプリケーション開発の基礎とLangChain/LangGraph の概要解説
kanasann1106
0
12
開発以外の業務も、Cursor で効率化できる?
kanasann1106
0
93
生成AI活用機能のプロンプト設計と開発の裏側
kanasann1106
0
290
バイアスを越えて、自分らしいエンジニアキャリアを見つける
kanasann1106
0
170
OpenAIとLangChainを活用して ジェンダーバイアス解消ツールを作った話
kanasann1106
0
39
Supabase × GASでサクッと作る!社内向け管理画面の作成法
kanasann1106
0
710
いいプロダクトを作りたい!の想いで動いていた結果 テックリードになっていた話
kanasann1106
0
90
フロントエンドエンジニアがLaravelでテストコードを書いてみた
kanasann1106
0
840
Other Decks in Programming
See All in Programming
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.6k
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
130
nilとは何か 〜interfaceの構造とnil!=nilから理解する〜
kuro_kurorrr
3
1.9k
Ruby and LLM Ecosystem 2nd
koic
1
660
How to stabilize UI tests using XCTest
akkeylab
0
120
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
430
技術検証結果の整理と解析をAIに任せよう!
keisukeikeda
0
120
ふつうのRubyist、ちいさなデバイス、大きな一年 / Ordinary Rubyists, Tiny Devices, Big Year
chobishiba
1
430
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
260
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
5
950
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
140
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
450
Featured
See All Featured
Design in an AI World
tapps
0
170
Navigating Weather and Climate Data
rabernat
0
140
Building Adaptive Systems
keathley
44
3k
Ethics towards AI in product and experience design
skipperchong
2
220
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
87
Abbi's Birthday
coloredviolet
2
5.3k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
140
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
190
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
190
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
200
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
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⽂の乱⽴(ネスト) アーリーリターン、数珠つなぎ条件、メソッドに分ける まとめ
ご静聴ありがとうございました! おしまい