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
Swift Reflection
Search
[email protected]
January 20, 2023
Programming
1
270
Swift Reflection
About Swift Reflection Pitch
[email protected]
January 20, 2023
Tweet
Share
More Decks by
[email protected]
See All by
[email protected]
TSPLのすすめ
shiz
1
160
Swift compiler 101 & How async function works
shiz
0
54
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
300
複雑さに立ち向かうための ソフトウェア開発入門
shiz
3
2k
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
5
15k
(非公開スライド追加)座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
1
640
複雑さに立ち向かうためのコードリーディング入門
shiz
35
14k
Swift Observation
shiz
5
890
Swift Concurrency Next Step
shiz
7
8.6k
Other Decks in Programming
See All in Programming
FlutterKaigi 2025 システム裏側
yumnumm
0
810
組織もソフトウェアも難しく考えない、もっとシンプルな考え方で設計する #phpconfuk
o0h
PRO
10
4.1k
JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 / Learning Post-Quantum Crypto Basics from JEP 496 & 497
mackey0225
2
200
CSC509 Lecture 09
javiergs
PRO
0
290
Dive into Triton Internals
appleparan
0
490
AIの弱点、やっぱりプログラミングは人間が(も)勉強しよう / YAPC AI and Programming
kishida
9
3.9k
Kotlin 2.2が切り拓く: コンテキストパラメータで書く関数型DSLと新しい依存管理のかたち
knih
0
420
SidekiqでAIに商品説明を生成させてみた
akinko_0915
0
130
Core MIDI を勉強して作曲用の電子ピアノ作ってみた!
hypebeans
0
110
Kotlinで実装するCPU/GPU 「協調的」パフォーマンス管理
matuyuhi
0
380
KoogではじめるAIエージェント開発
hiroaki404
1
450
2026年向け会社紹介資料
misu
0
160
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Site-Speed That Sticks
csswizardry
13
960
The Language of Interfaces
destraynor
162
25k
Designing Experiences People Love
moore
142
24k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
A designer walks into a library…
pauljervisheath
210
24k
Designing for Performance
lara
610
69k
RailsConf 2023
tenderlove
30
1.3k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Six Lessons from altMBA
skipperchong
29
4.1k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
Transcript
ϦϑϨΫγϣϯ 3FGMFDUJPO Θ͍Θ͍TXJGUD TIJ[
·ͩ1JUDIஈ֊ͷใͳͷͰมΘ ΔՄೳੑ͋Γ ͳ͘ͳΔՄೳੑ ࣌ͷใ
֓ཁ
ϦϑϨΫγϣϯͱʁ w ϓϩάϥϜͷதͰͦͷϓϩάϥϜʹؚ·ΕΔܕมϝιουͷϝλใΛ ࢀরૢ࡞Ͱ͖ΔΑ͏ʹ͢ΔΈ w ݴޠઃܭࣗମΛมߋ͢Δ͜ͱͳ͘ɺݴޠΛ࣮ߦ࣌ʹಈతʹมߋͰ͖Δ ֓ཁϦϑϨΫγϣϯͱʁ IUUQTYUFDIOJLLFJDPNJUBSUJDMF,FZXPSE ˞ϝλใσʔλͦͷͷͰͳ͘ɺͦͷσʔλΛઆ໌͢Δใ ଳใ
σʔλ ϝλใ ໊લ ܕใ IUUQTXBJJJOGPXPSEIUNM
.JSSPSTUSVDU w 4XJGUͰϦϑϨΫγϣϯΛ࣮ߦ͢ΔͨΊͷ"1*Λఏڙ͢ΔTUSVDU w 4XJGUFWPMVUJPOͷϓϩηε͕࢝·Δલ͔Β͋ͬͨݹ͍ػೳ ֓ཁ4XJGUͷϦϑϨΫγϣϯ .JSSPS ग़ྗ݁Ռ GJFME/BNF0QUJPOBM OBNF
GJFME7BMVF4QBSLZ GJFME5ZQF4USJOH GJFME/BNF0QUJPOBM BHF GJFME7BMVF GJFME5ZQF*OU IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOTXJGUNJSSPS
.JSSPSͷ
.JSSPSͰͰ͖ͳ͍͜ͱ .JSSPSͰͰ͖ͳ͍͜ͱ ϝλλΠϓ͔Βܕใ͕औಘͰ͖ͳ͍ DBTF໊Λऔಘ͢Δखஈ͕ͳ͍ δΣωϦοΫҾ͔Β۩ମతͳϝλใΛऔಘͰ͖ͳ͍ "OZ)BTIBCMFʹมՄೳ͔Θ͔Βͳ͍ͷͰΤϥʔ
.JSSPSͰͰ͖ͳ͍͜ͱ w Πϯελϯε͕ͳ͍ͱܕใ͕Θ͔Βͳ͍ w நԽͨ͠ܕ͔Β࣮ࡍͷܕͷใΛऔΓग़ͤͳ͍ .JSSPSͰͰ͖ͳ͍͜ͱ $VTUPN4USJOH$POWFSUJCMFʹ४ڌ ࣮ίϯύΠϥ ͬͱ৭Μͳ͜ͱΛ͍ͬͯΔ
ఏҊ༰ IUUQTGPSVNTTXJGUPSHUQJUDISF fl FDUJPO
3FGMFDUJPOϞδϡʔϧ w ϦϑϨΫγϣϯΛ࣮ߦ͢ΔͨΊͷߴϨϕϧͷ"1*Λఏڙ͢ΔϞδϡʔϧ w طଘͷ.JSSPSΑΓϦϑϨΫγϣϯΛΑΓ؆୯ʹΑΓૢ࡞͘͢͢͠Δ w ։ൃऀ͜Ε·ͰΑΓ͔ͳΓଟ͘ͷϦϑϨΫγϣϯใΛऔಘͰ͖Δ ఏҊ༰3F fl FDUJPOϞδϡʔϧ
.JSSPSΛ֦ு͠ͳ͍ཧ༝ .JSSPS4XJGUϞδϡʔϧʹ͋ΔɻϦϑϨΫγϣϯશͯͷ։ൃऀ͕ඞཁͳ ༁Ͱͳ͍ɻ4XJGUϞδϡʔϧ$PSFͷ"1*͚ͩஔ͖͘ .JSSPSͷݱࡏͷઃܭɺࠓճఏҊ͍ͯ͠Δ"1*ͷઃܭʹͳ͍͍͔ͭ͘ͷύ ϑΥʔϚϯεͷΛղܾ͢Δͷʹద͍ͯ͠Δɻ۩ମతʹΠϯελϯεͷ Λऔಘ͢Δ࣌ʹɺDIJMESFOͷϑΟʔϧυͷܕଈ࣌ʹ FBHBSMZ σϚϯάϧ
͢ΔɻࠓճͷఏҊͷ߹ɺҰͭͷܕใͷΈཉ͍͠߹Ԇͯ͠ MB[JMZ Ұ ͚ͭͩऔಘ͍ͨ͠έʔε͕͋ΔͷͰ߹͍ͬͯͳ͍ ݹ͍"1*Ͱ4XJGUFWPMVUJPOͷϓϩηεΛܦ͍ͯͳ͍ɻࠓճɺ"1*ͷ࠷దͳܗ Λݟ͚ͭΔͨΊʹίϛϡχςΟͷϑΟʔυόοΫΛΒ͏ػձΛઃ͚Δ ఏҊ༰3F fl FDUJPOϞδϡʔϧ.JSSPSΛ֦ு͠ͳ͍ཧ༝
ར༻Πϝʔδ ఏҊ༰3F fl FDUJPOϞδϡʔϧར༻Πϝʔδ 3F fl FDUJPOϞδϡʔϧΛJNQPSU ϝλใ͔Β5ZQFܕΛ࡞ ϑΟʔϧυ͔Β৭ʑͳใΛऔಘͰ͖Δ
ར༻Πϝʔδ ఏҊ༰3F fl FDUJPOϞδϡʔϧར༻Πϝʔδ $BTFܕΛੜ ϓϩύςΟ͔Β৭ʑͳใΛऔಘͰ͖Δ
ར༻Πϝʔδ ఏҊ༰3F fl FDUJPOϞδϡʔϧར༻Πϝʔδ δΣωϦοΫҾͷใΛऔಘ Կ͔ͷ"SSBZͰ͋Δ͔͚ͩΛݟ͍ͯΔ %JDUJPOBSZͰ͋Δ͔͚ͩΛݟ͍ͯΔ
࣮ৄࡉ ఏҊ༰࣮ৄࡉ
ఏҊ༰࣮ৄࡉܕҰཡ 5ZQFTUSVDU 3F fl FDUJPOϞδϡʔϧͷϝΠϯΤϯτϦϙΠϯ τɻBTͷӈଆʹॻ͚Δ͋ΒΏΔܕΛද͢͜ͱ͕ Ͱ͖Δ 'JFMETUSVDU TUSVDUͷ֨ೲϓϩύςΟ DMBTTͷ֨ೲϓϩύςΟ
λϓϧͷݸʑͷཁૉ $BTFTUSVDU FOVNͷݸʑͷDBTF 1BSUJBM5ZQFTUSVDU (FOFSJDͳܕͷϥοϓ͍ͯ͠Δ෦ ྫ"SSBZ*OUͷ"SSBZ ܕҰཡ
5ZQFTUSVDU w 3F fl FDUJPOϞδϡʔϧͷϝΠϯΤϯτϦϙΠϯτ w 4XJGUͰBTͷӈଆʹॻ͚Δ͋ΒΏΔܕΛද͢͜ͱ͕Ͱ͖Δ ఏҊ༰࣮ৄࡉ5ZQFTUSVDU 4XJGUͷϝλλΠϓʹ࠶ͼม
'JFMETUSVDU w TUSVDU·ͨDMBTTʹ֨ೲ͞ΕͨϓϩύςΟɺ·ͨλϓϧͷཁૉ ఏҊ༰࣮ৄࡉ'JFMETUSVDU
$BTFTUSVDU w FOVNͷDBTFͷҰͭΛද͢ ఏҊ༰࣮ৄࡉ$BTFTUSVDU
1BSUJBM5ZQFTUSVDU w (FOFSJDͳܕͷϥοϓ͍ͯ͠Δ෦Λද͢ ఏҊ༰࣮ৄࡉ1BSUJBM5ZQFTUSVDU
WBSQBSUJBM1BSUJBM5ZQF \HFU^ ఏҊ༰࣮ৄࡉ1BSUJBM5ZQFTUSVDU
GVODDSFBUF XJUI5ZQF 5ZQF ఏҊ༰࣮ৄࡉ1BSUJBM5ZQFTUSVDU 1BSUJBM5ZQF͔Β৽͍͠4XJGUͷܕͷΠϯελϯεੜͰ͖Δ <*OU 4USJOH %PVCMF "SSBZ'MPBU> "*OU
#4USJOH $%PVCMF %"SSBZ'MPBU δΣωϦοΫҾͷํ֎ଆ͔ΒͯΊΒΕΔ
কདྷͷݕ౼ࣄ߲ ఏҊ༰কདྷͷݕ౼ࣄ߲
3VOUJNFϞδϡʔϧ ఏҊ༰কདྷͷݕ౼ࣄ߲3VOUJNFϞδϡʔϧ w ϦϑϨΫγϣϯػೳΛఏڙ͢ΔͨΊʹ4XJGU3VOUJNFͷϧʔνϯσʔλ ߏ͕ඞཁ͕ͩɺ΄ͱΜͲͷ։ൃऀ͜͏͍ͬͨػೳΛૢ࡞͢Δ͜ͱ ͳ͍ w ͦ͜Ͱ3VOUJNFͱ௨৴͢Δઐ༻ϞδϡʔϧΛઃ͚͔ͯͳΓϨϕϧͷ"1*Λఏ ڙ͢Δ
ྑ͍͜ͱ w 3F fl FDUJPOϞδϡʔϧͷΑ͏ͳߴϨϕϧͷ"1*Λߏங͘͢͠Δ w Ϩϕϧͷػೳͷ࠶࣮͢Δ͜ͱͰѱ༻Ͱ͖ͳ͍Α͏ʹ͢Δ
ΑΓଟ͘ͷϦϑϨΫγϣϯใͷఏڙ ఏҊ༰কདྷͷݕ౼ࣄ߲ΑΓଟ͘ͷϦϑϨΫγϣϯใͷఏڙ w ଐੑؔɺܭࢉϓϩύςΟ DPNQVUFEQSPQFSUZ ͷใऔಘͰ͖ͳ͍ w ఏڙͰ͖Δ͕ίʔυαΠζ͕૿͑ΔͷͰίετͱൺֱͯ͠ݕ౼͢Δ
ؔ࿈ػೳ ؔ࿈ػೳ
0QU*O3FGMFDUJPO.FUBEBUB w 3F fl FDUBCMFͱ͍͏৽͍͠ϚʔΧʔϓϩτίϧΛՃͯ͠ίϯύΠϧ࣌νΣο ΫͰ͖ΔΑ͏ʹͯ͠ɺϦϑϨΫγϣϯϝλσʔλ ໊લͳͲͷจࣈྻใ ΛΑ Γܕ҆શͰηΩϡΞʹѻ͑ΔΑ͏ʹ͢Δ w
ඞཁͳͷʹ͚ͩϦϑϨΫγϣϯσʔλΛग़ྗ͢ΔͷͰόΠφϦαΠζΛޮ ԽͰ͖Δ w ϦϑϨΫγϣϯϝλσʔλͷग़ྗΦϑʹͯ͠͠·͍ ͦ͏͍͏ϑϥά͕͋Δ ɺ ͜ΕΛ͍ͬͯΔػೳ͕ಈ͔ͳ͘ͳΔͱ͍͏ϦεΫ͕ͳ͘ͳΔ 4XJGU6*ͳͲ ؔ࿈ػೳ0QU*O3F fl FDUJPO.FUBEBUB IUUQTGPSVNTTXJGUPSHUTFPQUJOSF fl FDUJPONFUBEBUB
$VTUPN.FUB"UUSJCVUFT w ϥΠϒϥϦͰΧελϜͷϝλσʔλΛఆٛͰ͖Α͏ʹ͢ΔɻͦΕΛ࣮ߦ࣌ʹ ୳ͯ͠Կ͔Ͱ͖ΔΑ͏ʹ͢Δ w ৽͍͠!SVOUJNF.FUBEBUBΛՃ w ͜ͷଐੑ͕͍ͨܕΧελϜଐੑͱͯ͠༻Ͱ͖Δ ՃͷҾࢦఆͰ͖ Δ
w ϦϑϨΫγϣϯ"1*ͰಛఆͷΧελϜଐੑ͕͍ͨͯ͢ͷએݴΛऩूͰ͖Δ w Ϣʔεέʔεಛఆͷଐੑͷ͍ͨςετͷΈΛ࣮ߦ͢ΔͳͲ IUUQTGPSVNTTXJGUPSHUQJUDIDVTUPNNFUBEBUBBUUSJCVUFT ؔ࿈ػೳ$VTUPN.FUB"UUSJCVUFT