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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
k.goto
March 13, 2025
Programming
1.5k
6
Share
AWS CDKにおけるL2 Constructの仕組み / aws-cdk-l2-construct
2025/03/13開催「JAWS-UG東京 IaC Night 〜入門から上級まで!AWSをコードで構築しよう〜」での登壇資料です。
k.goto
March 13, 2025
More Decks by k.goto
See All by k.goto
AWS CDK の目玉新機能「Mixins」とは / cdk-mixins
gotok365
2
570
AWS CDKの仕組み / how-aws-cdk-works
gotok365
17
5.3k
AWS CDK 実践的アプローチ N選 / aws-cdk-practical-approaches
gotok365
8
2.5k
TypeScript製IaCツールのAWS CDKが様々な言語で実装できる理由 ~他言語変換の仕組み~ / cdk-language-transformation
gotok365
10
1.5k
とあるEdTechベンチャーのシステム構成こだわりN選 / edtech-system
gotok365
7
910
CodePipelineのアクション統合から学ぶAWS CDKの抽象化技術 / codepipeline-actions-cdk-abstraction
gotok365
5
530
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
3
580
AWS CDKにおける「再利用性」を考える / aws-cdk-reusability
gotok365
8
3.7k
OSS活動のススメ / oss-activities
gotok365
5
1.8k
Other Decks in Programming
See All in Programming
Go_College_最終発表資料__外部公開用_.pdf
xe_pc23
0
140
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
240
飯MCP
yusukebe
0
490
まかせられるPM・まかせられないPM / DevTech GUILD Meetup
yusukemukoyama
0
110
iOS機能開発のAI環境と起きた変化
ryunakayama
0
170
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.7k
AI活用のコスパを最大化する方法
ochtum
0
380
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
230
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
3
370
Xdebug と IDE による デバッグ実行の仕組みを見る / Exploring-How-Debugging-Works-with-Xdebug-and-an-IDE
shin1x1
0
350
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
830
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
320
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
510
Crafting Experiences
bethany
1
110
WENDY [Excerpt]
tessaabrams
9
37k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
Thoughts on Productivity
jonyablonski
76
5.1k
A designer walks into a library…
pauljervisheath
211
24k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
680
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
180
sira's awesome portfolio website redesign presentation
elsirapls
0
210
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
Producing Creativity
orderedlist
PRO
348
40k
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