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
AWS CDKにおけるL2 Constructの仕組み / aws-cdk-l2-construct
Search
k.goto
March 13, 2025
Programming
6
1.2k
AWS CDKにおけるL2 Constructの仕組み / aws-cdk-l2-construct
2025/03/13開催「JAWS-UG東京 IaC Night 〜入門から上級まで!AWSをコードで構築しよう〜」での登壇資料です。
k.goto
March 13, 2025
Tweet
Share
More Decks by k.goto
See All by k.goto
AWS CDKの仕組み / how-aws-cdk-works
gotok365
10
1.3k
AWS CDK 実践的アプローチ N選 / aws-cdk-practical-approaches
gotok365
7
1.3k
TypeScript製IaCツールのAWS CDKが様々な言語で実装できる理由 ~他言語変換の仕組み~ / cdk-language-transformation
gotok365
9
680
とあるEdTechベンチャーのシステム構成こだわりN選 / edtech-system
gotok365
7
650
CodePipelineのアクション統合から学ぶAWS CDKの抽象化技術 / codepipeline-actions-cdk-abstraction
gotok365
5
440
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
390
AWS CDKにおける「再利用性」を考える / aws-cdk-reusability
gotok365
8
3.2k
OSS活動のススメ / oss-activities
gotok365
5
1.2k
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
9
1.9k
Other Decks in Programming
See All in Programming
AIのメモリー
watany
11
1.1k
変化を楽しむエンジニアリング ~ いままでとこれから ~
murajun1978
0
520
オンコール⼊⾨〜ページャーが鳴る前に、あなたが備えられること〜 / Before The Pager Rings
yktakaha4
2
1.1k
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
300
Streamlitで実現できるようになったこと、実現してくれたこと
ayumu_yamaguchi
2
230
What's new in AppKit on macOS 26
1024jp
0
180
バイブスあるコーディングで ~PHP~ 便利ツールをつくるプラクティス
uzulla
1
300
React は次の10年を生き残れるか:3つのトレンドから考える
oukayuka
40
15k
レトロゲームから学ぶ通信技術の歴史
kimkim0106
0
140
GPUを計算資源として使おう!
primenumber
1
290
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
24
10k
Startups on Rails in Past, Present and Future–Irina Nazarova, RailsConf 2025
irinanazarova
0
310
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
The Cost Of JavaScript in 2023
addyosmani
51
8.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Music & Morning Musume
bryan
46
6.7k
KATA
mclloyd
30
14k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Become a Pro
speakerdeck
PRO
29
5.4k
Statistics for Hackers
jakevdp
799
220k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
760
A Modern Web Designer's Workflow
chriscoyier
695
190k
How GitHub (no longer) Works
holman
314
140k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Transcript
LHPUP AWS CDKʹ͓͚Δ L2 ConstructͷΈ +"846(౦ژ*B$/JHIU ʙೖ͔Β্ڃ·Ͱʂ"84ΛίʔυͰߏங͠Α͏ʙ
ࣗݾհ LHPUP "84)&30 "84$%,ίϯτϦϏϡʔτ 0QFO$POTUSVDUT-JCSBSZ ίϛϡχςΟۦಈ$%,$POTUSVDUϥΠϒϥϦ "84πʔϧ DMT EFMTUBDL MBNWFS
"84%FW5PPMT)FSP .BJOUBJOFS 5PQ$POUSJCVUPS $PNNVOJUZ3FWJFXFS ࣗ࡞044 $%,$POTUSVDUϥΠϒϥϦ 9!@TUFQ@UFDI (JU)VC!HPUPL
"84$%,ʹ͓͚Δ -$POTUSVDUͷΈ
w -$POTUSVDUͷΈΛΔ͜ͱͰ$%,Λ༻͍ͨ։ൃͷώϯτΛಘΔ w -$POTUSVDUΛ࡞ΕΔΑ͏ʹͳΔ ͨΊͷֻ͔Γʹ ‣ ຊηογϣϯ͚ͩͰͦͷશͯΛΧόʔͰ͖ͳ͍ ‣ ͬ͘͟ΓͰ֓ཁΛ௫ΊΔͱHPPE
ຊηογϣϯͷత
w 044Ͱ͋Δ"84$%,5ZQF4DSJQUͰ࣮͞Ε͍ͯΔ ‣ HJUIVCDPNBXTBXTDEL w ຊηογϣϯͰొ͢Δίʔυͯ͢$%,ͷ෦ίʔυ W࣌ ‣ ඞͣ͠ۀͰ$%,Λ͏ࡍͷίʔυʹͯΊΔ͖ͷͰͳ͍
‣ ͕ɺۀݸਓͰͷ$POTUSVDU։ൃ$%,ίϯτϦϏϡʔγϣϯͷࢀߟʹͳΕ ຊηογϣϯͷલఏ
$POTUSVDU ίϯετϥΫτ ͬͯʁ
$POTUSVDU ίϯετϥΫτ ͱ w $%,ͷಠࣗܕ Ϋϥε ʹΑΔ"84ϦιʔεఆٛͷநԽ ‣ -$POTUSVDUෳͷϦιʔεΛؚΉҰൠతͳߏύλʔϯ ‣
-$POTUSVDUσϑΥϧτศརϝιουΛ࣋ͭ୯Ұͷ"84Ϧιʔε ‣ -$POTUSVDU$MPVE'PSNBUJPOϦιʔεϓϩύςΟͱͰରԠ ˞-ͱ͍͏ಛఆͷγφϦΦʹಛԽͯ͠நԽͨ͠୯ҰϦιʔε͋Γ ந
w $%,ͷಠࣗܕ Ϋϥε ʹΑΔ"84ϦιʔεఆٛͷநԽ ‣ -$POTUSVDUෳͷϦιʔεΛؚΉҰൠతͳߏύλʔϯ ‣ -$POTUSVDUσϑΥϧτศརϝιουΛ࣋ͭ୯Ұͷ"84Ϧιʔε ‣ -$POTUSVDU$MPVE'PSNBUJPOϦιʔεϓϩύςΟͱͰରԠ
˞-ͱ͍͏ಛఆͷγφϦΦʹಛԽͯ͠நԽͨ͠୯ҰϦιʔε͋Γ ந w ಛఆͷϢʔεέʔεΛݺͼग़͠Ͱ࣮ݱ FH"-# 'BSHBUF w ൚༻ੑ͕͍ͷͰ͏γνϡΤʔγϣϯݶΒΕΔ w $%,ຊՈ͔Β΄ͱΜͲެ։͞Ε͍ͯͳ͍ $POTUSVDU ίϯετϥΫτ ͱ
w $%,ͷಠࣗܕ Ϋϥε ʹΑΔ"84ϦιʔεఆٛͷநԽ ‣ -$POTUSVDUෳͷϦιʔεΛؚΉҰൠతͳߏύλʔϯ ‣ -$POTUSVDUσϑΥϧτศརϝιουΛ࣋ͭ୯Ұͷ"84Ϧιʔε ‣ -$POTUSVDU$MPVE'PSNBUJPOϦιʔεϓϩύςΟͱͰରԠ
˞-ͱ͍͏ಛఆͷγφϦΦʹಛԽͯ͠நԽͨ͠୯ҰϦιʔε͋Γ ந w ୯ҰϦιʔε Ћ $MPVE8BUDI-PHTͱ͔*".ϩʔϧͱ͔ ͳͨΊ൚༻ੑ͕ߴ͍ w ྑ͍۩߹ʹநԽͯ͘͠Εͯศར நΛԼ͛Δ͜ͱՄ w ΈࠐΈόϦσʔγϣϯͰσϓϩΠલʹΤϥʔݕ $POTUSVDU ίϯετϥΫτ ͱ ˠΤεέʔϓϋον
w $%,ͷಠࣗܕ Ϋϥε ʹΑΔ"84ϦιʔεఆٛͷநԽ ‣ -$POTUSVDUෳͷϦιʔεΛؚΉҰൠతͳߏύλʔϯ ‣ -$POTUSVDUσϑΥϧτศརϝιουΛ࣋ͭ୯Ұͷ"84Ϧιʔε ‣ -$POTUSVDU$MPVE'PSNBUJPOϦιʔεϓϩύςΟͱͰରԠ
˞-ͱ͍͏ಛఆͷγφϦΦʹಛԽͯ͠நԽͨ͠୯ҰϦιʔε͋Γ ந w શͯͷϓϩύςΟΛ໌ࣔతʹࢦఆ͢Δඞཁ͕͋Δ w ϓϩύςΟʹ༻Ͱ͖Δܕͷछྨ͕গͳ͍ -Ͱ๛ $POTUSVDU ίϯετϥΫτ ͱ
w ৄ͘͠"84#MBDL#FMUΛࢀর IUUQTQBHFTBXTDMPVEDPNST5;.JNBHFT"84#MBDL#FMU@@"84$%,#BTJD0WFSWJFX@@WQEG $POTUSVDU ίϯετϥΫτ ͱ
w ͋ͷେมͳ71$ઃఆ͜Μͳ͓खܰʹ ‣ ˞ͪ͜Β7ͰɺΑΓΧελϜ͍͢͠7QD7Ћ൛ͰϦϦʔεࡁΈ $POTUSVDUͷศརػೳ
w ͍͍ײ͡ͷ*".ݖݶΛ༩ͯ͘͠ΕΔHSBOUϝιου ͜ͷόέοτͱΦϒδΣΫτʹର͢Δ T(FU0CKFDU T(FU#VDLFU T-JTU $POTUSVDUͷศརػೳ
w $%,ϨΠϠʔͰ5ZQF4DSJQU -BNCEB ͷϏϧυ ‣ /PEFKT'VODUJPO Ϗϧυ্ͨ͠ͰΞηοτ -BNCEBͰݺͿ;*1ϑΝΠϧ Λ$%,༻ͷ4ʹΞοϓϩʔυ
$POTUSVDUͷศརػೳ
w $%,ϨΠϠʔͰ%PDLFSϏϧυ&$3ϓογϡ ‣ %PDLFS*NBHF"TTFU Ϗϧυ্ͨ͠ͰΞηοτ &$4͔ΒݺͿΠϝʔδ Λ$%,༻ͷ&$3ʹϓογϡ ‣ &$3%FQMPZNFOU
ಛఆͷ&$3ʹίϐʔ $POTUSVDUͷศརػೳ
w $%,ϨΠϠʔͰ4Ξοϓϩʔυ ‣ #VDLFU%FQMPZNFOU ΞηοτΛ4ʹΞοϓϩʔυ ;*1Λల։͢Δ͜ͱՄೳ $POTUSVDUͷศརػೳ
ͳΜͰ-$POTUSVDU ͷΛ͢Δͷ ʁ
w -$POTUSVDUʁ ‣ ൚༻ੑ͕ͯ͑͘Δέʔε͕͋·Γͳ͘ɺͦͦຊՈ͔Β͋·Γग़͍ͯͳ͍ ‣ ϢʔβଆͰಠࣗͷΧελϜ - $POTUSVDUΛ࡞Δͷ͕ओྲྀ --$POTUSVDUΛࣗϓϩμΫτͷϢʔεέʔεʹ߹Θͤͯࣗ༝ʹΈ߹ΘͤΔ
ͦͷͨΊ༷༷ࣜʑ w -$POTUSVDUʁ ‣ நԽ͕ͳ͍ศརػೳ͕ͳ͍ܕͷදݱ͕ऑ͍ ‣ -$POTUSVDU͕ରԠ͍ͯ͠ͳ͍෦ΛΧόʔ͢Δ͍ํ͕ଟ͍ ͳΜͰ-$POTUSVDU ͷΛ͢Δͷ ʁ $%,ͱ͍ͬͨΒ-$POTUSVDUʂʂ
-$POTUSVDUͷΈ
-$POTUSVDUͷΈ ֓ཁ -$POTUSVDU $POTUSVDU*%3FTPVSDF *".3PMF1PMJDZ -PH(SPVQ FUD ϓϥΠϚϦϦιʔε ηΧϯμϦϦιʔε -$POTUSVDU
1SPQT QSPQFSUZ" QSPQFSUZ# QSPQFSUZ$ QSPQFSUZ% SPMF MPH(SPVQ ʜ ʜ ͳ͚Εࣗಈੜ ͳ͚ΕσϑΥϧτ ϝιου ϝιου ϝιου
-$POTUSVDUͷΈ ৄࡉ
-$POTUSVDUͷΈ ৄࡉ
-$POTUSVDUͷΈ ৄࡉ
-$POTUSVDUͷΈ ৄࡉ
-$POTUSVDUͷΈ ৄࡉ ࡞Δ͖ͷ͜Ε͚ͩ
-$POTUSVDUͷΈ ৄࡉ
-$POTUSVDUͷΈ ৄࡉ
None
w 6OPXOFE3FTPVSDFTͷͨΊͷ#FIBWJPSBM*OUFSGBDF *9YYܕ ‣ ελοΫ֎ͷϦιʔεΛٖࣅతʹελοΫཧԼʹऔΓࠐΉͨΊͷಡΈࠐΈ༻ܕ FH *#VDLFUɺ*5PQJDɺ*2VFVF
㱠DELJNQPSU ˡ࣮ࡍʹελοΫͷཧϦιʔεʹҠ͢ *&YBNQMF $%,ελοΫ Ϛωίϯ -BNCEB 4 #VDLFU ελοΫॴ༗ ࣮$POTUSVDU HSBOU1VU ελοΫඇॴ༗ *#VDLFU JOUFSGBDF ٖࣅऔΓࠐΈ GSPN#VDLFU"UUSJCVUFT
w zGSPN9YY"SO zͳͲͷಡΈࠐΈϝιου͕ٖࣅϦιʔεΛ͜ͷܕͰฦ͢ w ී௨ͷ$POTUSVDUͱ ΄΅ ಉ͡Α͏ʹϓϩύςΟऔΕΔ͠ϝιουݺΔ *&YBNQMF *#VDLFUܕ
w ී௨ͷ$POTUSVDUͱ ΄΅ ಉ͡Α͏ʹϓϩύςΟ͕औΕΔΈ ‣ ͨ͠Λͱʹ$POTUSVDUΛٖࣅߏͯ͠6OPXOFE3FTPVSDFTܕͱͯ͠ฦ͢ *&YBNQMF GSPN#VDLFU"SO Ͱόέοτͷ"SOΛ͢
ͦΕ͕CVDLFU"SOʹηοτ "SOͷ໋໊نଇʹԊͬͯ/BNFΛநग़ɺCVDLFU/BNFϓϩύςΟʹηοτ 㾎ଞʹ͜ͷ4UBDL3FHJPOใ͔Βಋ͖ग़ͤΔϓϩύςΟηοτ͞ΕΔ "SO͔Βಋ͚ͳ͍VOEF fi OFEʹͳΔ͕ɺGSPN"UUSJCVUFT ͩͱશͯͤΔ GSPN-PPLVQ ͱ͍͏4%,Ͱ࣮ࡍʹΛऔಘ͢Δಛघͳϝιου͋Δ
w ී௨ͷ$POTUSVDUͱ ΄΅ ಉ͡Α͏ʹϝιου͕ݺΔΈ ‣ -$POTUSVDU࣮ମ ͘͠#BTFΫϥε ͜ͷJOUFSGBDFΛJNQMFNFOUT͢Δ *&YBNQMF
$POTUSVDU࣮ମ6OPXOFE3FTPVSDFTͷ࣋ͭఆٛΛશͯ࣋ͭ ޓੑ 㾎&YBNQMFJNQMFNFOUT*&YBNQMF 㾎&YBNQMF#BTFJNQMFNFOUT*&YBNQMF ਖ਼͘͠ʮ࣮$POTUSVDU͕6OPXOFE3FTPVSDFTܕͱಉ͜͡ͱ͕Ͱ͖Δʯ
w 6OPXOFE3FTPVSDFTܕͷܕఆٛʹ͍ͭͯ ‣ *3FTPVSDFΛFYUFOET ‣ ඞཁ͕͋Ε*(SBOUBCMF *$POOFDUBCMF FUDʜFYUFOET HSBOUϝιουɺBMMPX5PϝιουͳͲͷରʹ͍ͨ͠߹
*&YBNQMF
w 6OPXOFE3FTPVSDFTܕͷϓϩύςΟఆٛʹ͍ͭͯ ‣ ಡΈࠐΈ༻Ϧιʔε͔Βެ։͍ͨ͠ϓϩύςΟΛఆٛ $MPVE'PSNBUJPOͰϦιʔε࡞࣌ʹฦ٫͞ΕΔϓϩύςΟ جຊతʹ ࣋ͨͤΔ 㾎3FG (FU"UUͳͲͰฦ͞ΕΔͷYY/BNF
YY"SO FUD ໋໊ͷYY෦লུ͠ͳ͍ 㾎ͦΕΒʹ!BUUSJCVUFϥϕϧΛ͚ͭΔ $%,ಠࣗͰఆٛͨ͠ϓϩύςΟʹෆཁ *&YBNQMF
w 6OPXOFE3FTPVSDFTܕͷϝιουఆٛʹ͍ͭͯ ‣ JOUFSGBDFʹ࣮Λॻ͚ͳ͍ͷͰ࣮ࡍͷॲཧ࣮ઌͰఆٛ ಡΈࠐΈ༻ͷΫϥεΛผͰఆٛ͢Δ ʮ&YBNQMF -$POTUSVDU ʯʹͯޙड़
‣ ͜ͷϦιʔεࣗମʹมߋΛՃ͑ͳ͍ྨͷϝιουͷΈఆٛ ͦͷ$POTUSVDU͕ॴ༗͢ΔผϦιʔεͷߋ৽ܥՄೳͳέʔε ߋ৽ϝιουΛఆٛ͠ɺ࣮ମͰ࣮ࡍͷॲཧɺಡΈࠐΈ༻Ͱμϛʔ࣮Λ͢Δ͜ͱ ‣ HSBOUϝιουಡΈࠐΈ༻ϦιʔεͰ͑ΔͷͰجຊతʹఆٛ͢Δ͜ͱ͕ଟ͍ ͜ͷϦιʔεʹΞΫηε͢ΔͨΊͷݖݶΛΞΫηεݩͷϦιʔεʹ༩͢ΔͨΊ *&YBNQMF
w $POTUSVDUͷ1SPQTͰड͚औΔϦιʔε6OPXOFE3FTPVSDFTܕʹ ‣ ελοΫͰ࡞ͨ͠Ϧιʔε֎͔ΒಡΈࠐΜͩϦιʔεͤΔ -$POTUSVDU &YBNQMF ͜ͷܕ *&YBNQMF ΛJNQMFNFOUT͢ΔͨΊܕͷޓੑ͕͋Δ
ϝιου͑ΔͷͰɺϓϦϛςΟϒܕ TUSJOHͳͲ ΑΓ͜ͷܕʹ͓ͯ͜͠͏ w $POTUSVDU͔Β֎ʹެ։͢ΔϦιʔε6OPXOFE3FTPVSDFTܕʹ ‣ ͦͷϦιʔεΛ࡞ͨ͠$POTUSVDUͷ֎Ͱߋ৽͞Εͳ͍Α͏ʹͰ͖Δ ͷɾ҆શੑͷ্ *&YBNQMF
None
&YBNQMF"UUSJCVUFT w GSPN9YY"UUSJCVUFT ϝιουʹ͢4USVDUT*OUFSGBDF ‣ ͜ͷใΛͱʹ6OPXOFE3FTPVSDFT͕ߏ͞ΕΔ ͜ΕΑΓελοΫ֎ͷϦιʔεͰٖࣅ$POTUSVDUͱͯ͠ѻ͑ΔΑ͏ʹ *&YBNQMF 6OPXOFE3FTPVSDFT
GSPN&YBNQMF"UUSJCVUFT TDPQF JE FYBNQMF"UUSJCVUFT *&YBNQMF YY"SO YY/BNF &YBNQMF"UUSJCVUFT *&YBNQMFΛJNQMFNFOUTͨ͠ ΫϥεͷΠϯελϯε͕ฦΔ
&YBNQMF"UUSJCVUFT w શͯͷϓϩύςΟSFBEPOMZ 4USVDUT*OUFSGBDFͷಛ ‣ *OQVUͱͳΔͷΠϛϡʔλϒϧ มߋෆՄೳ Ͱ͋Δ͠
None
&YBNQMF#BTF w ͭͷϦιʔεʹରͯ͠ෳͷ$POTUSVDUΛ࣮͢ΔͷͨΊͷڞ௨Ϋϥε ‣ $POTUSVDUΛෳ࡞Βͳ͍߹ແͯ͘ྑ͍͕֦ுͷͨΊʹ࡞͓ͬͯ͘ͷ͕ਪ ‣ ͜Ε͕͋ΔͱಡΈࠐΈ༻ΫϥεΛ࡞Δࡍʹ࠶ར༻Ͱ͖Δ ޙड़ ྫBXTBQJHBUFXBZϞδϡʔϧ ྫBXTTϞδϡʔϧ
&YBNQMF#BTF w #BTFΫϥεͷܕఆٛʹ͍ͭͯ ‣ BCTUSBDUΫϥε ‣ 3FTPVSDFΫϥεΛFYUFOET -$POTUSVDUͱ3FTPVSDFΫϥεΛܧঝͨ͠ͷ
3FTPVSDFΫϥε-$POTUSVDUڞ௨ͷใΛ࣋ͭ 㾎JT3FTPVSDF JT3FTPVSDF QIZTJDBM/BNF FUD ‣ 6OPXOFE3FTPVSDFTܕ *9YYܕ ΛJNQMFNFOUT ͜ΕͰಡΈࠐΈ༻ͷܕͷ࣋ͭϓϩύςΟɾϝιουఆٛΛҾ͖ܧ͙
&YBNQMF#BTF w #BTFΫϥεͷϓϩύςΟఆٛʹ͍ͭͯ ‣ جຊ6OPXOFE3FTPVSDFTͷଐੑΛҾ͖ܧ͍ͩͷ #BTFΫϥεݻ༗ͷଐੑ࡞ͬͯྑ͍ ‣ -$POTUSVDU αϒΫϥε
ଆͰઃఆ͍ͨ͠ଐੑBCTUSBDUʹ
&YBNQMF#BTF w #BTFΫϥεͷDPOTUSVDUPSఆٛʹ͍ͭͯ ‣ Ҿ 9YY#BTF1SPQTPS3FTPVSDF1SPQT ‣ ॲཧ αϒΫϥεͷ-$POTUSVDUଆʹճͯ͠0,
ཧ໊ηοτɺڞ௨ϓϩύςΟηοτɺڞ௨όϦσʔγϣϯɺFUDʜ ‣ #BTFଆͰॳظԽॲཧ͕ෆཁͳ߹DPOTUSVDUPS͕ͳ͍͜ͱ ͦͷ߹-$POTUSVDUࣗମ αϒΫϥε Ͱఆٛ͢Δ
&YBNQMF#BTF w #BTFΫϥεͷϝιουఆٛʹ͍ͭͯ ‣ ֤-$POTUSVDUͰڞ௨Ͱ༻͍ͨ͠ϝιουΛఆٛ ‣ ಡΈࠐΈ༻Ϋϥε ޙड़ Ͱ༻͍ͨ͠ϝιουఆٛ ‣
HSBOUܥϝιουNFUSJDܥϝιου͍͍ͩͨ͜͜Ͱఆٛ
&YBNQMF#BTF w #BTFΫϥε͕ͳ͍έʔε͋Δ ‣ ଞͷछྨ ੜ ͷ$POTUSVDU͕ͳ͍ɾখ͍͞$POTUSVDUͷ߹ͳͲ ‣ γϯϓϧʹͳΔ͕࡞͓͍ͬͯͨํ͕ϕλʔ
None
w #BTFΫϥεͷೖྗͷͨΊͷ4USVDUT*OUFSGBDF ‣ ڞ௨Ͱηοτ͍ͨ͠ϓϩύςΟ͕͋Ε࡞Δ ߏϧʔϧ-$POTUSVDUͷ1SPQT &YBNQMF1SPQTɿޙड़ ͱಉ͡ ͦͦ#BTFΫϥεʹDPOTUSVDUPS͕ͳ͍߹ɾ3FTPVSDF1SPQTΛ͢߹ෆཁ
‣ 3FTPVSDF1SPQTΛFYUFOETͯ͠ྑ͍ &YBNQMF#BTF1SPQTFYUFOET3FTPVSDF1SPQT &YBNQMF#BTF1SPQT
None
&YBNQMF1SPQT w -$POTUSVDUͷೖྗͷͨΊͷ4USVDUT*OUFSGBDF ‣ ϓϦϛςΟϒܕ OVNCFSͳͲ ɺFOVNɺJOUFSGBDFɺΫϥεɺྻɺFUDΛ࣋ͭ 9YY#BTF1SPQT͕͋ΕFYUFOET
ͯ͢ͷϓϩύςΟΛSFBEPOMZʹ Ϧιʔε(L2 Construct)Λ͍ͨ͠߹Unowned ResourcesܕͰఆٛ
&YBNQMF1SPQT w ಛఆͷϓϩύςΟ܈Λผinterface(ωετ)ʹͯ͠ྑ͍͕ϑϥοτ͕ਪ ‣ JavaͳͲͷݴޠͩͱωετ͞ΕͨΦϒδΣΫτͷੜ͕େมͳͨΊ ‣ ϑϥοτʹ͢Δ͜ͱͰoptionalʹͤ͟ΔΛಘͳ͍߹όϦσʔγϣϯͰΧόʔ DPO fi HVSBUJPOΛઃఆ͢Δ߹ͦͷதͷ֤ϓϩύςΟඞਢ
ϑϥοτʹ͢Δ͜ͱͰͲͪΒPQUJPOBMʹͳͬͯ͠·͏ DPO fi HVSBUJPOࣗମ͕ͦͦෆཁͳ߹͕͋ΔͷͰ ͳ͕ͣɾɾɾ
&YBNQMF1SPQT w ৼΔ͍(ϝιου)Λ࣋ͭͱศརͳϓϩύςΟΫϥεʹ͢Δͱදݱ͕͕Δ
None
w -$POTUSVDUຊମʢΫϥεʣ ‣ -$POTUSVDUΛ͍উखΑ͘நԽͨ͠ͷ ؔ࿈ϦιʔεੜɺਪͷσϑΥϧτઃఆɺศརϝιουɺόϦσʔγϣϯɺFUDʜ &YBNQMF -$POTUSVDU
&YBNQMF -$POTUSVDU w -$POTUSVDUΫϥεͷܕఆٛʹ͍ͭͯ ‣ -$POTUSVDUͱ3FTPVSDFΫϥεΛܧঝͨ͠ͷ ࠶ܝ ‣ #BTFΫϥεΛFYUFOET
#BTFΫϥε͕͢Ͱʹ3FTPVSDFΫϥεΛܧঝ͍ͯ͠Δ ‣ #BTFΫϥε͕ͳ͚Ε 3FTPVSDFΫϥεΛFYUFOET 6OPXOFE3FTPVSDFT *9YY ΛJNQMFNFOUT
&YBNQMF -$POTUSVDU w -$POTUSVDUΫϥεͷϓϩύςΟఆٛʹ͍ͭͯ ‣ #BTFΫϥεͰBCTUSBDUͰఆٛͨ͠ͷͯ͢ఆٛ #BTFΫϥε͕ͳ͚Ε6OPXOFE3FTPVSDFT *9YY Ͱఆٛͨ͠ͷΛఆٛ
‣ ଞʹ֎͔ΒΞΫηεͰ͖ΔΑ͏ʹ͍ͨ͠ϓϩύςΟQVCMJDʹ SFBEPOMZਪ ͷʹΑͬͯͦ͏Ͱͳ͍ͷ͋Δ ॲཧʹඞཁͳQSJWBUFQSPUFDUFEϓϩύςΟͷઃఆࣗ͝༝ʹ
&YBNQMF -$POTUSVDU w -$POTUSVDUΫϥεͷDPOTUSVDUPSఆٛʹ͍ͭͯ ‣ ཧ໊ηοτ #BTFΫϥεͰͬͯ0, ະࢦఆͷ߹$MPVE'PSNBUJPO͕ࣗಈੜ
‣ ະࢦఆͷ߹Ͱ$%,ଆͰੜ͢Δ͜ͱ ཧ໊ͷ໋໊ϧʔϧʹ߹Θͤͯ-B[ZTUSJOH /BNFTVOJRVF3FTPVSDF/BNF ΞΧϯτϦʔδϣϯލ͗༻ʹ1IZTJDBM/BNF(&/&3"5&@*'@/&&%&%
&YBNQMF -$POTUSVDU w -$POTUSVDUΫϥεͷDPOTUSVDUPSఆٛʹ͍ͭͯ ‣ 1SPQT ϩδοΫͷॲཧ݁Ռ Λͱʹ-$POTUSVDU $GO9YY ੜ
$POTUSVDU*%z3FTPVSDFz ύϥϝʔλܾఆͷॲཧQSJWBUFϝιουʹΓ͚ͯ0,
&YBNQMF -$POTUSVDU w -$POTUSVDUΫϥεͷDPOTUSVDUPSఆٛʹ͍ͭͯ ‣ σϑΥϧτηοτɾؔ࿈Ϧιʔεͷࣗಈੜ 1SPQTͰ͞Ε͍ͯͨΒͦΕΛ͏ "84αʔϏεͱͯ͠ਪ͖͢ઃఆ͕ͳ͚Ε$%,ଆͰσϑΥϧτͷηοτͤͣɺ
$MPVE'PSNBUJPOͷσϑΥϧτʹͤΔ͜ͱͷํ͕ଟ͍
&YBNQMF -$POTUSVDU w -$POTUSVDUΫϥεͷDPOTUSVDUPSఆٛʹ͍ͭͯ ‣ όϦσʔγϣϯ 5PLFOJT6OSFTPMWFE ͰτʔΫϯΛνΣοΫ͠ɺτʔΫϯόϦσʔγϣϯ͠ͳ͍
IUUQTBXTBNB[PODPNKQCVJMEFST fl BTIDELWBMJEBUJPO ֤छόϦσʔγϣϯख๏ʹՃ͑ɺτʔΫϯͱԿ͔ॻ͍͍ͯ·͢ʂ
&YBNQMF -$POTUSVDU w -$POTUSVDUΫϥεͷϝιουఆٛʹ͍ͭͯ ‣ ಡΈࠐΈ༻Ϧιʔε 6OPXOFE3FTPVSDFT ͷͨΊͷTUBUJDGSPNϝιου 6OPXOFE3FTPVSDFT GSPN&YBNQMF"UUSJCVUFT
&YBNQMF"UUSJCVUFT GSPN&YBNQMF"SO GSPN-PPLVQ GSPN&YBNQMF*% GSPN&YBNQMF/BNF GSPN&YBNQMF9Z[ "84ΞΧϯτ &YBNQMF Ϧιʔε औಘ ͢ ͢ "3/ *% /BNF 9Z[ ࣮ࡍͷϦιʔεใ ٖࣅ$POTUSVDUੜ ಡΈࠐΈ༻ ˞͜ͷߏʹԊ͍ͬͯͳ͍έʔε͋Δ FH4FDVSJUZ(SPVQ
&YBNQMF -$POTUSVDU w -$POTUSVDUΫϥεͷϝιουఆٛʹ͍ͭͯ ‣ GSPN9YY"UUSJCVUFTϝιουͰಡΈࠐΈ༻ΫϥεఆٛΠϯελϯεฦ٫
&YBNQMF -$POTUSVDU w -$POTUSVDUΫϥεͷϝιουఆٛʹ͍ͭͯ ‣ GSPN9YY"UUSJCVUFTϝιουͰಡΈࠐΈ༻ΫϥεఆٛΠϯελϯεฦ٫ #BTFΫϥεΛFYUFOET ͘͠*9YYܕΛJNQMFNFOUT 3FTPVSDFΫϥεΛFYUFOET
㾎#BTFΫϥε͕͋Δͱ#BTFΫϥεͰఆٛͨ͠ϝιουͳͲΛ࠶ར༻Ͱ͖Δ 㾎͜ΕʹΑΓಡΈࠐΈ༻ϦιʔεͰHSBOUϝιουͳͲ͕ݺΔ ϝιουͦΕΛ*9YYܕͷٖࣅ$POTUSVDU ಡΈࠐΈ༻ ͱͯ͠ฦ͢
&YBNQMF -$POTUSVDU w -$POTUSVDUΫϥεͷϝιουఆٛʹ͍ͭͯ ‣ ྻϓϩύςΟͳͲʹΠϯελϯεॳظԽޙʹՃ͢ΔBEEϝιου -$POTUSVDUʹϝιουݺͼग़͠ޙʹԆ࣮ߦ͞ΕΔʮ-B[ZʯͰ͢
&YBNQMF -$POTUSVDU w -$POTUSVDUΫϥεͷϝιουఆٛʹ͍ͭͯ ‣ QSJWBUFϝιου ॲཧ͕ͯ͘·ͱΊ͍ͨɺ࠶ར༻͍ͨ͠ ‣ ศརܥϝιου
˞HSBOUNFUSJDϝιουಡΈࠐΈ༻ΫϥεͰ͍͍ͨͷͰجຊ#BTFଆͰ࣮
None
None
˞ຊηογϣϯͷհྫͱগ͠ҟͳΓ·͢ IUUQTHJUIVCDPNBXTBXTDELCMPCWQBDLBHFT!BXTDELFYBNQMFDPOTUSVDUMJCSBSZMJCFYBNQMFSFTPVSDFUT
$%,͕֤ϓϩάϥϛϯάݴޠͰಈ͘Έ $%,Ϣʔβ ߏఆٛ ෦ॲཧ ֤$POTUSVDUΫϥε 5ZQF4DSJQU ֤$POTUSVDUΫϥε ߏఆٛ 1ZUIPO༻ +BWB༻
(P༻ $༻ 5ZQF4DSJQU༻ +BWB4DSJQU༻ ͖ͳݴޠ Ͱ༻ ߏఆ͔ٛΒ෦ॲཧݺͼग़͠ ߏఆ͚֤ٛͩݴޠʹࣗಈม $%,ίϯτϦϏϡʔτͷൣғ HJUIVCDPNBXTBXTDEL ଞݴޠͰ࣮ͷ߹$%,࣮ߦʹ /PEFKTϥϯλΠϜ͕ඞཁ ˞֤ݴޠʹม͢ΔͨΊ 5ZQF4DSJQUݻ༗ͷܕදݱ/( ˞֤ݴޠʹม͠ͳ͍ͨΊ 5ZQF4DSJQUݻ༗ͷ࣮0, KTJJίϯύΠϥ "84ଟݴޠมπʔϧ ʰKTJJʱ HJUIVCDPNBXTKTJJ KTJJϥϯλΠϜ /PEFKTϓϩηε $%,ެ։࣌ 044ଆ $%,࣮ߦ࣌ Ϣʔβଆ τϥϯεύΠϧ
એɿࣗ࡞πʔϧOSSͷ͝հ
ࣗ࡞044"84πʔϧ ʲDMTʳ4όέοτΛߴʹআɾۭʹ͢Δπʔϧ ‣ IUUQTHJUIVCDPNHPUPLDMT ʲEFMTUBDLʳ"84$MPVE'PSNBUJPOελοΫڧ੍আπʔϧ ‣ IUUQTHJUIVCDPNHPUPLEFMTUBDL ʲMBNWFSʳ-BNCEBϥϯλΠϜόʔδϣϯݕࡧπʔϧ ‣ IUUQTHJUIVCDPNHPUPLMBNWFS
ࣗ࡞044"84πʔϧ ʲDMTʳ4όέοτΛߴʹআɾۭʹ͢Δπʔϧ ରͰݕࡧͯ͠ɺෳόέοτฒྻҰׅআʂ ඇݱߦόʔδϣϯͷΈআՄೳʂࠓͷ45BCMFTͷআʹରԠʂ
ࣗ࡞044"84πʔϧ ʲEFMTUBDLʳ"84$MPVE'PSNBUJPOελοΫڧ੍আπʔϧ $'OআͰࣦഊ͢ΔϦιʔε͕͋ͬͯελοΫϦιʔε͝ͱڧ੍আʂ ରͰݕࡧͯ͠ɺෳελοΫҰׅআՄೳʂ ґଘؔΛՃຯͯ͠৽͍͠ͷ͔Βॱʹআ
ࣗ࡞044"84πʔϧ ʲMBNWFSʳ-BNCEBϥϯλΠϜόʔδϣϯݕࡧπʔϧ ϦʔδϣϯԣஅݕࡧʂશબϑΟϧλϦϯάՄʂ $47ग़ྗΦϓγϣϯ͋Γʂ
ࣗ࡞044"84πʔϧ ʲMBNWFSʳ-BNCEBϥϯλΠϜόʔδϣϯݕࡧπʔϧ ϦʔδϣϯԣஅݕࡧʂશબϑΟϧλϦϯάՄʂ $47ग़ྗΦϓγϣϯ͋Γʂ
ࣗ࡞044"84$%,$POTUSVDUϥΠϒϥϦ ʲJNBHFTDBOOFSXJUIUSJWZʳ$%,Ͱ5SJWZͰίϯςφΠϝʔδεΩϟϯ ‣ IUUQTDPOTUSVDUTEFWQBDLBHFTJNBHFTDBOOFSXJUIUSJWZ ʲJNBHFTDBOOFSXJUIEPDLMFʳ$%,Ͱ%PDLMFͰίϯςφΠϝʔδεΩϟϯ ‣ IUUQTDPOTUSVDUTEFWQBDLBHFTJNBHFTDBOOFSXJUIEPDLMF ʲFMCPUIFSYYBMBSNʳ$%,ͰϚΠφʔͳYY
ͷ&-#ΞϥʔϜ ‣ IUUQTDPOTUSVDUTEFWQBDLBHFTJNBHFTDBOOFSXJUIEPDLMF
5IBOL:PV LHPUP "84%FW5PPMT)FSP 9!@TUFQ@UFDI (JU)VC!HPUPL