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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
sosuiiii
October 19, 2023
Technology
0
34
具体例から学ぶ、循環参照の怖さとその対策
ご指摘あればお願いします。
sosuiiii
October 19, 2023
Tweet
Share
More Decks by sosuiiii
See All by sosuiiii
AmebaにおけるQAコスト改善施策〜テスト項目の整理とAutify for Mobileによる自動化
sosuiiii
0
470
Other Decks in Technology
See All in Technology
内製AIチャットボットで学んだDatadog LLM Observability活用術
mkdev10
0
130
Claude Code のコード品質がばらつくので AI に品質保証させる仕組みを作った話 / A story about building a mechanism to have AI ensure quality, because the code quality from Claude Code was inconsistent
nrslib
13
8.6k
Keycloak を使った SSO で CockroachDB にログインする / CockroachDB SSO with Keycloak
kota2and3kan
0
160
"作る"から"使われる"へ:Backstage 活用の現在地
sbtechnight
0
180
バクラク最古参プロダクトで重ねた技術投資を振り返る
ypresto
0
170
20260311 ビジネスSWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
350
生成AI活用でQAエンジニアにどのような仕事が生まれるか/Support Required of QA Engineers for Generative AI
goyoki
1
260
AI駆動AI普及活動 ~ 社内AI活用の「何から始めれば?」をAIで突破する
oracle4engineer
PRO
1
110
ReactのdangerouslySetInnerHTMLは“dangerously”だから危険 / Security.any #09 卒業したいセキュリティLT
flatt_security
0
310
楽しく学ぼう!ネットワーク入門
shotashiratori
1
460
僕、S3 シンプルって名前だけど全然シンプルじゃありません よろしくお願いします
yama3133
1
230
最強のAIエージェントを諦めたら品質が上がった話 / how quality improved after giving up on the strongest AI agent
kt2mikan
0
190
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
92
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
Accessibility Awareness
sabderemane
0
82
The SEO identity crisis: Don't let AI make you average
varn
0
420
A better future with KSS
kneath
240
18k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
270
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Darren the Foodie - Storyboard
khoart
PRO
3
2.9k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
250
Transcript
۩ମతͳ൵͔ܶΒֶͿɺ ॥ࢀরͷා͞ͱͦͷରࡦ
ࣗݾհ ໊લɿాதᰜࢤ ೖࣾɿ৽ଔͰ$"ೖࣾ ෦ॺɿλοϓϧ ɹɹɿ4PTTVJ@4XJGU
࣍ ֓ཁ ۩ମྫ ϝϞϦʹ͍ͭͯ Ϋϩʔδϟͷੑ࣭ͱαϯϓϧίʔυ σόοά ରࡦ
֓ཁ "3$ͷొʹΑͬͯɺΤϯδχΞ͕ϝϞϦΛҙࣝ͢Δ͜ͱͳ͘ͳͬͨɻ ͨͩɺ ࠒ͔Β<XFBLTFMG>Λ͍ͬͯΔΑ͏ʹ શ͕ͯ"3$ʹΑͬͯ୲อ͞Ε͍ͯΔΘ͚Ͱͳ͍ɻ ॥ࢀরʹΑͬͯͲΜͳ൵͕ܶى͜ΓಘΔͷ͔ɺ Ͳ͏ͯ͠ى͍ͬͯ͜Δͷ͔ ϝϞϦΫϩʔδϟͷੑ࣭ʹ৮Εͳ͕ΒɺཧղΛਂΊ͍͖ͯ·͠ΐ͏ʂ
࣍ ֓ཁ ۩ମྫ👈 ϝϞϦʹ͍ͭͯ Ϋϩʔδϟͷੑ࣭ͱαϯϓϧίʔυ σόοά ରࡦ
۩ମྫ λοϓϧͰɺϢʔβʔͷϓϩϑΟʔϧཝʹσʔτϓϥϯͷΧʔυ͕͋Δ
۩ମྫ λοϓϧͰɺϢʔβʔͷϓϩϑΟʔϧཝʹσʔτϓϥϯͷΧʔυ͕͋Δ ͔͜͜Β͍͍͔Λ͢Δͱɺ Ͳͷσʔτϓϥϯ͔Β͍͍͔͔͕͔ͨ͠Δ
۩ମྫ ॥ࢀরΛىͨ͜͜͠ͱͰ ͔͜͜Β͍͍͔Λ͢Δͱɺ Ͳͷσʔτϓϥϯ͔Β͍͍͔͔͕͔ͨ͠Δ
۩ମྫ ॥ࢀরΛىͨ͜͜͠ͱͰɻɻ શͯͷΧʔυ͕ ͍͍͔͞Εͯ͠·͏ ˞ϦϦʔεલʹൃݟɾमਖ਼͍ͯ͠Δ
۩ମྫ ΧϧʔηϧͰදࣔ͞ΕͨɺϢʔβʔҰཡʹͯɻɻ Ϣʔβʔ"ͷৄࡉΛ։͍ͯ Δ Ϣʔβʔ#Λ͍͍͔
۩ମྫ ΧϧʔηϧͰදࣔ͞ΕͨɺϢʔβʔҰཡʹͯɻɻ Ϣʔβʔ"ͷৄࡉΛ։͍ͯ Δ Ϣʔβʔ#Λ͍͍͔ Ϣʔβʔ"ɺ#ʹ͍͍͔͕ૹΒΕͯ͠·͏ ˞ϦϦʔεલʹൃݟɾमਖ਼͍ͯ͠Δ
Ͳ͏ͯ͠॥ࢀরͨ͠ͷ͔ 'PSNBUUFSʹΑΔࣗಈϑΥʔϚοτºώϡʔϚϯΤϥʔ PXOFSΛࢀর͍ͯ͠ΔίʔυΛফ͢ͱɺ 'PSNBUUFSʹΑͬͯఆ͕ٛʮ@ʯʹলུ͞ΕΔ
Ͳ͏ͯ͠॥ࢀরͨ͠ͷ͔ 'PSNBUUFSʹΑΔࣗಈϑΥʔϚοτºώϡʔϚϯΤϥʔ ෆҙʹPXOFS͕লུ͞Εͨͱ͜Ζʹɺ ӈͷࣸਅͷΑ͏ͳTIPXϝιουΛ࠶ར༻͢Δ ॥ࢀর͢Δ
॥ࢀরͷڪ͞ ͠લʹݴͬͨΑ͏ͳόά͕ϦϦʔε͞Ε͍ͯͨΒɻɻ ᶃϢʔβʔͷࠞཚɻ͓͍߹Θͤ૿Ճ ᶄ"1*௨৴͕Oഒʹɻαʔόෛՙͷ૿Ճ ᶅᶄͷ૿ՃʹΑΔΠϯϑϥίετͷ૿Ճ
࣍ ֓ཁ ۩ମྫ ϝϞϦʹ͍ͭͯ👈 Ϋϩʔδϟͷੑ࣭ͱαϯϓϧίʔυ σόοά ରࡦ
ϝϞϦʹ͍ͭͯ ઌ΄Ͳͷڍಈɺ ॥ࢀরʹΑͬͯϝϞϦͷղ์͕ग़དྷͳ͘ͳΔ͜ͱ͕ݪҼ ϝϞϦͷղ์ɻɻʁ ͏ͪΐͬͱϝϞϦʹ͍ͭͯਂ΅͓͖͍ͬͯͨ
ϝϞϦʹ͍ͭͯ ϝϞϦʹɺׂʹԠͯͭ͡ͷछྨ͕͋Δ ɾϓϩάϥϜྖҬɿ3&"%ͷΈɻؔఆ ɾελοΫྖҬɿϩʔΧϧม ɾ੩తྖҬɿTUBUJDάϩʔόϧม ɾώʔϓྖҬ ಈతϝϞϦ ɿNBMMPDGSFFͰಈతʹ֬อ͢Δ˞$ݴޠ ϝϞϦͷ֬อͷํɺͦΕͧΕҟͳΔ
ελοΫྖҬ ઌೖޙग़͠ํࣜͷཧɻϝιουͷϩʔΧϧมͳͲׂ͕ΓͯΒΕΔ ྫ͑ϝιου"ͷதͰϝιου#ΛݺͿ࣌ɺ ϝιου#͕ऴ͔ྃͯ͠Βϝιου"͕ऴྃ͢Δɻ ϝϞϦ্Ͱಉ͡Α͏ͳ͜ͱ͕ى͖͍ͯΔɻ GVODQBSFOU \ WBSQBSFOU DIJME
^ GVODDIJME \ WBSDIJME ^
ελοΫྖҬ GVODQBSFOU \ WBSQBSFOU DIJME ^ GVODDIJME \ WBSDIJME
^ ᶃ ᶄ ᶅ ᶆ ᶃ QBSFOU Λݺͼग़͠ɺϩʔΧϧมͷQBSFOUׂ͕ΓͯΒΕΔ ᶄ QBSFOU ͷதͷDIJME Λݺͼग़͠ɺDIJMEׂ͕ΓͯΒΕΔ ᶅ DIJME ͷॲཧ͕ऴΘΓɺDIJMEͷϝϞϦ͕ղ์͞ΕΔ ᶆ QBSFOU ͷॲཧ͕ऴΘΓɺQBSFOUͷϝϞϦ͕ղ์͞ΕΔ
੩తྖҬ ϓϩάϥϜ͕࣮ߦ͞ΕΔͱɺऴྃ͢Δ·Ͱอ࣋͞Εଓ͚ΔྖҬ ˠΞϓϦͷϥϯλΠϜதอ࣋͞ΕΔ อ࣋͞Εଓ͚Δੑ࣭ʹΑͬͯɺ4XJGUͰ γϯάϧτϯͱͯ͠TIBSFE ڞ༗ ͰσʔλΛڞ༗͢ΔΘΕํ ϝϞϦͷ֬อͱղ์ͳͷͰɺ͜ͷྖҬͰͷ॥ࢀরى͜͞ͳ͍ʁ
ಈతྖҬ ੩తྖҬͱҧ͍ɺ ΞϓϦͷϥϯλΠϜதʹϝϞϦͷ֬อͱղ์Λ܁Γฦ͢ $ݴޠͰɺNBMMPD͕ؔϝϞϦ֬อɺGSFF͕ؔϝϞϦͷղ์Λ୲͍·͢ɻ 4XJGUʹ͓͍ͯ"3$͕ϝϞϦͷ֬อͱղ์Λཧ͓ͯ͠Γɺ ։ൃऀ͕ҙࣝ͢Δ͜ͱ͋Γ·ͤΜɻ
ಈతྖҬ ͭ·Γɻɻʁ ಈతʹϝϞϦΛ֬อɾղ์͢ΔػߏͰ͕ى͖Δ ॥ࢀরʹΑͬͯ"3$ʹΑΔղ์࿙ΕΛى͜͠ɺ ϝϞϦ͕ੵΈ্͕͍ͬͯ͘ ˞"3$ͷઆ໌ׂѪ ॥ࢀরΛى͜͞ͳ͍ͨΊʹɺΫϩʔδϟͷੑ࣭Λ֬ೝ͠Α͏
࣍ ֓ཁ ۩ମྫ ϝϞϦʹ͍ͭͯ Ϋϩʔδϟͷੑ࣭ͱαϯϓϧίʔυ👈 σόοά ରࡦ
Ϋϩʔδϟͷੑ࣭ͱαϯϓϧίʔυ ॥ࢀরɺڧࢀর͕॥͢Δ͜ͱͰى͖Δɻ ˠࢀরܕಉ࢜Ͱى͜ΓಘΔɻ 4XJGUͰɺΫϩʔδϟΫϥε͕͜Εʹ֘͠ɺ ߏମ TUSVDU ͕ܕʹͳΔɻ ˠσϦήʔτ Ϋϥεؒ ΫϩʔδϟºΫϥεؒʹҙ⚠
αϯϓϧίʔυᶃ Ϋϩʔδϟ⁵Ϋϥεؒͷ॥ࢀর ݺͼग़͠ଆͷςϯϓϨ
αϯϓϧίʔυᶃ Ϋϩʔδϟ⁵Ϋϥεؒͷ॥ࢀর ݺͼग़͠ଆͷςϯϓϨ ॥ࢀর͠ͳ͍
αϯϓϧίʔυᶄ Ϋϩʔδϟ⁵Ϋϥεؒͷ॥ࢀর ݺͼग़͠ଆͷςϯϓϨ
αϯϓϧίʔυᶄ Ϋϩʔδϟ⁵Ϋϥεؒͷ॥ࢀর ݺͼग़͠ଆͷςϯϓϨ ॥ࢀর͠ͳ͍ ͷΫϩʔδϟ͕Ωϟϓνϟͨ͠ ऑࢀরͷTFMGΛҾ͖ܧ͍Ͱ͍Δ
αϯϓϧίʔυᶄ Ϋϩʔδϟ⁵Ϋϥεؒͷ॥ࢀর ݺͼग़͠ଆͷςϯϓϨ ॥ࢀর͠ͳ͍ ࢠͷΫϩʔδϟɺΦϓγϣφϧͷTFMGΛࢀর͍ͯ͠Δ ˠͷΫϩʔδϟ͕Ωϟϓνϟͨ͠ ऑࢀরͷTFMGΛҾ͖ܧ͍Ͱ͍Δ
αϯϓϧίʔυᶅ Ϋϩʔδϟ⁵Ϋϥεؒͷ॥ࢀর ݺͼग़͠ଆͷςϯϓϨ
αϯϓϧίʔυᶅ Ϋϩʔδϟ⁵Ϋϥεؒͷ॥ࢀর ݺͼग़͠ଆͷςϯϓϨ ॥ࢀর͠ͳ͍ ࢠͷΫϩʔδϟɺ ͷΫϩʔδϟ͕Ωϟϓνϟͨ͠ ڧࢀরͷTFMGΛҾ͖ܧ͍Ͱ͍ͨ
αϯϓϧίʔυᶆ Ϋϩʔδϟ⁵Ϋϥεؒͷ॥ࢀর ݺͼग़͠ଆͷςϯϓϨ
αϯϓϧίʔυᶆ Ϋϩʔδϟ⁵Ϋϥεؒͷ॥ࢀর ݺͼग़͠ଆͷςϯϓϨ ॥ࢀর͠ͳ͍ ੩తϝϞϦºಈతϝϞϦͰ॥ࢀরى͜ΓಘΔ
αϯϓϧίʔυᶇ Ϋϥε⁵Ϋϥεͷ॥ࢀর <XFBLTFMG>Ͱͳ͘ɺ<XFBLWJFX$POUSPMMFS>ͱͯ͠ҾΛऑࢀর͢Δ
࣍ ֓ཁ ۩ମྫ ϝϞϦʹ͍ͭͯ Ϋϩʔδϟͷੑ࣭ͱαϯϓϧίʔυ σόοά👈 ରࡦ
σόοά ͜Μͳ࣌॥ࢀরΛٙ͏ ᶃૢ࡞Λଓ͚͍ͯΔͱ͕͘ͳΔɺॏ͘ͳΔ ᶄϢʔβʔͷૢ࡞ͰෆՄೳͳִؒͰϩά͕ൃՐ͍ͯ͠Δ ɹଟॏʹॲཧ͕࣮ߦ͞Ε͍ͯΔ σόοάखஈ ᶃࢹ ᶄ9DPEFͷσόοάػೳ
ϝϞϦάϥϑ 9DPEFͷσόοάػೳͷͭʹɺʮϝϞϦάϥϑʯ͕͋Δ ϝϞϦΛ֬อ͍ͯ͠ΔΠϯελϯε͕ӾཡՄೳ ϝϞϦάϥϑ
ϝϞϦάϥϑ 9DPEFͷσόοάػೳͷͭʹɺʮϝϞϦάϥϑʯ͕͋Δ ϝϞϦΛ֬อ͍ͯ͠ΔΠϯελϯε͕ӾཡՄೳ Πϯελϯεͷ ʓʓ7JFX$POUSPMMFS ʓʓ7JXF.PEFM ෦Ұகݕࡧ͕Մೳ
࣍ ֓ཁ ۩ମྫ ϝϞϦʹ͍ͭͯ Ϋϩʔδϟͷੑ࣭ͱαϯϓϧίʔυ σόοά ରࡦ👈
ରࡦ ᶃςετίʔυ ᶄΫϩʔδϟͷੑ࣭ཧղ ᶅةػҙࣝ ɾϝϞϦϦʔΫͷҝʹɺςετίʔυΛॻ͘ͷίετ͕ߴ͍ ɾΫϩʔδϟͰTFMGΛऑࢀর͍ͯ͠Δ͔ ɾ<XFBLTFMG>ɺTFMGҎ֎ͷ໋໊ͰΞϯϥοϓ͢Δ
TFMGҎ֎ͷ໋໊ͰΞϯϥοϓ͢Δ 'PSNBUUFSʹΑΔࣗಈϑΥʔϚοτºώϡʔϚϯΤϥʔ ෆҙʹPXOFS͕লུ͞Εͨͱ͜Ζʹɺ ӈͷࣸਅͷΑ͏ͳTIPXϝιουΛ࠶ར༻͢Δ ॥ࢀর͢Δ TFMGͰͳ͘PXOFSͱ͔Ͱ͋Εɺ ࠶ར༻࣌ʹίϯύΠϧΤϥʔʹͳΔ