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
22k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
refactoring
mazua
August 20, 2021
More Decks by mazua
See All by mazua
初めてのPHP.pdf
azuma
0
22k
Other Decks in Programming
See All in Programming
AIの中の人になってみる
htkym
0
140
Oxlintはいいぞ(続)
yug1224
1
480
Press start. Python's next generation.
willingc
PRO
3
250
typoなんかねぇよ
raspython3
0
610
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
120
Dockerfile CMD for Node.js
grazie1999
0
140
バグを直したら useEffect が消えた
colorful12
3
760
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
2
240
引き算の組織 ― アウトカムとAIに全振りするために辞めたこと ― / Organization by Subtraction
hirokiyamamoto14
PRO
0
310
不幸な GC
chencmd
0
810
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
250
MySQLとPostgreSQLって何が違うの?
akagami
0
150
Featured
See All Featured
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
410
Color Theory Basics | Prateek | Gurzu
gurzu
0
440
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
390
エンジニアに許された特別な時間の終わり
watany
108
250k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
57k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
490
Why Our Code Smells
bkeepers
PRO
340
58k
Documentation Writing (for coders)
carmenintech
77
5.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.5k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Accessibility Awareness
sabderemane
1
180
Transcript
リファクタリング 既存のコードを安全に改善する 意図が伝わるコードの書き方
リファクタリングとは? • プログラムの振る舞い(仕様)を変えずに内部品質を向上させる作業 • 内部品質: 保守性、可読性等 • バグ修正ではない(リファクタリングとバグ修正は別で行う) • 実現方法:
カプセル化、関数化、名前の変更等
ロジックを関数化する目的とは? 1. 再利用性を高める(同じ処理を繰り返し書かない) 2. 可読性を上げる(行数を減らす) 3. 意図を明確にする(何をやっているかを読み手に伝える)
サンプルコード(リファクタリング前) ※ if文の条件が長くなると単純に読み辛く、理解しづらいという問題も つまりどういうことだってばよ?
サンプルコード(リファクタリング後) 曜日判定ロジックを 別関数に抽出 週末は割増料金になることをより明確に表現 ※ ユニットテストのしやすさも向上
関数命名のセオリー 「実装」と「意図」を分離する つまり「どうやって処理を行っているか」ではなく 「何をしているか」に着目して命名する × isDayOfWeekZeroOne() ◦ isWeekend()