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
今日から始めるスカライフ~MajiでKoiする5秒前~
Search
Natsumi
December 22, 2017
Programming
1
1k
今日から始めるスカライフ~MajiでKoiする5秒前~
12/21のD3イベント「教養としてのScala」の20min枠でお話ししたスライドです。
Natsumi
December 22, 2017
Tweet
Share
More Decks by Natsumi
See All by Natsumi
チームでElm開発。〜TEAに導かれし者たち〜
natsumisawa
0
1.1k
Other Decks in Programming
See All in Programming
2分台で1500examples完走!爆速CIを支える環境構築術 - Kaigi on Rails 2025
falcon8823
3
3.5k
Flutterで分数(Fraction)を表示する方法
koukimiura
0
130
Six and a half ridiculous things to do with Quarkus
hollycummins
0
140
登壇は dynamic! な営みである / speech is dynamic
da1chi
0
280
Swift Concurrency - 状態監視の罠
objectiveaudio
2
510
技術的負債の正体を知って向き合う / Facing Technical Debt
irof
0
150
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
3.2k
Le côté obscur des IA génératives
pascallemerrer
0
140
CSC509 Lecture 03
javiergs
PRO
0
330
CSC305 Lecture 05
javiergs
PRO
0
210
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
460
CSC305 Lecture 03
javiergs
PRO
0
240
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
GraphQLとの向き合い方2022年版
quramy
49
14k
Documentation Writing (for coders)
carmenintech
75
5k
Code Reviewing Like a Champion
maltzj
525
40k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Done Done
chrislema
185
16k
How STYLIGHT went responsive
nonsquared
100
5.8k
Designing for Performance
lara
610
69k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
YesSQL, Process and Tooling at Scale
rocio
173
14k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Transcript
ࠓ͔Β࢝ΊΔεΧϥΠϑ d.BKJͰ,PJ͢Δඵલd Scalaʹ
ᖒͳͭΈ גࣜձࣾϏζϦʔν)3.04ࣄۀ෦ʢ৽ଔʣ αʔόʔαΠυΤϯδχΞ େֶͷઐ߈ֶ͚ͩͲ΄΅ະܦݧঢ়ଶͰೖࣾ ϓϩάϥϛϯάܦݧ ೖࣾલ SVCZϲ݄4DBMBϲ݄
ೖࣾޙ KBWBϲ݄4DBMB͘Β͍
ઓུਓࣄΛ࣮ݱ͢Δ #͚αʔϏεΛͰʑ։ൃத
ࠓͷΰʔϧ ࠓ൩͔Β͙͢ɹɹɹɹɹΛॻ͖࢝ΊΒΕΔঢ়ଶʹͳΔʂ ͦͯ͠εΩʹͳΔʂ ɾ4DBMBͰXFCΞϓϦͭ͘Γ͍ͨΑ ɾֶशํ๏ʹ໎͍ͬͯΔΑ ɾβηπͨ͠Α #
ࠓ͓͢͠Δ͜ͱ w ࢲ͕ɹʹ,PJ͢Δ·ͰͷաఔͰ ͖ͬͯͨ۩ମతͳֶशํ๏Λ͝հ͠·͢ʂ ʊਓਓਓਓਓਓਓʊ ʼɹԿ͕͋ͬͨͷɹʻ ʉ:?:?:?:?:?:ʉ ίϫΠ εΩ
ࠓ͓͠͠ͳ͍͜ͱ w 4DBMBͷ۩ମతͳจ๏ w Ϟ⚪υͱ͔ʜ
ʹ,PJ͢Δ·ͰͷετʔϦʔ ୈҰষɹॖ·ͬͨ4DBMBͱͷΩϣϦ ୈೋষɹͨͷ͍͠ʂίϨΫγϣϯૢ࡞ ࠷ऴষίϨΫγϣϯΛࢲ͕ʮͭ͘Δʯʁ d,PJ͕࢝·Δ༧ײd
ୈҰষॖ·ͬͨ4DBMBͱͷΩϣϦ
Έͳ͞Μɺ ɹɹɹɹʹͲͷΑ͏ͳΠϝʔδΛ ࣋ͨΕ͍ͯ·͔͢ʁ ؔܕʁ
Έͳ͞Μɺ ɹɹɹɹʹͲͷΑ͏ͳΠϝʔδΛ ࣋ͨΕ͍ͯ·͔͢ʁ ؔܕʁ ؔܕʁ ϋΠϒϦουݴޠʁ ҉ͷܕมʁ Ϟφυʁ ίϫΠ ֶशίετߴͦ͏
લ ʢͨͿΜʣ.F UPP ʮίϫΠΉ͔͍ͣ͠Θ͔Μͳ͍ʯ
·ͣ4DBMB͕Կऀͳͷ͔ Δඞཁ͕͋ͬͨ
ͦ͜Ͱ
ʮ·ͣίϨಡ͏ʯ ͱΑ͘ݴΘΕΔίοϓຊΛߪೖ
ͲΜͳຊʁ w ݴޠઃܭऀͰ͋Δ ΦμεΩʔઌੜ ͕ɹɹɹɹɹͷࢥʹ͍ͭͯޠ͍ͬͯΔ w ʮͲ͏ॻ͘ͷ͔ʯ͔Β ʮͳͥͦ͏ॻ͘ͷ͔ʯ·Ͱॻ͍ͯ͋Δ w ӳޠ൛1%'ແྉ%-Մೳʂ
QSPHSBNNJOHJOTDBMBͰݕࡧ IUUQDDpUOTVSVdEFO4DBMBQSPHSBNNJOH@JO@TDBMB@OEQEG ͕͔ͩ͠͠ ʊਓਓਓਓਓʊ ʼɹβηπɹʻ ʉ:?:?:?:ʉ
ͲΜͳຊʁ w ݴޠઃܭऀͰ͋Δ ΦμεΩʔઌੜ ͕ɹɹɹɹɹͷࢥʹ͍ͭͯޠ͍ͬͯΔ w ʮͲ͏ॻ͘ͷ͔ʯ͔Β ʮͳͥͦ͏ॻ͘ͷ͔ʯ·Ͱॻ͍ͯ͋Δ w ӳޠ൛1%'ແྉ%-Մೳʂ
QSPHSBNNJOHJOTDBMBͰݕࡧ IUUQDDpUOTVSVdEFO4DBMBQSPHSBNNJOH@JO@TDBMB@OEQEG
ίοϓຊΞΧσϛοΫ͗͢
ͦ͜ͰࢲΛٹͬͯ͘Εͨͷ͕
ɹʊਓਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹ%XBOHP͞Μͷݚमࢿྉɹʻ ʉ:?:?:?:?:?:?:?:?:?:ʉ
None
w EXBOHP͞Μͷ৽ଔ͚ 4DBMBݚमࢿྉ w ॳ৺ऀʹͰஸೡͳղઆ w ͱ͖ͬͭ͢͞ ͲΜͳࢿྉʁ
࣮ࡍͷϖʔδ ݁ߏଟ͍Ͷ
ɹɹɹɹɹɺ w ίϨΫγϣϯૢ࡞ w έʔεΫϥε w ύλʔϯϚον ͔͑͞ΕಡΊΔΑ͏ʹͳΔ CZʢ͔ͨ͠ʣ ΦμεΩʔઌੜ
˒େࣄʂʂ
ʢଞֶΜͰ͍Δͱͦͷ͏͔ͪΔʘ ?P? ʗʣ
͜Ε͚ͩͰ͍ͩͿ͓͖ۙͮʹͳΕͨ εΩ❤ɾɾɾɾɾ
ֶΜͰ͍͘͏ͪʹɺ ʮͳΜͰ͜͏͍͏֓೦͋ΔΜͩΖ͏ʁʯ ମܥతʹֶͼͨ͘ͳ͖ͬͯͨ
ͦ͏ͳͬͨͱ͖ʹ෮࡞ۀ %XBOHP͞Μͷ ݚमࢿྉ ͳΜͰʁ ͳΔ΄Ͳʂ
͜ͷηοτͰΑΓͱͷΩϣϦ͕ॖ·ͬͨ εΩϨϕϧ❤ɾɾɾɾ
ୈೋষɹͨͷ͍͠ʂίϨΫγϣϯૢ࡞
ɹͰXFCΞϓϦͭ͘Δ ˺ ίϨΫγϣϯૢ࡞
ͳ͔ͥͱ͍͏ͱʜ
͜͏͍͏ σʔληοτ͕͋ͬͨͱ͠·͢ ۂ໊ ΞʔςΟετ໊ ൃച େεΩʂ ྋࢠ ݄ .BKJͰ,PJ͢Δඵલ ྋࢠ
݄ େεΩʂ ྋࢠ ݄ #FTU4FMFDUJPO ՚ݪ๎ඒ .BKJͰ,PJ͢Δඵલ ྋࢠ ݄ .BKJͰ,PJ͢Δඵલ ྋࢠ ݄
> -JTU< σʔλΛऔಘ
ཉ͍͠ͷʹͳΔΑ͏ʹ Ճ͍ͯ͘͠ > -JTU< ྋࢠͱ՚ݪ๎ඒ ͱ͍͏ΞʔςΟετ͕ ͓ؾʹೖΓͷΑ͏Ͱ͢Ͷ σʔλΛऔಘ
ཉ͍͠ͷʹͳΔΑ͏ʹ Ճ͍ͯ͘͠ > -JTU< ྋࢠͱ՚ݪ๎ඒ ͱ͍͏ΞʔςΟετ͕ ͓ؾʹೖΓͷΑ͏Ͱ͢Ͷ ͍͍ͩͨ͜͏͍͏͜ͱ͢Δ σʔλΛऔಘ
ཉ͍͠ͷʹͳΔΑ͏ʹ Ճ͍ͯ͘͠ > -JTU< ྋࢠͱ՚ݪ๎ඒ ͱ͍͏ΞʔςΟετ͕ ͓ؾʹೖΓͷΑ͏Ͱ͢Ͷ ͍͍ͩͨ͜͏͍͏͜ͱ͢Δ σʔλΛऔಘ ͜͜ͰԿΛ͍ͯ͠Δͷʁ
> < ॏෳΛͳ͘͢ ؔ > <
ൃച ݹ͍ॱʹ͢Δؔ > < > <
> < > <ྋࢠ ྋࢠ ՚ݪ๎ඒ ΞʔςΟετ໊ ͚ͩؔ͢ ྋࢠͱ՚ݪ๎ඒ ͱ͍͏ΞʔςΟετ͕
͓ؾʹೖΓͷΑ͏Ͱ͢Ͷ ʂ
ྋࢠͱ՚ݪ๎ඒ ͱ͍͏ΞʔςΟετ͕ ͓ؾʹೖΓͷΑ͏Ͱ͢Ͷ > < > <ྋࢠ ྋࢠ ՚ݪ๎ඒ Ұ࿈ͷૢ࡞ΛৼΓฦΔͱ
ྋࢠͱ՚ݪ๎ඒ ͱ͍͏ΞʔςΟετ͕ ͓ؾʹೖΓͷΑ͏Ͱ͢Ͷ > < > <ྋࢠ ྋࢠ ՚ݪ๎ඒ ͍͍ͩͨ
ίϨΫγϣϯૢ࡞ ͔ͯ͠͠ͳ͍ʂ Ұ࿈ͷૢ࡞ΛৼΓฦΔͱ
ͱ͍͏͜ͱ
ίϨΫγϣϯૢ࡞͕ Ͱ͖ΔΑ͏ʹͳΕ
ͲΜͳͷ͕͖ͯ ࣗࡏʹ065165Ͱ͖ΔΑ͏ʹͳΔ > < > <
ʁʁʁ ཁ͢Δʹɺ ͲΜͳͷͰ࡞ΕΔΑ͏ʹͳΔ
ίϨΫγϣϯૢ࡞ େࣄ
ίϨΫγϣϯૢ࡞ େࣄ ͱ͍͑
Ͳ͏ͬͨΒ Ͱ͖ΔΑ͏ʹͳΔͷʜ
Ͳ͏ͬͨΒ Ͱ͖ΔΑ͏ʹͳΔͷʜ ͜ͷίϨΫγϣϯૢ࡞ ៉ྷͰ͢Ͷʔɻ ”ίϫΠ
ͦ͜ͰࢲΛٹͬͯ͘Εͨͷ͕
ʊਓਓਓਓਓʊ ʼɹ4DBMBɹʻ ʉ:?:?:?:ʉ
IUUQBQFSJPEJDOFUQIJMTDBMBT 4DBMB w 4DBMBಠಛͷίϨΫγϣϯૢ࡞ʹ ׳ΕΔͨΊͷ؆୯ͳूʂ w ղ͍͍ͯΔ͏ͪʹɺ ʮϧʔϓʯ͔Βʮ࠶ىʯΓସΘΔ w ͳΜͷ০Γؾͳ͍࣭ૉͳαΠτ͚ͩͲ
·Δͱָ͍͠ʂ
ิ w ʙ·Ͱ͕ -JTUͷίϨΫγϣϯૢ࡞ͷ w ͦΕҎֶ߱ͬΆ͗ͯ͢ʢπϥΠʣ w -JTU͚ͩͰेྗͭ͘
Ͳ͏ͬͯղ͘ͷʁ
Φεεϝͷඋ
ͻͩ͠·͞Μͷ αΠτ πϤΠ ςΩετΤσΟλ ͱͯ͠
IUUQTTDBMBpEEMFJP w ΦϯϥΠϯ্Ͱ4DBMBͷίʔυΛॻ͍ͯ ϫϯΫϦοΫͰ࣮ߦ͢Δ͜ͱ͕Ͱ͖Δ w 4DBMBͷΛαΫοͱ ࢼͯ͠ΈΔͷʹྑ͍ ˢ͜͜ʹίʔυΛॻ͘
w 4DBMBͷओͳίϨΫγϣϯϝιουҰཡΛ δϟϯϧ͝ͱʹ·ͱΊͯ͘Ε͍ͯΔ w νʔτγʔτ w 4DBMBͰ͏͖ϝιου ͔͜͜Β୳͢ ͻͩ͠·͞Μͷ αΠτ
IUUQXXXOFKQBTBIJIJTIJEBNB IPNFUFDITDBMBDPMMFDUJPONFUIPEIUNM
4DBMBͷͨͷ͍͠ʂղ͖ํ ࠳ં͠ͳ͍
4DBMBͷΛಡΜͰɺ ԿΛ͢Ε͍͍ͷ͔Ѳ͢Δ Ὅ*/165 Ὅ065165 ࠷ޙͷཁૉΛऔಘ͢Ε͍͍ͷͩ
ͻͩ͠·͞ΜͷαΠτΛνϥݟ͢Δ ࠷ޙͷཁૉΛऔಘ͢Δϝιου͋Δ͔ͳʁ
ϩδοΫΛߟ͑Δ ۭͷ-JTU͕Ҿʹ͞Εͨ࣌ࢮͳͳ͍͔ͳ
࣮ߦͯ͠ΈΔ 'JEEMFͷὊ36/ϘλϯΆͪͬͱԡ͢ʂ
ղ͚ͨʂ ͨͷ͠ʔʔʂ
ίϨΫγϣϯૢ࡞͕ ៉ྷʹ͔͚ͨʂ ͨͷ͠ʔʔʂ
ίϨΫγϣϯૢ࡞͕ ៉ྷʹ͔͚ͨʂ ͨͷ͠ʔʔʂ ͜͏ͬͨΒ ͬͱ៉ྷʹ͔͚ΔΑɻ
͘͏͏ɺɺɻ
Ͱ ͨͷ͠ʔʔʂ ͨͷ͠ʔʔʂ
͜ͷΑ͏ʹͯ͠ɺ
͜ͷίϨΫγϣϯૢ࡞ ៉ྷ͡Όͳ͍Ͱ͔͢ʁʢ৺ͷʣ ͍͔ͭ͠ࢲ
ίϨΫγϣϯૢ࡞ͱྑ͘Ͱ͖ͨ εΩ❤ɾɾɾ
࠷ऴষίϨΫγϣϯΛࢲ͕ʮͭ͘Δʯʁ d,PJ͕࢝·Δ༧ײd
-JTU࡞Εͳ͍ͱ ҰਓલͰͳ͍Ͱ͢Ͷ
None
ཁʮےτϨ͠Ζʯ
-JTUΛʮͭ͘Δʯͱʁ ɾ-JTUͱ͍͏ΫϥεΛࣗ࡞͢Δɹɹɹɹ scala.collection.immutable.ListΛ࠶࣮͢Δͱ͍͏͜ͱ ɾϝιουʢJT&NQUZͱ͔NBQͱ͔qBU.BQͱ͔ʜ Λࣗ࡞͢Δ ‑͜ΕΛશ෦ࣗͰ࠶࣮͢Δͱ͍͏͜ͱ
ࢲ੍࡞த
͘͢͝ษڧʹͳΔ
ͳΜͰ͔ͱ͍͏ͱɺ
ࠓ·ͰͷࣝΛ૯ಈһ͠ͳ͍ͱ ͭ͘Εͳ͍͔Βʂ
ΈΜͳߦ͘Αʂ
ͦΜͳ͜ΜͳͰ
None
εΩͩͳ εΩ❤❤ ”ͬͱ૿ͤΔΑ͏ʹؤுΓ·͢
·ͱΊ
·ͱΊ ͣͬͱલ͔Β̇
·ͱΊ ɹɹͷ͜ͱ͕ؾʹͳͬͯͨ
·ͱΊ ͦΕ͏ɺ ɹɹɹʹ,PJ͢ΔඵલͰ͢ʂ
·ͱΊ ΈΜͳͰʹ ,PJ͠·͠ΐ͏❤
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ