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
refactoring
Search
mazua
August 20, 2021
Programming
1
22k
refactoring
mazua
August 20, 2021
Tweet
Share
More Decks by mazua
See All by mazua
初めてのPHP.pdf
azuma
0
22k
Other Decks in Programming
See All in Programming
Metaprogramming isn't real, it can't hurt you
okuramasafumi
0
130
個人開発は儲からない - それでも開発開始1ヶ月で300万円売り上げた方法
taishiyade
0
120
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
13
7.3k
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
190
Claude Code、ちょっとした工夫で開発体験が変わる
tigertora7571
0
190
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
320
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
310
Oxlint JS plugins
kazupon
1
1.1k
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
490
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
1
330
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
並行開発のためのコードレビュー
miyukiw
2
2.1k
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
Done Done
chrislema
186
16k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
180
Game over? The fight for quality and originality in the time of robots
wayneb77
1
130
WCS-LA-2024
lcolladotor
0
470
Thoughts on Productivity
jonyablonski
75
5.1k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
63
53k
Accessibility Awareness
sabderemane
0
69
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
210
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
140
Transcript
リファクタリング 既存のコードを安全に改善する 意図が伝わるコードの書き方
リファクタリングとは? • プログラムの振る舞い(仕様)を変えずに内部品質を向上させる作業 • 内部品質: 保守性、可読性等 • バグ修正ではない(リファクタリングとバグ修正は別で行う) • 実現方法:
カプセル化、関数化、名前の変更等
ロジックを関数化する目的とは? 1. 再利用性を高める(同じ処理を繰り返し書かない) 2. 可読性を上げる(行数を減らす) 3. 意図を明確にする(何をやっているかを読み手に伝える)
サンプルコード(リファクタリング前) ※ if文の条件が長くなると単純に読み辛く、理解しづらいという問題も つまりどういうことだってばよ?
サンプルコード(リファクタリング後) 曜日判定ロジックを 別関数に抽出 週末は割増料金になることをより明確に表現 ※ ユニットテストのしやすさも向上
関数命名のセオリー 「実装」と「意図」を分離する つまり「どうやって処理を行っているか」ではなく 「何をしているか」に着目して命名する × isDayOfWeekZeroOne() ◦ isWeekend()