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 Concurrency
Search
[email protected]
September 07, 2022
Programming
1
440
そろそろSwift Concurrency
Talk about Swift Concurrency at TechFeed Experts Night
[email protected]
September 07, 2022
Tweet
Share
More Decks by
[email protected]
See All by
[email protected]
複雑さに立ち向かうための ソフトウェア開発入門
shiz
3
1k
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
5
11k
(非公開スライド追加)座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
1
250
複雑さに立ち向かうためのコードリーディング入門
shiz
35
13k
Swift Observation
shiz
5
760
Swift Reflection
shiz
1
170
Swift Concurrency Next Step
shiz
7
7.4k
Hello, Swift Concurrency world.の振り返り / Looking back on Hello, Swift Concurrency world.
shiz
0
120
Hello, Swift Concurrency world.
shiz
9
5.1k
Other Decks in Programming
See All in Programming
テスト駆動開発✅️
akitoshiga
1
150
ACES Meet におけるリリース作業改善の取り組み
fukucheee
0
150
20241004 モノタロウ式~ドメインモデリングとリアーキテクチャ
monotaro
PRO
2
650
書籍『LangChainとLangGraphによるRAG・AIエージェント[実践]入門』の紹介
os1ma
2
120
フロントエンドの現在地とこれから
koba04
10
4.6k
Quarto Clean Theme
nicetak
0
220
NEWTにおけるiOS18対応の進め方
ryu1sazae
0
330
rtcamp 10 (vk-illuminati)
yumcyawiz
1
210
(Deep|Web) Link support with expo-router
mrtry
0
190
GPU Hash Table | レイトレ合宿10
yknishidate
0
120
Subclassing, Composition, Python, and You
hynek
3
190
4年間変わらなかった YOUTRUSTのアーキテクチャ
daiki1003
2
670
Featured
See All Featured
Navigating Team Friction
lara
183
14k
Designing the Hi-DPI Web
ddemaree
280
34k
How STYLIGHT went responsive
nonsquared
95
5.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.5k
Designing for Performance
lara
604
68k
Code Review Best Practice
trishagee
63
17k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.6k
Optimizing for Happiness
mojombo
375
69k
Visualization
eitanlees
143
15k
Docker and Python
trallard
40
3k
The Cost Of JavaScript in 2023
addyosmani
43
5.9k
The Invisible Side of Design
smashingmag
297
50k
Transcript
TIJ[ 5FDI'FFE&YQFSUT/JHIU ͦΖͦΖ4XJGU$PODVSSFODZ
4XJGUݴޠΨΠυຊޠ൛ TXJGUPSH 4XJGUʹ͍ͭͯهࡌ ໊લTIJ[ ͣ͠ J04ΤϯδχΞJOԬ !TU[O
4XJGU$PODVSSFODZ w 4XJGUͰొͨ͠ݴޠػೳ w ඇಉظॲཧΛಉظॲཧͱಉ͡Α͏ͳܗͰѻ͑Δ "TZODBXBJU w ෳͷඇಉظॲཧΛߏԽͯ͠ಉ࣌ฒྻʹ࣮ߦͰ͖Δ 4USVDUVSFE$PODVSSFODZ
w ϚϧνεϨουؒͰͷσʔλڝ߹Λ͛Δ "DUPS
4XJGU$PODVSSFODZͷͭͷجຊػೳ w "TZODBXBJU w 4USVDUVSFEDPODVSSFODZ w "DUPS
"TZODBXBJU "TZODBXBJU
"TZODBXBJUͱʁ w ಉ࣌ฒߦॲཧͷϒϩοΫΛߏங͢Δ w ϒϩοΫ෦ͰॲཧΛதஅͯ͠ผͷඇಉظॲཧΛݺͼग़͢͜ͱ ͕Ͱ͖Δ w ͦΕ·Ͱͷ࣮ߦεϨουΛҰख์͠ɺͦͷεϨουଞͷ ॲཧΛ࣮ߦͰ͖Δ w
ݺͼग़ͨ͠ඇಉظॲཧͷ݁ՌΛػ͔ͯ͠ΒॲཧΛ࠶։͢Δ "TZODBXBJU"TZODBXBJUͱʁ
BTZOD ݺͼग़͠ ਤͰݟΔ"TZODBXBJU "TZODBXBJU εϨου
BTZOD BXBJU BTZOD ݁ՌΛػ ਤͰݟΔ"TZODBXBJU "TZODBXBJU
ଞͷॲཧΛ࣮ߦͰ͖Δ BTZOD BXBJU தஅ BTZOD ݁ՌΛػ ਤͰݟΔ"TZODBXBJU "TZODBXBJU
BTZOD BTZOD BXBJU ݁ՌΛऔಘ BTZOD ࠶։ ਤͰݟΔ"TZODBXBJU "TZODBXBJU
࠶։લͱಉ͡εϨουͱݶΒͳ͍ BTZOD BXBJU BTZOD 㱠 ࠶։ ਤͰݟΔ"TZODBXBJU "TZODBXBJU
ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU ίʔϧόοΫܗࣜ
ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU
ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU
"TZODBXBJU ίʔυͰݟΔ"TZODBXBJU
ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU
ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU
ࣗવͳྲྀΕ ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU
ࣗવͳྲྀΕ BTZODɺBXBJU͕ͳ͍ͱίϯύΠϧΤϥʔ ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU
ؔͷείʔϓΛൈ͚ͨޙʹ࣮ߦ͞ΕΔ ࣗવͳྲྀΕ BTZODɺBXBJU͕ͳ͍ͱίϯύΠϧΤϥʔ ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU
ؔͷείʔϓΛൈ͚ͨޙʹ࣮ߦ͞ΕΔ ؔͷείʔϓͰͯ݁͢͢Δ ࣗવͳྲྀΕ BTZODɺBXBJU͕ͳ͍ͱίϯύΠϧΤϥʔ ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU
ؔͷείʔϓΛൈ͚ͨޙʹ࣮ߦ͞ΕΔ ؔͷείʔϓͰͯ݁͢͢Δ ࣗવͳྲྀΕ BTZODɺBXBJU͕ͳ͍ͱίϯύΠϧΤϥʔ Γ௨ৗͷܕ ίʔυͰݟΔ"TZODBXBJU "TZODBXBJU
4USVDUVSFE DPODVSSFODZ 4USVDUVSFEDPODVSSFODZ
5BTL w 4XJGU$PODVSSFODZͷॲཧͷجຊ୯Ґ w 5BTL୯ҐͰ࣮ߦঢ়گؔ࿈σʔλΛཧ ϩʔΧϧมɺΩϟϯηϧॲཧɺBTZODίʔυͷ։࢝தஅͳͲ BTZOD BXBJU BTZOD
5BTL BTZOD BXBJU BTZOD 5BTL BTZOD BXBJU BTZOD 5BTL 4USVDUVSFEDPODVSSFODZ5BTL
4USVDUVSFEDPODVSSFODZͱʁ w BTZODBXBJUΛͬͯෳͷॲཧΛಉ࣌ฒྻʹ࣮ߦ͢Δ w 5BTLؒͰ֊ߏΛߏஙͯ͠ɺඇಉظॲཧͷػΩϟϯη ϧॲཧͳͲΛ͜ͷ֊Ͱͯ݁ͤ͢͞Δ BTZOD 5BTL BTZOD 5BTL
5BTL 4USVDUVSFEDPODVSSFODZ4USVDUVSFEDPODVSSFODZͱʁ
BTZODMFU 63-4FTTJPOEBUBϝιου IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOGPVOEBUJPOVSMTFTTJPOEBUB 4USVDUVSFEDPODVSSFODZBTZODMFU
BTZODMFU BTZODMFUͷӈลʹBXBJUΛ͚ͳ͍߹݁ՌΛػ͠ͳ͍ BXBJU 4USVDUVSFEDPODVSSFODZBTZODMFU
BTZODMFU 4USVDUVSFEDPODVSSFODZBTZODMFU
BTZODMFU USZBXBJUͰ݁ՌΛػ 4USVDUVSFEDPODVSSFODZBTZODMFU
BTZODMFU BTZODMFUͷݺͼग़͠ݩλεΫ BTZODMFU͔Β࡞͞ΕͨλεΫࢠλεΫ ࢠλεΫ͕શ෦ྃ͢Δ·ͰλεΫྃ͠ͳ͍ 4USVDUVSFEDPODVSSFODZBTZODMFU λεΫΛΩϟϯηϧ͢ΔͱࢠλεΫΩϟϯηϧঢ়ଶʹͳΔ ʜͳͲ
֎ଆͷ5BTL͔Βಠཱͨ͠5BTLΛ࡞ 6OTUSVDUVSFEDPODVSSFODZ w पΓͷ5BTL͔Βಠཱͨ͠5BTLΛੜ͢Δ w ݁ՌͷػΩϟϯηϧखಈͰ࣮ߦ͢Δඞཁ͕͋Δ w 5BTLJOJUͱ5BTLEFUBDIFE͕͋Δ ಠཱͷ߹͍͕ҟͳΔ BTZOD
5BTL BTZOD 5BTL 5BTL 4USVDUVSFEDPODVSSFODZ6OTUSVDUVSFEDPODVSSFODZ
"DUPS "DUPS
"DUPSͱʁ w Ұʹͭͷ5BTLͷΈ͕෦ঢ়ଶΛૢ࡞Ͱ͖ΔΑ͏ʹͯ͠ɺෳε Ϩου͔Βͷಉ࣌ಡΈॻ͖ʹΑΔσʔλڝ߹Λ͙ BTZOD 5BTL BDUPS 5BTL 5BTL BTZOD
BTZOD σʔλڝ߹ෳεϨου͔Βಉ͡σʔλಡΈॻ͖Λಉ࣌ʹߦͬͨ݁Ռɺෆਖ਼ͳΛऔಘ͠ ͯ͠·ͬͨΓɺΫϥογϡ͢ΔՄೳੑͷ͋Δঢ়ଶ "DUPS"DUPSͱʁ
DMBTTͰσʔλڝ߹͕ൃੜ͢Δ 4XJGUͷDMBTTࢀরܕ ෦ঢ়ଶෳεϨουʹڞ༗͞ΕΔՄೳੑ͕͋Δ "DUPSσʔλڝ߹
DMBTTͰσʔλڝ߹͕ൃੜ͢Δ λΠϛϯά࣍ୈͰظ͠ͳ͍݁ՌʹͳΔ ग़ྗ݁Ռ
˞5BTLEFUBDIFEͰಠཱͨ͠λεΫΛ࡞͢Δ "DUPSσʔλڝ߹
"DUPSͩͱσʔλڝ߹͕ൃੜ͠ͳ͍ "DUPSσʔλڝ߹
"DUPSͩͱσʔλڝ߹͕ൃੜ͠ͳ͍ ݁Ռৗʹظ௨Γ ग़ྗ݁Ռ "DUPSσʔλڝ߹
"DUPSͷੑ࣭ ෦ঢ়ଶ"DUPSͰकΒΕ͍ͯΔ 📬 🤏 ✉ ✉ ✉ w ҰʹҰͭͷλεΫͷΈ࣮ߦ͢Δ w
"DUPSͦΕͧΕ֎ͷੈք͔Βִ͞Ε͍ͯΔ "DUPS֎ "DUPS "DUPS"DUPSͷੑ࣭
"DUPSؒͷભҠͷίετ "DUPS "DUPS w "DUPSؒͷભҠʹίετ͕͔͔Δ "DUPSҙ 💸
7JFX.BJO"DUPS BDUPS .BJO"DUPS 7JFX 7JFX.PEFM ❌ w 7JFX.PEFMΛBDUPSʹ͢Δͱ"DUPSؒͰͷεΠον͕ൃੜ͢Δ "DUPSҙ 💸
7JFX.PEFMΛ.BJO"DUPSʹ͢Δ w ಉ͡"DUPSͷॲཧʹͳΔ !.BJO"DUPSDMBTT .BJO"DUPS 7JFX 7JFX.PEFM ⭕ "DUPSҙ 🪙
4XJGU$PODVSSFODZ w "TZODBXBJU w 4USVDUVSFEDPODVSSFODZ w "DUPS
͋Γ͕ͱ͏͍͟͝·ͨ͠
ೖʹ͓͢͢Ί88%$ηογϣϯ w 4XJGU$PODVSSFODZղઆηογϣϯ .FFUBTZODBXBJUJO4XJGU🌟Ұ൪࠷ॳʹݟΔͷʹ͓͢͢Ί &YQMPSFTUSVDUVSFEDPODVSSFODZJO4XJGU 1SPUFDUNVUBCMFTUBUFXJUI4XJGUBDUPST w
ΑΓ෦ͷΈΛΔηογϣϯ 4XJGUDPODVSSFODZ#FIJOEUIFTDFOFT w ҰॹʹαϯϓϧΛϦϑΝΫλϦϯά͠ͳ͕ΒֶΔηογϣϯ 4XJGUDPODVSSFODZ6QEBUFBTBNQMFBQQ🌟طଘίʔυ͔ΒͷมΛҰาҰาֶΔ w ଞͷ'SBNFXPSLͱͷ࿈ܞํ๏ΛΔηογϣϯ #SJOH$PSF%BUBDPODVSSFODZUP4XJGUBOE4XJGU6* %JTDPWFSDPODVSSFODZJO4XJGU6* .BLFCMB[JOHGBTUMJTUTBOEDPMMFDUJPOWJFXT 6**NBHFͷ/FX"1*