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
20180619_Roppongi.pdf
Search
[email protected]
June 20, 2018
Programming
1
320
20180619_Roppongi.pdf
[email protected]
June 20, 2018
Tweet
Share
More Decks by
[email protected]
See All by
[email protected]
Swift compiler 101 & How async function works
shiz
0
17
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
220
複雑さに立ち向かうための ソフトウェア開発入門
shiz
3
1.4k
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
5
13k
(非公開スライド追加)座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
1
470
複雑さに立ち向かうためのコードリーディング入門
shiz
35
13k
Swift Observation
shiz
5
800
Swift Reflection
shiz
1
200
Swift Concurrency Next Step
shiz
7
7.9k
Other Decks in Programming
See All in Programming
WebDriver BiDiとは何なのか
yotahada3
1
150
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
250
バックエンドのためのアプリ内課金入門 (サブスク編)
qnighy
8
1.8k
Conform を推す - Advocating for Conform
mizoguchicoji
3
700
仕様変更に耐えるための"今の"DRY原則を考える
mkmk884
8
2.4k
『GO』アプリ データ基盤のログ収集システムコスト削減
mot_techtalk
0
130
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
53
18k
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
170
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
190
Writing documentation can be fun with plugin system
okuramasafumi
0
120
負債になりにくいCSSをデザイナとつくるには?
fsubal
10
2.5k
新宿駅構内を三人称視点で探索してみる
satoshi7190
2
110
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
32
6.4k
Six Lessons from altMBA
skipperchong
27
3.6k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
630
Side Projects
sachag
452
42k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Transcript
6*,JUʹΑΔ ύϑΥʔϚϯε্ࢦ ୈ̐ճ30110/(*TXJGU
6*,JUʹΑΔ ύϑΥʔϚϯε্ࢦ #Z"QQMF ୈ̐ճ30110/(*TXJGU
ࣗݾհ w TIJ[!TU[O w ॴͷडୗ։ൃձࣾۈ w 4XJGU "OESPJE LPUMJO +BWBTDSJQU
"OHVMBS OPEFKT $ +BWB 1)1 ཁ͙ͪΌ͙ͪΌ
4FTTJPO1SBDUJDBM"QQSPBDIFTUP(SFBU"QQ1FSGPSNBODF IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED 4FTTJPO*NBHFBOE(SBQIJDT#FTU1SBDUJDFT IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED 4FTTJPO)JHI1FSGPSNBODF"VUP-BZPVU IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED 4FTTJPO8IBUT/FXJO$PDPB5PVDI IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED ࢀߟࢿྉ
J04ͷվળ w 4DSPMMJOH w .FNPSZ w "VUP-BZPVU
4DSPMMJOHͷվળ
ϑϨʔϜམͪ w $FMM'PS3PX"U w MBZPVU4VCWJFXT w ESBX w d)[ඵ dNT
1SFGFUDI w J04Ͱొ w ηϧΛදࣔ͢ΔλΠϛϯάΑΓࣄલʹσʔλΛऔ ಘ w $16༻ͷҰ࣌తͳٸ૿Λ͑Δ IUUQTRJJUBDPNTIJ[JUFNTBFFEEBEGE
J04·Ͱͷ 1SFGFUDI w σʔλΛऔಘ͢ΔλΠϛϯάͱۙͷදࣔରηϧ ͷϩʔυॲཧ͕ॏͳΔ 88%$8IBUT/FXJO$PDPB5PVDI
J04ͷ1SFGFUDI w 1SFGFUDI͕ඃΒͳ͍Α͏ʹεέδϡʔϦϯά 88%$8IBUT/FXJO$PDPB5PVDI
·ͩ͋Δ w όοΫάϥϯυλεΫͳͲԿ͍ͯ͠ͳ͍࣌ʹΑ ΓϑϨʔϜ͕མͪΔ͜ͱ͕͋ͬͨ w $16ͷ্ཱ͕ͪΓ͕࣌ؒݪҼ ,FZOPUFͷ"QQ -BVODI w
Կͯ͠ͳ͍࣌ͳΔ͘$16ͷ༻͘ w ٸʹ্ཱ͕ͪΔ͜ͱͰ͖ͳ͍ ϑϨʔϜͷඳըʹؒ ʹ߹Θͳ͍
·ͩ͋Δ w όοΫάϥϯυλεΫͳͲԿ͍ͯ͠ͳ͍࣌ʹΑ ΓϑϨʔϜ͕མͪΔ͜ͱ͕͋ͬͨ w $16ͷ্ཱ͕ͪΓ͕࣌ؒݪҼ ,FZOPUFͷ"QQ -BVODI w
Կͯ͠ͳ͍࣌ͳΔ͘$16ͷ༻͘ w ٸʹ্ཱ͕ͪΔ͜ͱͰ͖ͳ͍ ϑϨʔϜͷඳըʹؒ ʹ߹Θͳ͍ 88%$8IBUT/FXJO$PDPB5PVDI
SBNQVQͷվળ w ϩʔϨϕϧͷ$16ίϯτϩʔϥʹԿ͕͍ͭى͖Δͷ ͔Λࣄલʹใୡ w $16ίϯτϩʔϥඞཁͳ$16ྔΛਪଌ͓͖ͯ͠ɺ ্ཱͪ͛ʹඋ͑Δɻ$16༻͕ଈ࠲ʹ্͕Δ 88%$8IBUT/FXJO$PDPB5PVDI
.FNPSZͷվળ
#V⒎FS w ࿈ଓͨ͠ϝϞϦྖҬ w ಉ͡αΠζಉ͡෦ߏΛ࣋ͬͨཁૉͷू·Γ 88%$*NBHFBOE(SBQIJDT#FTU1SBDUJDFT
*NBHF#V⒎FS w ͋Δը૾Λදݱͨ͠#V⒎FS w ֤ཁૉ͕̍ϐΫηϧͷಁա৭Λදݱ w αΠζը૾ͷαΠζ 88%$*NBHFBOE(SBQIJDT#FTU1SBDUJDFT
'SBNF#V⒎FS w *NBHF#V⒎FSͷҰछ w ֤7JFXͷϨϯμϦϯά݁ՌΛอ࣋ w ϋʔυΣΞͷը໘ʹd)[ඵͰө 88%$*NBHFBOE(SBQIJDT#FTU1SBDUJDFT
%BUB#V⒎FS w ը૾σʔλͷϝλใΛอ͍࣋ͯ͠Δ#V⒎FS w ը૾αΠζѹॖܗࣜ 1/(+1&(ͳͲ Λอ࣋ 88%$*NBHFBOE(SBQIJDT#FTU1SBDUJDFT
#BDLJOH4UPSF w σίʔυͨ͠*NBHF#V⒎FSΛ෦తʹอ࣋͢ΔྖҬ w อ࣋͢ΔϝϞϦΛফඅ w J04͔Βը૾ʹΘΕ͍ͯΔ৭ͳͲ͔Βඞཁͳα ΠζΛࣗಈܭࢉ ϝϞϦ༻ྔͷݮ
6**NBHF 6**NBHF7JFX ԿΛ͍ͯ͠Δͷ͔ʁ w 6**NBHF ը૾σʔλΛϩʔυ w 6**NBHF *NBHF#V⒎FSσʔλΛσίʔυ w
6**NBHF7JFX *NBHF#V⒎FSΛϨϯμϦϯά͠ɺ'SBNF#V⒎FS 88%$*NBHFBOE(SBQIJDT#FTU1SBDUJDFT
σίʔυ w $16ओಋ w σίʔυͨ͠σʔλ*NBHF#V⒎FSͱͯ͠อ࣋ w Ӭଓతʹେ͖ͳϝϞϦΞϩέʔγϣϯ w ૿͑ͯ͘Δͱ0VU0G.FNPSZʹɻɻɻ
EPXOTBNQMJOH w #V⒎FSʹอ࣋͞ΕΔσʔλͷαΠζΛࣄલͷখ͘͞ ͓ͯ͘͜͠ͱͰɺϝϞϦѹഭΛ͙
None
/%"ͷͨΊআ ࣸਅ͕ฒΜͩαϯϓϧ
None
None
ը૾Ϧιʔε w "TTFUTDBUBMPHͷ*NBHF"TTFUT w #VOEMFͷϑΝΠϧ w %PDVNFOUT$BDIFTσΟϨΫτϦͷϑΝΠϧ w /FUXPSL͔Β%PXOMPBE
ը૾Ϧιʔε w "TTFUTDBUBMPHͷ*NBHF"TTFUT w #VOEMFͷϑΝΠϧ w %PDVNFOUT$BDIFTσΟϨΫτϦͷϑΝΠϧ w /FUXPSL͔Β%PXOMPBE
*NBHF"TTFUT͕࠷ద w ໊લ͕ݕࡧʹ࠷దԽ w Ωϟογϡ͕࠷খ w ΠϯετʔϧσόΠεʹ߹ΘͤͯαΠζΛ࠷దԽ w 7FDUPS"SUXPSL͕׆༻Ͱ͖Δ
$VTUPN6*7JFX
͏͖͔ʁ
ESBXϝιουΛPWFSSJEF͢ ΔΑ͏ͳ$VTUPN7JFX ආ͚ͨํ͕ྑ͍
#BDLJOH4UPSFͷίετ w 6*7JFXESBX#BDLJOH4UPSFΛࣗಈͰར༻ w 7JFXͷ1JYFMαΠζ͕#BDLJOH4UPSFͷେ͖͞ w J04͔Β8JEF$PMPS͕EFGBVMUͰUSVF w J04 $"-BZFSDPOUFOUT'PSNBUͰ8JEF$PMPSΛ
P⒎ʹ͍ͯͨ͠߹ɺJ04Ͱ͜ͷઃఆΛ༻͢Δ ͱ৭ʑͱ࠷దԽ͕ಇ͔ͳ͘ͳΔΒ͍͠
#BDLJOH4UPSFΛখ͘͢͞Δ w େ͖ͳ̍ͭͷ7JFXΛখ͞ͳ7JFXͷ֊ߏ w ESBXΛΘͳ͍ํ๏Λ୳͢ w ը૾σʔλͷॏෳͨ͠ίϐʔΛ͠ͳ͍ w ࠷దԽ͞Εͨ7JFXͷϓϩύςΟͱαϒΫϥε
ESBXΛΘͳ͍ w 6*7JFXCBDLHSPVOE$PMPS'SBNF#V⒎FSʹ ॻ͖ࠐΊΔ w 6**NBHF7JFXͰ༻Ͱ͖ͳ͍͔Λߟ͑Δ w #BDLJOH4UPSFΛΘͳ͍ํ๏Λ୳ͯ͠ΈΔ
.BTLJOH7JFX͔ $PSOFS3BEJVT͔ w 6*7JFXNBTL7JFX$"-BZFSNBTL-BZFSҰ࣌త ʹJNBHFCV⒎FSΛ༻ w .BTLJOH7JFX͕ඞཁͳ߹ɺՄมαΠζͷ*NBHFΛ ࣋ͬͨ6**NBHF7JFXͰ༻Ͱ͖ͳ͍͔Λߟ͑Δ
ը૾σʔλΛ ॏෳͤ͞ͳ͍ w 6**NBHFϞϊΫϩͷը૾ΛΧϥʔʹͰ͖Δ w ࢦఆͨ͠৭'SBNF#V⒎FSʹॻ͖ࠐΊΔ w 6**NBHFXJUI3FOEFSJOH.PEFϝιουͰઃఆɺ· ͨ"TTFUTDBUBMPHͷը૾ͷϞʔυΛ5FNQMBUF .PEF
w ৭ͷࢦఆUJOU$PMPSͰઃఆ
/%"ͷͨΊআ ςϯϓϨʔτϞʔυͷࢦఆ ը૾
࠷దԽ͞Εͨ7JFXͷϓϩύςΟ ͱαϒΫϥεΛར༻͢Δ w 6*MBCFMͰͳΔ͘ϞϊΫϩΧϥʔ ϝϞϦΛ અ w طग़ͷ6**NBHF7JFX࠷దԽ͞Ε͍ͯΔ
ΦϑεΫϦʔϯඳըͷ࠷దԽ w 6*(SBQIJDT*NBHF3FOEFSFSΛ͏ w 6*(SBQIJDT#FHJO*NBHF$POUFYU8JEF$PMPSΛະ αϙʔτ w ը໘ʹදࣔ͢Δࡍ6**NBHF7JFXΛ͏
*NBHF#V⒎FSͷ࠷దԽ w 8JEF$PMPSͷࣗಈαϙʔτ w 6*(SBQIJDT*NBHF3FOEFSFS'PSNBUQSFGFSFT&YUF OEFE3BOHFΛઃఆ͢Δ͜ͱͰαϙʔτΛ0⒎ʹ͢Δ w 6**NBHFJNBHF3FOEFSFS'PSNBUΛઃఆ͢Δ͜ͱͰ ࣄલʹ࠷దͳྖҬ͕֬อͰ͖ΔΑ͏ʹ͢Δ J04৽ػೳ
/%"ͷͨΊআ 6*(SBQIJDT*NBHF3FOEFSF S'PSNBUQSFGFSFT&YUFOEF E3BOHF͕ͳ͔ͥ %FQSFDBUFE
None
"VUP-BZPVUͷվળ
ύϑΥʔϚϯεվળ
/%"ͷͨΊআ ͰͷύϑΥʔϚ ϯεൺֱ ͋·ΓมΘ͍ͬͯͳ͍
/%"ͷͨΊআ JOTUSVNBOUTͰͷ ͷ$16༻ൺֱ ͪΐͬͱͷํ͕͍ؾ ͕͢Δ
"VUP-BZPVUͬͯ Կͯ͠Δͷʁ
88%$)JHI1FSGPSNBODF"VUP-BZPVU
88%$)JHI1FSGPSNBODF"VUP-BZPVU
7JFX
7JFX
8JOEPX 7JFX
8JOEPX 7JFX
8JOEPX 7JFX $POTUSBJOU
8JOEPX 7JFX $POTUSBJOU
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU &RVBUJPO ϨΠΞτܭࢉલͷঢ়ଶ
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU &RVBUJPO ϨΠΞτܭࢉલͷঢ়ଶ UFYUNJO9 UFYUXJEUI UFYUNJO9UFYUNJO9
UFYUXJEUI UFYUXJEUI
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU &RVBUJPO ϨΠΞτܭࢉલͷঢ়ଶ
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU &RVBUJPO ϨΠΞτܭࢉલͷঢ়ଶ
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU &RVBUJPO ϨΠΞτܭࢉલͷঢ়ଶ
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU &RVBUJPO ϨΠΞτܭࢉલͷঢ়ଶ UFYUNJO9 UFYUXJEUI UFYUNJO9UFYUNJO9
UFYUXJEUI UFYUNJO9 UFYUXJEUI
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU &RVBUJPO ϨΠΞτܭࢉલͷঢ়ଶ UFYUNJO9 UFYUXJEUI UFYUNJO9UFYUNJO9
UFYUXJEUI UFYUNJO9 UFYUXJEUI
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU &RVBUJPO ϨΠΞτܭࢉલͷঢ়ଶ 7BSJBCMF ϨΠΞτܭࢉ݁Ռ UFYUNJO9
UFYUXJEUI UFYUNJO9UFYUNJO9 UFYUXJEUI UFYUNJO9 UFYUXJEUI
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU &RVBUJPO ϨΠΞτܭࢉલͷঢ়ଶ 7BSJBCMF ϨΠΞτܭࢉ݁Ռ NJO9
NJO: XJEUI IFJHIU UFYUNJO9 UFYUXJEUI UFYUNJO9UFYUNJO9 UFYUXJEUI UFYUNJO9 UFYUXJEUI
&OHJOF ϨΠΞτܭࢉ 8JOEPX 7JFX $POTUSBJOU &RVBUJPO ϨΠΞτܭࢉલͷঢ়ଶ 7BSJBCMF ϨΠΞτܭࢉ݁Ռ NJO9
NJO: XJEUI IFJHIU UFYUNJO9 UFYUXJEUI UFYUNJO9UFYUNJO9 UFYUXJEUI UFYUNJO9 UFYUXJEUI
7JFX &OHJOF
Կ͔มΘͬͨʁ 7JFX &OHJOF
Կ͔มΘͬͨʁ มΘͬͯΔΑʂ 7JFX &OHJOF
Կ͔มΘͬͨʁ มΘͬͯΔΑʂ ͡Ό͋ʹใࠂ͠Α͏ 4VQFSWJFXTFU/FFET-BZPVU 7JFX &OHJOF
88%$)JHI1FSGPSNBODF"VUP-BZPVU
6*7JFXMBZPVU4VCWJFXT 7JFX &OHJOF
6*7JFXMBZPVU4VCWJFXT 7JFX &OHJOF
ͳΜ͚ͩͬʁ 6*7JFXMBZPVU4VCWJFXT 7JFX &OHJOF
ͳΜ͚ͩͬʁ 6*7JFXMBZPVU4VCWJFXT 7JFX &OHJOF
ͳΜ͚ͩͬʁ ✖✖Ͱ͢ 6*7JFXMBZPVU4VCWJFXT 7JFX &OHJOF
ͳΜ͚ͩͬʁ ✖✖Ͱ͢ 6*7JFXMBZPVU4VCWJFXT 7JFX &OHJOF
ͳΜ͚ͩͬʁ ✖✖Ͱ͢ ࢠʹࢦࣔ͠Α͏ 4VCWJFXTFU#PVOET 4VCWJFXTFU$FOUFS 6*7JFXMBZPVU4VCWJFXT 7JFX &OHJOF
88%$)JHI1FSGPSNBODF"VUP-BZPVU
"QQMF͔Βͷڭ͑ w ܁Γฦ͠ઃఆ͠ͳ͍ w γϯϓϧͳϩδοΫͰ w &OHJOFΩϟογϡͰ͋Γɺ੍ؔͷऀ w ඞཁͳͷʹ͚ͩඞཁͳ੍Λ
σϞ͔Βͷֶͼ w আͯ͠Ճͯ͠ͷ܁Γฦ͠/( ඞཁͳ੍ͷΈೖΕ ସ͑ w JOUSJOTJD$POUFOU4J[F͕ෆཁͳ6*7JFXʹ0WFSSJEFͷ தͰ6*7JFXOP*OUSJOTJD.FUSJDΛ͏ w
&OHJOFΩϟογϡͰ͋Γɺ੍ؔͷऀ w -BZPVU1SPpMFS͍͍Αʂʂ w
σϞ͔Βͷֶͼ w আͯ͠Ճͯ͠ͷ܁Γฦ͠/( ඞཁͳ੍ͷΈೖΕ ସ͑ w JOUSJOTJD$POUFOU4J[F͕ෆཁͳ6*7JFXʹ0WFSSJEFͷ தͰ6*7JFXOP*OUSJOTJD.FUSJDΛ͏ w
&OHJOFΩϟογϡͰ͋Γɺ੍ؔͷऀ w -BZPVU1SPpMFS͍͍Αʂʂ w
J04ͷվળ w 4DSPMMJOH w .FNPSZ w "VUP-BZPVU
·ͱΊ w 6*,JUਐԽ͢Δ ݟ͑ͳ͍ͱ͜ΖͰ w ҙࣝ͢Δͱͬͱྑ͘ͳΔՄೳੑ͕͋Δ w ٯʹؒҧ͑ΔͱѱԽͯ͠͠·͏Մೳੑ͋Δ
·ͱΊ w 6*,JUਐԽ͢Δ ݟ͑ͳ͍ͱ͜ΖͰ w ҙࣝ͢Δͱͬͱྑ͘ͳΔՄೳੑ͕͋Δ w ٯʹؒҧ͑ΔͱѱԽͯ͠͠·͏Մೳੑ͋Δ w
༻๏ɾ༻ྔΛकͬͯਖ਼͍͘͠·͠ΐ͏ɻ