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.4k
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
17
4.8k
AWS CDK 実践的アプローチ N選 / aws-cdk-practical-approaches
gotok365
7
2k
TypeScript製IaCツールのAWS CDKが様々な言語で実装できる理由 ~他言語変換の仕組み~ / cdk-language-transformation
gotok365
10
1.1k
とあるEdTechベンチャーのシステム構成こだわりN選 / edtech-system
gotok365
7
820
CodePipelineのアクション統合から学ぶAWS CDKの抽象化技術 / codepipeline-actions-cdk-abstraction
gotok365
5
500
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
3
540
AWS CDKにおける「再利用性」を考える / aws-cdk-reusability
gotok365
8
3.5k
OSS活動のススメ / oss-activities
gotok365
5
1.5k
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
9
2.1k
Other Decks in Programming
See All in Programming
Cap'n Webについて
yusukebe
0
160
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
710
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
1
1k
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
470
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
160
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
3
770
Go コードベースの構成と AI コンテキスト定義
andpad
0
160
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
240
GoLab2025 Recap
kuro_kurorrr
0
2.6k
dchart: charts from deck markup
ajstarks
3
940
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
200
Featured
See All Featured
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
Why Our Code Smells
bkeepers
PRO
340
58k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
54
Between Models and Reality
mayunak
1
160
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
110
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
270
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Raft: Consensus for Rubyists
vanstee
141
7.3k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
49
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
230
Making Projects Easy
brettharned
120
6.5k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
410
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