Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
unique パッケージから学ぶ interning と weak reference @ A...
Search
karamaru
September 13, 2024
Programming
1.7k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
unique パッケージから学ぶ interning と weak reference @ Asakusa.go#3
Asakusa.go#3で発表しました。
https://asakusago.connpass.com/event/327677/
karamaru
September 13, 2024
Transcript
62 slides
VOJRVFQBDLBHF͔ΒֶͿ JOUFSOJOHͱXFBLSFGFSFODF LBSBNBSV
ಋೖ
ΫΠζಉͷTUSJOHจࣈྻΦϒδΣΫτͷΞυϨε͍͔͠ʁ
ΫΠζಉͷTUSJOHจࣈྻΦϒδΣΫτͷΞυϨε͍͔͠ʁ͑
ΫΠζಉͷTMJDFྻΦϒδΣΫτͷΞυϨε͍͔͠ʁ
ΫΠζಉͷTMJDFྻΦϒδΣΫτͷΞυϨε͍͔͠ʁɹ͑
6OJRVFύοέʔδ͕(P͔ΒೖΓ·ͨ͠Ͷʂ DGIUUQTUJQHPMBOHPSHEPDHPOFXVOJRVFQBDLBHF ɾॏෳͨ͠σʔλΛҟͳΔΞυϨεʹׂΓͯΔͷΛ͍Ͱ ɹϝϞϦΛઅ͢ΔͭͬΆ͍ ɾ(P3FMFBTF1BSUZͰൃද͕͋Γ·ͨ͠Ͷʂ
ͿͬͪΌ͚লϝϞϦʹͳͬͨͬΆ͍͙Β͍͔͔ͬͯ͠ͳ͍🥺 ٯʹࠓ·ͰͲΜͳ࠷దԽ͕͋ͬͨΜͩΖ͏ʁ ͍ॴΈɺಋೖഎܠपลݴޠಛੑཧղ͍ͨ͠ʂ
͜ͷηογϣϯͷझࢫ 6OJRVFύοέʔδͷ࣮͔Βɺ(Pݴޠͷ෦࣮ʹҰॹʹ৮Ε͍͖͍ͯͨʂ ໌͔Β͑Δࣝͱ͔͋Μ·Γͳ͍͔Ͱ͢ɺୀ۶ͩͬͨΒ͝ΊΜͳ͍͞🥺
͜ͷηογϣϯͰ͍ͨ͜͠ͱ ɾ(Pݴޠʹ͓͚ΔTUSJOHͷෆมੑͷ෮श ɾTUSJOHJOUFSOJOHͱͦͷଞσʔλܕͷJOUFSOJHʹ͍ͭͯ ɾVOJRVFύοέʔδ͕৽ͨʹԿΛఏڙ͠ͲΜͳಛੑ͕͋Δͷ͔ɻಋೖഎܠɻ ɾऑࢀরͱԿ͔ɻͳͥNBQ<5>6Ͱ͍͚ͳ͍ͷ͔ʁ ɾϕϯνϚʔΫ ɾ($ͷڍಈΛ͖ݟ͍ͨ
ࣗݾհ ྏੜLBSBNBSVBMQIB $ZCFS"HFOU2VBMJ"SUT ࣌ؒͳ͍͔ΒૣޱʹͳΔ͔Ͱ͢🥺 ؾʹͳͬͨͱ͜Ζ͚ͩಡΈฦ͍͚ͯͨͩ͠Δͱ͍Ͱ͢NN
ΞδΣϯμ (Pݴޠʹ͓͚ΔTUSJOHͷෆมੑͱJOUFSOJOH VOJRVFύοέʔδͷಛੑͱରԠ͢ΔϕϯνϚʔΫ লϝϞϦੑɾൺֱ༰қੑɾऑࢀর VOJRVFύοέʔδͷ෦࣮Λ͏ )BTI5SJF.BQ8FBL1PJOUFS6OJRVF
(Pݴޠʹ͓͚ΔTUSJOHͷෆมੑͱJOUFSOJOH
TUSJOHͷׂΓͯͱෆมੑ TUSJOHJOUFSOJOHʹ͍ͭͯ
TUSJOHͷ෮श ɾTUSJOHϙΠϯλͱ͞Λ࣋ͭ ɾTUSJOHෆม JNNVUBCMF Ͱ͋Δ ɹʹϙΠϯλࢀরઌ %BUB ͷόΠτྻΛഁյతʹมߋͰ͖ͳ͍ CZUFྻͷࢀর
JNNVUBCMFͰ͋Δ͔Βɺಉ͡จࣈྻΦϒδΣΫτͷࢀরΛҟͳΔมͰ͍·ΘͤΔ ɾಉ͡Λએݴͨ͠ͱͯ͠ɺࢀরઌ %BUB ಉҰͷΞυϨεΛ͍·ΘͤΔ ɾTUSJOHJNNVUBCMF ෆม Ͱ͋ΔͨΊ ɹ҆৺ͯ͠ҟͳΔม͔Βಉ͡ΞυϨεΛݟʹߦ͚Δ ɾVOTBGF4USJOH%BUBจࣈྻΦϒδΣΫτͷࢀর EBUB
Λग़ྗ͢ϝιου ɾ࣮ଶ͕ҟͳͬͯ։͕࢝ҰॹͰ͋ΕಉʹͳΔ IUUQTSFTFBSDITXUDIDPNHPEBUB
44"ͰݟͯΈΔং൫ มB W จࣈྻΦϒδΣΫτzBz W Λࢀর͢Δ มC W จࣈྻΦϒδΣΫτzBz W
Λࢀর͢Δ
44"ͰݟͯΈΔத൫DTFʢ$PNNPO4VCFYQSFTTJPO&MJNJOBUJPOʣ จࣈྻΦϒδΣΫτWͱWͬͯಉͩ͠ෆม͔ͩΒॏෳͯ͠Δͳʜ W͔ΒWΛݟΔΑ͏ʹ͠Α͏ɻ ͦ͏ͳΔͱมͷWͱWͬͯಉͩͳʜ WΛআ͠Α͏ɻ มB W จࣈྻΦϒδΣΫτzBz W Λࢀর͢Δ
มC W จࣈྻΦϒδΣΫτzBz W Λࢀর͢Δ
44"ͰݟͯΈΔऴ൫ɹEFBEDPEF ࠷ऴతʹจࣈྻΦϒδΣΫτͱม͕ͭʹམͪΔ มB W จࣈྻΦϒδΣΫτzBz W Λࢀর͢Δ
TUSJOHJOUFSOJOHɹ จࣈྻΦϒδΣΫτ͕JNNVUBCMFͰ͋Δ͜ͱΛར༻ͯ͠ ෳͷมͰࢀরΛ͍ճ͢࠷దԽख๏Λ TUSJOHJOUFSJOHͱݴ͏ εʔύʔٛ
ՄมΦϒδΣΫτͷJOUFSOJOHʹ͍ͭͯ
ՄมͳΦϒδΣΫτJOUFSOJOHͰ͖ͳ͍ ɾՄมΦϒδΣΫτJOUFSOJOH͞Εͳ͍ ɾ͠͞ΕͨΒɺC<>ͱͨ͠ͱ͖ʹมBͷʹӨڹ͕ٴΜͰ͠·͏͔Β
༨ஊDPNQJMFஈ֊ͰಉͱผͰ͖ͳ͍TUSJOHJOUFSJOH͞Εͳ͍ ɾྫ͑จࣈྻ݁߹Λߦ͏ؔΛߟ͑Δ ɾSVOUJNFDBMMͰTUSJOH͕࡞͞ΕΔ ɾ44"ʹΑΔ࠷దԽड͚ΒΕͣɺҟͳΔΞυϨεʹจࣈྻ͕ஔ͞ΕΔ
ಉ͕සग़͢ΔέʔεͰͦΕΒΛมߋ͠ͳ͍ͳΒɺ NVUBCMFͳσʔλܕSVOUJNFͰੜ͞ΕΔͰ͋ͬͯ JOUFSOJOHͨ͠ํ͕͍͍Αͳʜ ϝϞϦͷઅͪΖΜɺ ΦϒδΣΫτͷΞυϨε͕ҟͳΔͱൺֱେมͩ͠ʜ
6OJRVFΛ༻͍Δ͜ͱͰखಈͰJOUFSOJOHΛ࣮ݱͰ͖Δʂ ɾಉ͡Ͱ͋ΕҟͳΔϝϞϦͷׂΓͯΛൃੜͤ͞ͳ͍Α͏ʹͳΔ ɾলϝϞϦੑͷଞʹൺֱ༰қੑऑࢀরͳͲ໘ന͍ಛੑ͕͋ΔͷͰݟ͍ͯ͜͏ʂ
VOJRVFύοέʔδͷಛੑͱϕϯνϚʔΫ
ϓϩϙʔβϧɾഎܠ
ϓϩϙʔβϧ ɾखಈͷJOUFSOJOHͷ͍ͨͥ͠ʂ ɾݱࡏOFUOFUJQͷͨΊʹ࡞ΒΕͨΠϯλʔϯॲཧ͕JOUFSOBMͰ͋Δ͕ɺ ɹHFOFSJDTରԠ͍ͯ͠ͳ͍͠ެ։͍ͯ͠ͳ͍ ɾ৽͘͠VOJRVFύοέʔδΛ࡞Ζ͏ʂ
༨ஊHPPSHJOUFSOʹ͍ͭͯ ɾVOJRVFύοέʔδͷલͰɺOFUOFUJQͷͨΊʹJOUFSOBMͰଘࡏ͍ͯͨ͠ ɾͦͦOFUOFUJQωοτϫʔΫαʔϏεΛఏڙ͢Δʮ5BJMTDBMFʯࣾͷ࣮ ɾසൟʹ*1ߏମΛੜ͠ൺֱ͢Δඞཁ͕͕͋ͬͨ ɹݱঢ়ͩͱຖճΞϩέʔγϣϯ͕ൃੜ͠ɺൺֱίετߴ͍ OFUOFUJQύοέʔδͷ࣮λΠϛϯάͰɺHPPSHJOUFSOͷίϐʔ͕औΓೖΕΒΕͨ IUUQTHJUIVCDPNHPPSHJOUFSO IUUQTZPVUVCFDTC&(M;6 U IUUQTUBJMTDBMFDPNCMPHOFUBEESOFXJQUZQFGPSHP
ެ։͢Δͱಉ࣌ʹHFOFSJDTͰ͍͍ײ͡ʹ࡞Γͦ͏ͥ
༨ஊHPPSHJOUFSOʹ͍ͭͯ IUUQTHPSFWJFXHPPHMFTPVSDFDPNDHP OFUOFUJQͷJOUFSOॲཧ͕ ݱࡏVOJRVFʹஔ͖͑ΒΕ͍ͯΔ
VOJRVFύοέʔδ֓ཁ ϝϦοτͱ࣮ಛੑ
VOJRVF͓͞Β͍ มߋ͠ͳ͍͜ͱΛ݅ʹɺಉͳΒಉ͡ΞυϨεͷΦϒδΣΫτΛ͍ճͭ͢
ಛᶃෆඞཁͳ࠶Ξϩέʔγϣϯͷݮ ͭͷΦϒδΣΫτͷࢀরΛ͍ճ͢ͷͰϝϞϦ෯औΒͳ͍ NBUUO͞Μ͕༗༻ͳέʔεΛࣔͯ͘͠Ε͍ͯΔ IUUQTHJUIVCDPNNBUUOHPVOJRVFFYBNQMF ΠϯλʔϯϚοϓͷཧίετͱ͔͋Δ͔ΒҰ֓ʹϝϦοτͱݴ͍ͮΒ͍͚Ͳ
ಛᶄൺֱ༰қੑ ɾϙΠϯλ͕͍͔͠ͷΈͰஅͰ͖ΔͨΊ VOJRVFͰแΉͱൺֱύϑΥʔϚϯε্͕Δ ɾͦͷଞͷTUSJOHTUSVDUͩͱஞҰಉੑΛͨͲΔඞཁ͕͋Δ
ٙΠϯλʔϯ༻ͷάϩʔόϧ.BQංେԽ ɾJOUFSOϝϞϦͷϓʔϧʹͷࢀরΛอ࣋ͯ͠࠶ར༻͢ΔΈ ࣙॻతͳ ɾϓʔϧάϩʔόϧͳNBQͱߟ͍͍͑ͯɻ ɾ͜ͷzϓʔϧͷzదٓআ͠ͳ͍ͱαΠζ͕രൃͯ͠͠·͏ɻ ɾ͕ࢀর͞Εͳ͘ͳͬͨλΠϛϯάͰͦͷཁૉͷΈΛআ͢Δํ๏͋Δ͔ʁ
ͦ͜Ͱཱͭऑࢀর ɾಛఆͷΦϒδΣΫτΛࢀর͢ΔҰํͰ ɹͦͷΦϒδΣΫτΛ($͔ΒकΔ͜ͱͷͰ͖ͳ͍ऑ͍ࢀরͷ͜ͱ ڧࢀর͕ͳ͘ͳͬͨॠؒʹ($ͷରͱͳΔ ɾ+BWB$Ͱ͍͏8FBL3FGFSFODFΫϥε ɾVOJRVFύοέʔδ͜ͷࢥΛࢀߟʹXFBLNBQΛੜɺඞཁͳ͘ͳͬͨΛQPPM͔Βదٓআ͍ͯ͠Δ ɾ(Pݴޠͷඪ४ϥΠϒϥϦͱͯ͠ऑࢀরΛೖΕΔϓϩϙʔβϧผͰཱ͍ͬͯΔ
ಋೖ ͳΜ͔֓೦͔ͬΓͰͦΖͦΖࠞཚ͖ͯͨ͠🥺 ࣮ΛݟͯڍಈΛཧղͯ͠ΈΑ͏ʂ
VOJRVFύοέʔδͷ෦࣮
༨ஊͿͬͪΌ͚ॳݟΘ͔Μͳ͍ʂͬͯͳͬͯେৎɻ͋Μ·͔ͬͯͳ͍͔Βʂ งғؾҎԼΛຯΘ͑Ε͍͍ʂ ɾʮͷίϐʔͷऑࢀরʯάϩʔόϧͳNBQΛҙʹੜ͠ɺͦΕΛར༻ͯ͠ࢀরΛ࠶ར༻ͯ͠ΔΜͩʔʔ ɾ($ͷػߏʹͬͯ ऑࢀরΛ׆༻ͯ͠ ඞཁͳ͘ͳͬͨͷ͔Βআ͍ͯ͠ΔΜͩʔʔ
DPNNJUΛ୧Δ ɾDPODVSSFOU)BTI5SJF.BQͷ࣮ɹ ͱࢀরΛอ࣋͢ΔϚοϓʹ༻͞ΕΔ ɾXFBL1PJOUFSͷ࣮ɹ ඞཁͳ͘ͳͬͨͱࢀরͷηοτΛআ͞ΕΔͨΊʹ༻͞ΕΔ ɾVOJRVFͷ࣮ ɾOFUOFUJQHPPSHJOUFSOVOJRVFͷஔ͖͑
IUUQTHPSFWJFXHPPHMFTPVSDFDPNDHP
)BTI5SJF.BQͷ࣮ IUUQTHPSFWJFXHPPHMFTPVSDFDPNDHP
)BTI5SJF.BQͷ࣮ɹGBG ɾDPODVSSFOUTBGFͳNBQ ɾϋογϡτϥΠߏ ɹɹɾτϥΠΩʔΛલํ͔Βߏʹ͢Δࣙॻతͳͭ ɹɹɾϋογϡτϥΠτϥΠͷΩʔΛϋογϡʹͨ͠൛ ɾVOJRVFͷϓʔϧͰ༻͞Ε͍ͯΔ ͿͬͪΌ͚ͦΜͳ໘ന͘ͳ͍ͷͰڍಈ͚ͩݟΔ IUUQTUFDIQSFGFSSFEKQKBCMPHUSJF@TVSWFZ τϥΠͷΠϝʔδ
)BTI5SJF.BQڍಈɹGBG ɾத͕ಉ͡ͷΛҰҙʹอ࣋ͯ͘͠Ε͍ͯΔࣗ༝ʹऔΓग़ͤΔ͙Β͍ͷೝࣝͰ͍͍
8FBL1PJOUFSͷ࣮ IUUQTHPSFWJFXHPPHMFTPVSDFDPNDHP
8FBL1PJOUFSͷ࣮ɹऑࢀরͷ֓ཁɹGBG ɾ($ώʔϓͷΞυϨεͷ͏ͪ ڧ ࢀর͕͍ͬͯͳ͍ͷΛআ͢Δ ɾऑࢀরͱΞυϨεʹΛݟʹߦ͘͜ͱ ࢀর Ͱ͖Δ͚Ͳɺͦͷ͕($͞Εͳ͍Α͏ʹकΔྗ͕ͳ͍ࢀরͷ͜ͱ ($ޙOJMࢀরʹͳΔ ɾͭ·Γ($ऑࢀরΛআͯ͘͢ͷ
ڧ ࢀর͕ͳ͘ͳͬͨྖҬΛআ͢Δ
8FBL1PJOUFSͷ࣮ɹΠϝʔδ IUUQTHJUIVCDPNHPMBOHHPCMPCBGDFFFFDEGBDGTSDJOUFSOBMXFBLQPJOUFS@UFTUHP- l5z มCU มXU CU͕ੜ͖͍ͯΔ࣌ ɾCUz5zͷࢀরΛ࣋ͭ ɾXUCUͷऑࢀরΛ࣋ͭ ɾXUCUܦ༝ͰΛMPPLVQͰ͖Δ l5z
มCU มXU 4USPOH CU͕($͞Εͨ࣌ ɾCU͕($͞ΕΔ ɾXUCUͷऑࢀরΛ֎͢ ɾXUCUܦ༝ͰMPPQVQͰ͖ͳ͘ͳΔ ಛఆΦϒδΣΫτͷ($ΛࢹͰ͖Δͷ͕ڧ͍ ޙͷVOJRVF.BQͷআͰར༻͞ΕΔ
8FBL1PJOUFSͷ࣮XFBL.BLFɹGBG ɾҾͷϙΠϯλʹର͢ΔऑࢀরΛฦ٫͢Δ ɾৄࡉ࣮SVOUJNFʹ͋Δ TSDJOUFSOBMXFBLQPJOUFSHP
8FBL1PJOUFSͷ࣮SVOUJNFHFU0S"EE8FBL)BOEMFɹGBG ɾऑࢀরΛΞϩέʔγϣϯ͠ɺࢀরઌͱͯ͠ҾͷQUSΛηοτ ɾҾͷQUSʹz4QFDJBM8FBL)BOEMFzΛඥ͚ͮΔ TSDSVOUJNFNIFBQHP ऑࢀর͞ΕͯΔΑͬͯΞϊςʔγϣϯΛ͚ͭΔ ($͞ΕΔͱ͖ʹޮՌΛൃಈ͢Δ ͜ͷऑࢀরࢀরΧϯλΛΠϯΫϦϝϯτ͠ͳ͍
8FBL1PJOUFSͷ࣮SVOUJNFGSFF4QFDJBMGBG ɾ(Pͷ($.BLFBOE4XFFQํࣜ ɾ༻தͷྖҬΛ.BSLͦΕҎ֎Λ4XFFQ͢Δ ɾ4XFFQ࣌ɺTQFDJBM͕͍ͨྖҬͷ߹ ɹͦΕʹԠͨ͡ॲཧΛ͕ࣗ4XFFQ͞ΕΔલʹ ɹGSFF4QFTJBMʹهड़Ͱ͖Δ ɾ4FDJBM8FBL)BOEMFͷ߹ ɹऑࢀরͷࢀরΛΔڍಈ͕ॻ͔Ε͍ͯΔ มCU มXU
͜ΕΛΔ
8FBL1PJOUFSͷ࣮ɹσόοάϩάΛࠐΜͰΈΔʜ σόοάϩάΛࠐΜͰΈΔʜ ɾऑࢀরͷొॲཧ ɾऑࢀরͷࢀরઌ͕($͞Εͨ࣌ͷऑࢀরϦηοτॲཧ
8FBL1PJOUFSͷ࣮ɹσόοάϩάΛࠐΜͰΈΔʜ ಛఆΦϒδΣΫτ͕($͞ΕΔ࣌ ͦΕΛऑࢀর͢ΔΦϒδΣΫτ͕ଘࡏ͍ͯͨ͠߹ ͦͷࢀরΛΔ͜ͱ͕֬ೝͰ͖ͨ ऑࢀর͍ͬͯ͏ͷ($ΛࢹͰ͖ΔͷڧΈͳΜͩͶ
6OJRVF1BDLBHFͷ࣮ IUUQTHPSFWJFXHPPHMFTPVSDFDPNDHP
VOJRVF͓͞Β͍ ɾϝϞϦͷϓʔϧʹͷࢀরΛอ࣋ͯ͠ಉͳΦϒδΣΫτΛ࠶ར༻͢ΔΈ ɾϓʔϧάϩʔόϧͳNBQͱߟ͍͍͑ͯ ɾ͜ͷzϓʔϧͷzదٓআ͠ͳ͍ͱαΠζ͕രൃͯ͠͠·͏ɻ ɾ͕ࢀর͞Εͳ͘ͳͬͨλΠϛϯάͰͦͷཁૉͷΈΛআ͢Δํ๏ͱͯ͠ऑࢀরΛ͍ͬͯΔ
VOJRVFͷ࣮άϩʔόϧͳͱࢀরͷNBQ ܕ5ͷͷίϐʔͱɺΦϒδΣΫτʹର͢ΔऑࢀরΛอଘ͍ͯ͠Δ ɾॏNBQʹͳ͍ͬͯΔ͚ͲͦΕΤεέʔϓղੳରࡦͳͷͰແࢹ 6OJRVF.BQ<lBCz>lBCzʹର͢Δऑࢀর
VOJRVFͷ࣮͕ҙʹϓʔϧ͞ΕΔΈ ɾ6OJRVF.BQ)BTI5SJF.BQ ɾNBQ<WBMVFͷίϐʔ>WBMVFͷऑࢀরͰϓʔϧ OPUF ɾ࣍ճಉ͕͡དྷͨΒNBQͷΩʔݕࡧͰࢀরΛ࠶ར༻͢Δ OPUF Ωʔ͕ͷίϐʔͰɺόϦϡʔ͕ͷ ऑ ࢀরͷάϩʔόϧ.BQ͕ʂ
͜ͷ··ͩͱNBQ͕ංେԽ͠ଓ͚ΔͨΊআ͕ඞཁʜ TSDVOJRVFIBOEMFHP
VOJRVFͷ࣮ࣦޮ͢ΔΈ ɾॳΊͯͷΛೖΕΔ࣌ʹআؔΛηοτ͢Δ ɾऑࢀরͷࢀরઌ͕($͞Εͨ࣌NBQ͔ΒࣗΛআ֎͢Δॲཧ ɾ($͕Δʹ͜ͷআ֬ೝ͕ߦΘΕΔ TSDVOJRVFIBOEMFHP TSDSVOUJNFNHDHP
6OJRVFͷ࣮σόοάϩάΛࠐΜͰΈΔ ɾVOJRVF.BLFͰಉͳΒಉҰͷࢀরΛฦ٫͢Δ͔ ɾͷ($λΠϛϯάͰ6OJRVF.BQ͔Β͕ࣗআ͞ΕΔ͔
VOJRVFͷ࣮͓ʔ👏 lVTFS\lIPHFz^z VOJRVF.BQ NBQ<lVTFS\lIPQFz^z> ͷऑࢀর มB ͷڧࢀর ($લ ɾ6OJRVF.BQͷऑࢀরΛ࣋ͭ ɾಉͷมʹରͯͦ͠ͷͷҙͳࢀরΛ͚༩͑Δ
มC ͷڧࢀর 4USPOH lVTFS\lIPHFz^z VOJRVF.BQ\^ มB ($ޙ ɾ6OJRVF.BQͷऑࢀরઌ ͷࢀর͕ΕΔ ɾ.BQ͔Β͕আ֎͞ΕΔ มC 4UPSF
·ͱΊ
ίϝϯτ ͳΜ͔͍͠ʂ Θ͔ͬͨΑ͏ͳΘ͔Βͳ͍Α͏ͳʜ ͚ͲɺҎԼงғؾ௫Ίͨʂ ɾࢀরͷάϩʔόϧͳNBQΛҙʹੜ͠ɺͦΕΛར༻ͯ͠Λ࠶ར༻ͯ͠ΔΜͩʔʔ ɾ($ͷػߏʹͬͯ ऑࢀরΛ׆༻ͯ͠ ඞཁͳ͘ͳͬͨͷ͔Βআ͍ͯ͠ΔΜͩʔʔ (Pݴޠࣗମͷίʔυ݁ߏಡΊΔ͡ΌΜʂ
·ͱΊ ɾTUSJOH͕JNNVUBCMFͰ͋Δ͜ͱΛར༻ͯ͠ɺࢀরΛڞ༗͢ΔTUSJOHJOUFSOJOHैདྷ͔Βଘࡏ͍ͯͨ͠ ɾNVUBCMFͳSVOUJNFੜʹରͯ͠ɺมߋ͠ͳ͍͜ͱΛ݅ʹJOUFSOJOHΛߦ͑Δͷ͕VOJRVFύοέʔδ ɾऑࢀরͱ͍͏ΈΛར༻ͯ͠ɺඞཁͳ͚ͩࣙॻͱͯ͠ϓʔϧ͓ͯ͘͠ݟΒΕͨɻ ɾXFBLNBQͷQSPQPTBMग़͍ͯΔʜࠓޙͷಈΛ͍͖͍ͬͯͨɻ
VOJRVFQBDLBHF͔ΒֶͿ JOUFSOJOHͱXFBLSFGFSFODF LBSBNBSV
More Decks by karamaru
See All by karamaru
コード生成なしでモック処理を実現! ovenchkin-dm/mockio,go-dynoで学ぶメタプログラミング
karamaru
6
3.9k
モックライブラリアプローチ比較
karamaru
3
1.4k
自動生成の話をしよう 〜 ProtoBuf, Cue, 1次ソースの美学 〜
karamaru
3
930
ぼくのかんがえたさいきょうのもっくらいぶらり! @ GoConnect#1
karamaru
0
230
詳解 "Fixing For Loops in Go 1.22" 自作linterをgolangci-lintへコントリビュートした話 @ GoConference2024
karamaru
0
200
zsh*単一デスクトップ環境最速を目指して
karamaru
0
920
対isuconメトリクスツール isumaru作った
karamaru
0
260
自作言語をrustでwasmにコンパイルする
karamaru
0
360
Other Decks in Programming
See All in Programming
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
4
3.8k
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.7k
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
370
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
170
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
220
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
3
1.5k
AI-Powered Domain-Driven Design
ziobrando
0
430
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
340
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
970
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
210
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
130
ActionController meets Protocol Buffers
sorah
1
800
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
440
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
6
920
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
460
Rails Girls Zürich Keynote
gr2m
96
14k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
530
Highjacked: Video Game Concept Design
rkendrick25
PRO
2
560
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k