Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
PhpStormで重複コードを一瞬で見つける
Yuichi Sugiyama
November 27, 2019
Technology
2
390
PhpStormで重複コードを一瞬で見つける
第144回PHP勉強会の発表内容です
Yuichi Sugiyama
November 27, 2019
Tweet
Share
More Decks by Yuichi Sugiyama
See All by Yuichi Sugiyama
20年ものの巨大プロダクトをKubernetesに移行している話 後日談/Garoon on Kubernetes after talk
oogfranz
0
150
20年ものの巨大プロダクトをKubernetesに移行している話/Garoon on Kubernetes
oogfranz
0
120
PHPアプリケーションだってモニタリングしたい / Monitoring PHP application
oogfranz
1
340
効果的な静的解析の CI導入パターンを求めて / Great static analysis with CI
oogfranz
3
2.7k
Dev-meets-Ops
oogfranz
1
690
GitHub力の低い僕でも、 OSSコントリビュートできたワケ / GitHub Power
oogfranz
1
320
静的解析の育て方 / How to make your static analysis strong
oogfranz
3
2.1k
改善失敗して学ぶ、 レガシープロダクトに立ち向かうチーム作り。
oogfranz
16
8.7k
Awesome PHP
oogfranz
1
93
Other Decks in Technology
See All in Technology
JAWS-UG 横浜 #54 資料
takakuni
0
220
イ良い日ンマを作る(USBストレージ容量偽装の手法) / USB Storage Capacity Faking Techniques
shutingrz
0
560
ECSコスト削減のブレイクアウトセッションを聴いてきた話 / joining a breakout session on reducing costs with ECS
yayoi_dd
0
140
CES_2023_FleetWise_demo.pdf
sparkgene
0
130
CSS Variable をもっと活用する / Kyoto.js 18
spring_raining
2
1.1k
Deep dive in Reserved Instance ~脳死推奨量購入からの脱却~
kzkmaeda
0
560
SSMパラメーターストアでクロススタック参照の罠を回避する
shuyakinjo
0
8k
組織に対してSREを適用するとどうなるか
kuniim
9
3.1k
re:Inventの完全招待制イベント Building a Roadmap to SaaSについて / Building a Roadmap to SaaS an invitation only event at reinvent
yayoi_dd
0
160
MarvelClient Upgrade 64bit クライアントへの自動アップグレード設定
mitsuru_katoh
0
220
立ち止まっても、寄り道しても / even if I stop, even if I take a detour
katoaz
0
1.2k
データ分析基盤の要件分析の話(202201_JEDAI)
yabooun
0
400
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
351
21k
Raft: Consensus for Rubyists
vanstee
130
5.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
226
130k
Happy Clients
brianwarren
90
5.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
6
850
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
152
13k
Building Applications with DynamoDB
mza
85
5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
29
8k
Become a Pro
speakerdeck
PRO
6
3.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
239
19k
Debugging Ruby Performance
tmm1
67
11k
Optimizing for Happiness
mojombo
365
64k
Transcript
PhpStormͰ ॏෳίʔυΛ ҰॠͰݟ͚ͭΔ Cybozu ਿࢁ༞Ұ @oogFranz
Who am I • ਿࢁ ༞Ұ @oogFranz • αΠϘζ5ΤϯδχΞ •
େاۀ͚άϧʔϓΣΞGaroon࡞ͬͯΔʢPHP 7) • ෳۀδϟζϛϡʔδγϟϯ@MASHݭָஂ
PHP ConferenceͰ·͢ʂ
ॏෳίʔυ͋Γ·ͤΜ͔ʁ • ಈ͘ίʔυ͕ίϐϖ͞Ε͍ͯΔ • ෆ۩߹͕͋ͬͨΒॏෳίʔυશͯमਖ਼͕ඞཁ • ػೳՃ͕͋ͬͨΒॏෳίʔυશͯରԠ͕ඞཁ • ίϐϖίʔυΛݟ͚ͭͯॏෳΛऔΓআ͖͍ͨ
ॏෳίʔυ͋Γ·ͤΜ͔ʁ • ಈ͘ίʔυ͕ίϐϖ͞Ε͍ͯΔ • ෆ۩߹͕͋ͬͨΒॏෳίʔυશͯमਖ਼͕ඞཁ • ػೳՃ͕͋ͬͨΒॏෳίʔυશͯରԠ͕ඞཁ • ίϐϖίʔυΛݟ͚ͭͯॏෳΛऔΓআ͖͍ͨ PhpStormͰ؆୯ʹݟ͚ͭΑ͏ʂ
Γ͔ͨ 1. ·ͣPhpStorm 2019.2ΛΠϯετʔϧ͠·͢
Γ͔ͨ 1. ·ͣPhpStorm 2019.2ΛΠϯετʔϧ͠·͢ Ҏ্Ͱ͢
DEMO https://github.com/oogFranz/duplicate-code-test
ॏෳ͕Weak WarningͰ
Diff viewerͰॏෳ۩߹Λ֬ೝ
ม໊ͷҧ͍ݕग़
໊ؔϦςϥϧͷҧ͍ݕग़ • Editor > Duplicates ͔Βཁઃఆมߋ
ΑΓෳࡶͳॏෳɺ୯७ͳॏෳΛݟ͚ͭΔ • unit ͱ͍͏୯ҐΛಈ͔͢͜ͱͰॏෳͷݟ͔ͭΔ۩߹Λมߋ • units = 2 * number
of statements + number of expressions • σϑΥϧτ45ɻׂͱదͳͳͷͰ߹Θͳ͔ͬͨΒมߋ͢Δɻ • ݴޠ͝ͱʹઃఆՄೳ
ॏෳίʔυΛશ෦ݟ͚ͭΔ • Run Inspection By NameΛ࣮ߦ • Mac ͳΒ ”⌃⌥⇧I”
ɺWinͳΒ ”Ctrl+Shift+Alt+I” • “Duplicated code fragment” Λೖྗ࣮ͯ͠ߦ