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
21k
refactoring
mazua
August 20, 2021
Tweet
Share
More Decks by mazua
See All by mazua
初めてのPHP.pdf
azuma
0
21k
Other Decks in Programming
See All in Programming
TypeScript LSP の今までとこれから
quramy
0
110
JSAI2025 RecSysChallenge2024 優勝報告
unonao
1
380
What Spring Developers Should Know About Jakarta EE
ivargrimstad
1
600
rbs-traceを使ってWEARで型生成を試してみた After RubyKaigi 2025〜ZOZO、ファインディ、ピクシブ〜 / tried rbs-trace on WEAR
oyamakei
0
1.1k
OpenTelemetryで始めるベンダーフリーなobservability / Vendor-free observability starting with OpenTelemetry
seike460
PRO
0
160
SpringBootにおけるオブザーバビリティのなにか
irof
1
890
メモリリークが発生した時にpprofを使用して原因特定した話
zono33lhd
0
100
複数アプリケーションを育てていくための共通化戦略
irof
0
240
Rethinking Data Access: The New httpResource in Angular
manfredsteyer
PRO
0
220
從零到一:搭建你的第一個 Observability 平台
blueswen
0
220
事業戦略を理解してソフトウェアを設計する
masuda220
PRO
4
510
當開發遇上包裝:AI 如何讓產品從想法變成商品
clonn
0
2.6k
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
The Power of CSS Pseudo Elements
geoffreycrofte
76
5.8k
How to Ace a Technical Interview
jacobian
276
23k
Music & Morning Musume
bryan
47
6.6k
Fireside Chat
paigeccino
37
3.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
840
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Optimizing for Happiness
mojombo
378
70k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
Transcript
リファクタリング 既存のコードを安全に改善する 意図が伝わるコードの書き方
リファクタリングとは? • プログラムの振る舞い(仕様)を変えずに内部品質を向上させる作業 • 内部品質: 保守性、可読性等 • バグ修正ではない(リファクタリングとバグ修正は別で行う) • 実現方法:
カプセル化、関数化、名前の変更等
ロジックを関数化する目的とは? 1. 再利用性を高める(同じ処理を繰り返し書かない) 2. 可読性を上げる(行数を減らす) 3. 意図を明確にする(何をやっているかを読み手に伝える)
サンプルコード(リファクタリング前) ※ if文の条件が長くなると単純に読み辛く、理解しづらいという問題も つまりどういうことだってばよ?
サンプルコード(リファクタリング後) 曜日判定ロジックを 別関数に抽出 週末は割増料金になることをより明確に表現 ※ ユニットテストのしやすさも向上
関数命名のセオリー 「実装」と「意図」を分離する つまり「どうやって処理を行っているか」ではなく 「何をしているか」に着目して命名する × isDayOfWeekZeroOne() ◦ isWeekend()