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
Hiromi Hishida
January 12, 2024
Programming
22
9.1k
ベテランのバグ調査の秘訣、こっそり教えちゃいます。
PHPカンファレンス北海道2024 14:35〜のトークセッションのスライドです。
Hiromi Hishida
January 12, 2024
Tweet
Share
More Decks by Hiromi Hishida
See All by Hiromi Hishida
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
260
Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM
77web
4
120
100%出しきれないのを許すスクラムチーム運営
77web
1
110
マイクロサービスがほしいと思ったときに本当に必要だったもの〜なぜ人は共通基盤の夢を見るのか〜 / why microservice
77web
5
1.2k
モデルとはなにか / what is model?
77web
6
2.4k
たとえば、唐揚げを揚げながらPHPコードを書く技術 #phpstudy
77web
1
320
Symfony+Doctrine ORMで始める安全なモジュラモノリス
77web
2
3.8k
他人がはやく読めるコードを書く ために
77web
11
4.7k
すばやく実装するための戦略とテクニック2023年版 #prtimes_dev
77web
9
2.5k
Other Decks in Programming
See All in Programming
Balkan Ruby 2024 — How and why to run SQLite on Rails in production
fractaledmind
0
100
使ってみよう Azure AI Document Intelligence
kosmosebi
2
370
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
6
1.3k
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
180
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
200
Ruby GitHub Packages
bkuhlmann
0
650
Polars入門
daikikatsuragawa
1
190
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
910
PostmanでAPIの動作確認が楽になった話
h455h1
0
180
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
720
Goのエラースタックトレースの歴史と今後
sonatard
10
1.8k
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
4
420
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
0
25
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
Adopting Sorbet at Scale
ufuk
69
8.6k
Fireside Chat
paigeccino
22
2.6k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
15
1.6k
How to train your dragon (web standard)
notwaldorf
75
5.2k
A Modern Web Designer's Workflow
chriscoyier
689
190k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
Six Lessons from altMBA
skipperchong
22
3k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
Transcript
UI+BOVBSZ JO1)1$POGFSFODF)PLLBJEP CZ!XFC ϕςϥϯͷόάௐࠪͷൿ݃ɺͬ͜ ͦΓڭ͑ͪΌ͍·͢ɻ
w ࡳຈࢢ౦۠ੜ·Εɻߴߍ·Ͱࡳຈҭͪɻ࣮ Ոࡳຈࢢೆ۠ɻ w 1)1FSྺ w ʙϑϦʔϥϯε։ൃऀ w ࣗࣾαʔϏεاۀʹब৬ w
స৬ΛܦͯɺݱࡏʢגʣϦϯέʔδΤϯ δχΞ w #UP#UP&༧ҩྍϓϩμΫτΛ࡞͍ͬͯ· ͢ w ຊ4ZNGPOZϢʔβʔձ /BHPZBQIQ XFCʢͳͳ͏͐Ϳʣ ঁੑͷ݈߁՝αϙʔτ GFNDMF ͔͔Γ͚ͭอ݈ࢣGPS-*/&
όάௐࠪ
όάௐࠪ w ͭΒ͍ w ཧ͞Εͯͳ͍ίʔυͩͱಛʹɻ w যΔ
Ͳ͔͜ΒखΛ͚ͨΒ͍͍͔Θ͔Βͳ͍ɻ ԿΛͨ͠Β͍͍͔Θ͔Βͳ͍ɻ যΔɻ Ͳ͔͜ΒखΛ͚ͨΒ͍͍͔Θ͔͍ͬͯΔɻ ԿΛͨ͠Β͍͍͔Θ͔͍ͬͯΔɻ যΒͳ͍ɻ
Ͳ͔͜ΒखΛ͚ͨΒ͍͍͔Θ͔Βͳ͍ɻ ԿΛͨ͠Β͍͍͔Θ͔Βͳ͍ɻ যΔɻ Ͳ͔͜ΒखΛ͚ͨΒ͍͍͔Θ͔͍ͬͯΔɻ ԿΛͨ͠Β͍͍͔Θ͔͍ͬͯΔɻ যΒͳ͍ɻ
όάௐࠪͰΔ͜ͱ ୈҰใ Γ͚ ࠶ݱ मਖ਼ ϦϦʔε ใࠂ
ୈҰใ w ·ͣୈҰใʢ๊͑ࠐ·ͳ͍ʣ w ਖ਼֬ʹͯ͢ͷใΛؚΊΔඞཁͳ͍ w ʮԿ͔͕ى͖͍ͯΔʯ͜ͱΛ͑Δ w ձࣾɾνʔϜͰఆΊΒΕͨϧʔτ͕͋Εͦͷϧʔτɻͳ͚Εͱʹ͔͘ ্࢘νʔϜશମɻ
Γ͚ w 1)1ͷXFCΞϓϦέʔγϣϯ͕ಈ͘ྲྀΕͷ͏ͪɺͲ͜Ͱൃੜ͍ͯ͠Δ͔ ϒϥ β ௨৴ TFSWFS 1)1 1)1 TFSWFS
௨৴ %# ϒϥ β ˞ΠϯϑϥߏʹΑΓɺଞͷͷ͕ؒʹڬ·͍ͬͯΔ͜ͱ͕͋Δ
Γ͚ʙϒϥβʙ w ݪҼ w ϑϩϯτΤϯυͷ࣮ϛε w αʔόʔαΠυʢ"1*ʣͱϑϩϯτΤϯυͷϛεϚονʢ࣮ϛεʣ w ϒϥβࣗମͷ༷มߋ ϒϥ
β ௨৴ TFSWFS 1)1 1)1 TFSWFS ௨৴ %# ϒϥ β
Γ͚ʙϒϥβʙ w ௐํ w ϒϥβͷσϕϩούʔπʔϧɾ։ൃऀπʔϧΛݟΔ w Τϥʔ͕ग़͍ͯͳ͍͔ʁʢߏจΤϥʔʣ w OFUXPSLλϒͰఆͨ͠)551ϦΫΤετ͕Ε͍ͯΔ͔ʁ ϒϥ
β ௨৴ TFSWFS 1)1 1)1 TFSWFS ௨৴ %# ϒϥ β
Γ͚ʙ௨৴ɾTFSWFSʙ w ݪҼ w ճઢෆ௨ʢࣗͷωοτճઢো "84োͳͲʣ w αʔόʔϩʔυόϥϯαʔͷઃఆϛε ϒϥ β
௨৴ TFSWFS 1)1 1)1 TFSWFS ௨৴ %# ϒϥ β
Γ͚ʙ௨৴ɾTFSWFSʙ w ௐํ w ϒϥβͷσϕϩούʔπʔϧͰωοτϫʔΫΛݟͯ൪ͷΤϥʔ͕ग़ͯͳ͍͔ʁ w )551αʔόʔʢ"QBDIF OHJOYʣͷϩάग़͍ͯΔ͔ʁʢ௨৴͕ࢮΜͰͨΒ)551αʔόʔʹ౸ୡͰ͖ͯͳ͍͜ͱ͕͋Δʣ w ࠷ۙ)551αʔόʔͷΞοϓσʔτઃఆมߋΛͯ͠ͳ͍͔ʁ
ϒϥ β ௨৴ TFSWFS 1)1 1)1 TFSWFS ௨৴ %# ϒϥ β
Γ͚ʙ1)1ɾ%#ʙ w ݪҼ w ίʔυͷ࣮ϛε w ఆ֎ͷϦΫΤετɾ%#σʔλ w %#֎෦"1*ͷ༷มߋ ϒϥ
β ௨৴ TFSWFS 1)1 1)1 TFSWFS ௨৴ %# ϒϥ β
Γ͚ʙ1)1ɾ%#ʙ ϒϥ β ௨৴ TFSWFS 1)1 1)1 TFSWFS ௨৴ %#
ϒϥ β ϦΫΤ ετ ϧʔςΟϯά ܭࢉ ΫΤϦ Ϩεϙ ϯε w ϑϨʔϜϫʔΫͷίʔυ w ࣗͨͪͰॻ͍ͨίʔυɾΫΤϦʢڱٛͷόάʣ w %#σʔλɾϦΫΤετσʔλ
࠶ݱ w ࠶ݱͰ͖Δ͔ʁ w ϩʔΧϧڥɾεςʔδϯάڥͰγεςϜ͕ಈ͘Α͏ʹ͓ͯ͘͠ w ϩά w όά͔ͬͯΒݟ͍ͨͱࢥͬͯखΕͳͷͰࣄલʹඞཁͳϩάΛऔ͓ͬͯ ͘
࠶ݱ w ࠶ݱεΫϦϓτΛॻ͘ w ࣗಈςετ͕͋Ε࠶ݱύϥϝʔλͰόάͬͨϨεϙϯε͕ฦΔࣗಈςετ w ͳͯ͘)551Ͱୟ͍ͯόάͬͨϨεϙϯε͕ฦΔ͜ͱΛ֬ೝ͢ΔεΫϦϓ τΛॻ͘ʢDVSMͱ͔Ͱ͍͍ʣ
मਖ਼ w ϩάΛݟͯ࠶ݱͰ͖ͨ࣌ͰطʹࣗಈతʹΘ͔͍ͬͯΔ߹͋Δ w ͠Θ͔͍ͬͯͳ͔ͬͨΒ w *%&Ͱ։͍ͯܯࠂͷग़͍ͯΔ෦ w ݅ذͷڥք w
֎ʢ)551ϦΫΤετɺίϚϯυҾɺ%#σʔλʣ͔Βఆ֎ͷ͕དྷͯͳ͍͔ʁ w มʹ৭ʑͳΛೖΕͯγϛϡϨʔγϣϯ͢Δʢࣗಈςετ͋ΕࣗಈςετͰͬͯྑ ͍ʣ w ࣗͰ࣮ͨ͠ίʔυͩͱಛʹݻఆ؍೦ʹറΒΕ͕ͪͳͷͰɺதֶੜʹํఔࣜΛڭ͑Δͱ͖ʹ Α͘͏ಥવͷԯͱ͔ஹΈ͍ͨͳಥඈͳࣈΛ͑ͯೖΕͯΈΔͷ͕Φεεϝ
ϦϦʔεใࠂ w མͪண͍ͯϦϦʔε͢Δ w όάͷنͱ༰࣍ୈͰଈϦϦʔε͠ͳͯ͘Α͠ɺͱͳΔ͜ͱ͋Δ w ʢຊ൪ӡ༻தͷϓϩμΫτͷ߹ʣϢʔβʔεςʔΫϗϧμʔ͚ͷใࠂΛॻ͘ w Өڹൣғʢ࣌ؒɺରϢʔβʔʣ w
ެදͰ͖ΔൣғͰݪҼ w ϓϩμΫτνʔϜ͔Βͷิঈ
όάௐࠪͰΔ͜ͱʢ࠶ʣ ୈҰใ Γ͚ ࠶ݱ मਖ਼ ϦϦʔε ใࠂ
͓·͚ͦΕͰɺόάා͍ʢస͵ઌͷ伺ʣ w ఆ֎Λ͙ʢόάΛ͙ʣ w ม໊ɾ໊ؔʢϦʔμϒϧίʔυʣ w HFU)PHF WPJEˡʔɺͦ͏ͳΒΜͬ͠ΐʁʂ w ܕΛ͚ͭΔ
w ੩తղੳ͢Δ w ࣗಈςετ w ࠶ݱ͘͢͢͠Δ w ϩά w ಛʹαʔόʔϨεڥͰҙ
͚ͨͬ͠Ͷ👋