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
slog.Handlerのよくある実装ミス
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
H.Saki
September 16, 2025
Technology
830
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
slog.Handlerのよくある実装ミス
25/9/18 layerx.go #2にて発表
https://layerx.connpass.com/event/365170/
H.Saki
September 16, 2025
More Decks by H.Saki
See All by H.Saki
さきさん文庫の書籍ができるまで
sakiengineer
0
640
Goの格言”Errors are values”の本質を読み解く
sakiengineer
10
2.9k
どうしてもcgoから逃げられなくなったあなたに知ってほしいcgoの使い方入門
sakiengineer
1
3k
アプリ側のコードを書いていた人がLambdaに触れて気づいたこと
sakiengineer
0
1.8k
epollによるNetwork I/O in Goランタイム
sakiengineer
3
2.3k
スケジューラから学ぶGoランタイム 〜code reading of runtime pkg〜
sakiengineer
13
5.2k
select文の内部実装見つけました
sakiengineer
1
820
Other Decks in Technology
See All in Technology
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
460
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
230
サイバー捜査員研修(後半)
nomizone
1
770
新しい SLO が良い感じにハマっている話
z63d
5
2.1k
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
200
PLaMo 3.0 Primeの構造化出力サポート
pfn
PRO
0
190
システム思考で問題に対処する
yussak
0
150
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
NetBoxを利用した作業効率化の試み_NetDevNight4
tnoha
0
470
Issue設計から始める仕様駆動開発 / 20260731 Mizuki Hirata
shift_evolve
PRO
1
140
Goでデータパイプラインを作ろう
sansantech
PRO
0
320
Redmine 7.0 新機能・機能強化解説(OSC2026京都ダイジェスト版)
vividtone
1
190
Featured
See All Featured
The Curious Case for Waylosing
cassininazir
1
450
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
610
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
A Tale of Four Properties
chriscoyier
163
24k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
How to train your dragon (web standard)
notwaldorf
97
6.7k
The Curse of the Amulet
leimatthew05
2
14k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Transcript
slog.Handlerのよくある実装ミス さき(H.Saki) @saki_engineer LayerX.go #2 Sep 16, 2025
自己紹介 About Me l ͖͞ )4BLJ ◦ ຊۀͰ"84Λओઓʹͨ͠ ΫϥυΠϯϑϥ͞ΜΛ͍ͯ͠·͢ ◦
5XJUUFS!TBLJ@FOHJOFFS l աڈͷՌ FUDʜ ;FOO ٕज़ॻయ ݄߸ʙ ݄߸
本日のテーマ Today’s Theme TMPH ͬͺΓ࣌ߏԽϩΪϯάͰ͢Α
やってみた Just Try It DPOUFYUʹUSBDF*%͕͋Εɺ ϩάʹUSBDF*%ͷใΛ͢
やってみた Just Try It ᶄUSBDF*%͕σϑΥϧτͰग़ͯΔ! ᶃUSBDF*%ΛMPHHFS*OGPͰ͞ͳͯ͘
やってみた Just Try It 8JUIϝιουͰ ͞ΒʹΧελϚΠζͯ͠ΈΔ
やってみた Just Try It 8JUIΛݺΜͩޙ͔Β USBDF*%͕ग़ͯͳ͍ʜʜʁ
やってみた Just Try It !
slog解説 & 起こったこと What happening l TMPHΛ͏ͱߏԽϩΪϯάΛ(Pඪ४ϥΠϒϥϦͰ࣮Ͱ͖Δ ◦ \lMFWFMzl*/'0z lNTHzlJOGPNFTTBHFz^ˡ
͜͏͍͏ͷ l ࣗ࡞ϋϯυϥ TMPH)BOEMFSΠϯλʔϑΣʔε Λ࣮͢Δͱɺࣗ࡞ͷදࣔϩ δοΫΛ࣮Ͱ͖Δ ◦ ྫ DPOUFYUதͷτϨʔε*%ΛৗʹσϑΥϧτͰؚΊΔΑ͏ʹ͢Δ l TMPH-PHHFSɺ8JUIϝιουɾ8JUI(SPVQϝιουͰศརͳઃఆ͕Ͱ͖Δ ◦ ྫ MPHHFS8JUI lLFZz lWBMVFz ͱઃఆ͢ΔͱɺͦΕҎ߱\zLFZlzWBMVFl^ͱ͍͏ "UUSJCVUF͕Կ͠ͳͯ͘༩͞ΕΔ ◦ 8JUI(SPVQϝιουͷޮೳಡऀͷԋशͱ͢Δ l 8JUIϝιουͰLFZWBMVFΛՃ͢Δͱɺࣗ࡞ϋϯυϥͰઃఆͨ͠දࣔϩδ οΫ͕ޮ͔ͳ͘ͳΔʁʁʁ
原因 Root Cause 8JUIϝιουΛ͏ͱɺϋϯυϥ͕ࣗ࡞ͷͷ͔ΒTMPH+40/)BOEMFSʹσά Ϩͯ͠͠·͏ ࠷ॳΧελϜϩΨʔ 8JUIϝιουޙσάϨ͍ͯ͠Δʜʜ
デグレの原因 Root Cause σάϨͷݪҼɺࣗ࡞ϋϯυϥ5SBDF)BOEMFSʹ8JUI"UUSTϝιουɾ 8JUI(SPVQϝιουΛ࣮͍ͯ͠ͳ͍͔Β TMPH)BOEMFS ΠϯλʔϑΣʔεͷఆٛ ࣗ࡞ϋϯυϥͷఆٛ )BOEMFϝιου͔͠ͳ͍ʂ
WithAttrsメソッド・WithGroupメソッドを実装しないと? What happening without WithAttrs & WithGroup method (PͰ&NCFEEFE'JFMEΛ͏͜ͱͰɺ໌ࣔతʹϝιου࣮͠ͳͯ͘ɺຒ Ίࠐ·ΕͨϑΟʔϧυܕͷϝιουΛͦͷ··ݺͼग़͢͜ͱ͕Ͱ͖·͢
ҕৡ ɻ 5SBDF)BOEMFS8JUI"UUSTϝιουΛݺͼ ग़͢ 5SBDF)BOEMFSܕʹ8JUI"UUSTϝιου͕ ໌࣮ࣔ͞Ε͍ͯΔ͔ʁ ͞Ε͍ͯͳ͔ͬͨΒɺຒΊࠐ·Ε͍ͯΔ TMPH)BOEMFSϑΟʔϧυͷ8JUI"UUST ϝιουΛΘΓʹݺͼग़͢ &NCFEEFE'JFME ຒΊࠐΈϑΟʔϧυ
WithAttrsメソッド・WithGroupメソッドを実装しないと? What happening without WithAttrs & WithGroup method ࠓճͷ5SBDF)BOEMFSͷ߹ɺ8JUIϝιου͕ΘΕΔͱɺҕৡʹΑͬͯຒΊࠐ ·ΕͨTMPH+40/)BOEMFSͷ8JUI"UUSTϝιου͕ݺΕ·͢ɻ
TMPH+40/)BOEMFS8JUI"UUSTͷ࣮ Γ͕+40/)BOEMFSܕ
解説 Cause Summary 5SBDF)BOEMFSΛͬͨࣗ࡞ϩΨʔʹɺ8JUIϝιουΛ͏ ෦తʹ5SBDF)BOEMFS8JUI"UUSTϝιου͕ݺΕΔ 5SBDF)BOEMFS8JUI"UUSTϝιουΛ໌࣮͍ࣔͯ͠ͳ͍ͷͰɺຒΊࠐ·Ε ͨTMPH+40/)BOEMFSܕͷ8JUI"UUSTϝιου͕ݺΕΔ
ҕৡ TMPH+40/)BOEMFSܕͷ8JUI"UUSTϝιουɺΓ͕TMPH+40/)BOEMFS ܕ ݁Ռɺ5SBDF)BOEMFSΛ͍͕ͬͯͨͣTMPH+40/)BOEMFSʹσάϨ͢Δ
解決策 Fix ࣗ࡞ͷ5SBDF)BOEMFSʹ8JUI"UUSTϝιουɾ8JUI(SPVQϝιουΛ࣮͠·͠ ΐ͏ʂ
ΊͰͨ͠ΊͰͨ͠
……で終わると思ったか? Preventive Measures ʮຒΊࠐΜͰ͍Δ࣌Ͱɺ5SBDF)BOEMFS໊ٛͷ8JUI"UUSTϝιουΛ࡞ͬͯ͘ Εͳ͍ͷʁʯͱࢥ͏͔͠Ε·ͤΜ͕ɺͦΕΛΔͷܧঝͰ͋Γ(Pʹͳ͍ ػೳͰ͢ɻ (PʮܧঝΑΓҕৡʯͷࢥ ᶃ͜͏ͨ࣌͠Ͱ (Pʹܧঝͳ͍ͷͰෆՄೳʂ ᶄ5SBDF)BOEMFSΛϨγʔόʔʹͨ͠ϝι
ουΛ҉తʹ࡞ͬͯ͘Εͳ͍ͷ͔ʁ
……で終わると思ったか? Preventive Measures &NCFEEFE'JFMEʹΑΔҕৡ͕͋ΔҎ্ɺʮ໌ࣔతʹ8JUI"UUSTϝιουΛࣗ࡞ ϋϯυϥʹ࣮͢Δ͜ͱΛݴޠ༷Ͱڧ੍ͤ͞ΔʯΈ(PͰ࡞Ε·ͤΜɻ TMPH)BOEMFSΠϯλʔϑΣʔεͷ࣮ڧ੍ɺ ͜ͷΠσΟΦϜͰՄೳ͕ͩʜʜ ͜͏ͯ͠ຒΊࠐΜͩ࣌ͰΠϯλʔϑΣʔε࣮ΫϦΞ ໌ࣔతʹϝιου࣮͍ͯ͠ͳͯ͘௨ͬͯ͠·͏
こういうときの再発防止策 Preventive Measures – Static Analysis ʮݴޠ্༷ͳ͘௨Δ͕ɺજࡏతʹόάͷݪҼͱͳΔΑ͘ͳ͍ίʔυΛݕ ͢Δʯʹɺ੩తղੳ͕༗ޮͰ͢ɻ
こういうときの再発防止策 Preventive Measures – Static Analysis ʮݴޠ্༷ͳ͘௨Δ͕ɺજࡏతʹόάͷݪҼͱͳΔΑ͘ͳ͍ίʔυΛݕ ͢Δʯʹɺ੩తղੳ͕༗ޮͰ͢ɻͳͷͰ࡞Γ·ͨ͠ʂ HPWFUͰݕग़Ͱ͖ͯΔʂ
宣伝 Ads ࠓճ࡞ͬͨTMPHHFS੩తղੳπʔϧͷ࡞Γํͱɺ࡞Δ·ͰʹඞཁʹͳͬͨࣝΛ ·Δͬͱղઆ͢Δ;FOOͷຊΛຊ͜ͷޙϦϦʔε͠·͢ʂ
5IBOLZPVGPSMJTUFOJOH TBNQMFDPEFT • IUUQTHPEFWQMBZQPT[4,-K • IUUQTHPEFWQMBZQ&Q*2RQ;F" • IUUQTHJUIVCDPNTBLJFOHJOFFSJOHTMPHBOBMZUJDT ;FOOCPPL •
IUUQT[FOOEFWITBLJCPPLTHPMBOHTUBUJDBOBMZTJT