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
960
今日から始めるスカライフ~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
990
Other Decks in Programming
See All in Programming
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
Tauriでネイティブアプリを作りたい
tsucchinoko
0
370
WebフロントエンドにおけるGraphQL(あるいはバックエンドのAPI)との向き合い方 / #241106_plk_frontend
izumin5210
4
1.4k
Flutterを言い訳にしない!アプリの使い心地改善テクニック5選🔥
kno3a87
1
190
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.2k
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
220
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
230
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
480
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
520
受け取る人から提供する人になるということ
little_rubyist
0
240
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
220
Micro Frontends Unmasked Opportunities, Challenges, Alternatives
manfredsteyer
PRO
0
100
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
427
64k
Statistics for Hackers
jakevdp
796
220k
Designing the Hi-DPI Web
ddemaree
280
34k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Side Projects
sachag
452
42k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Raft: Consensus for Rubyists
vanstee
136
6.6k
A Philosophy of Restraint
colly
203
16k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Building Applications with DynamoDB
mza
90
6.1k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
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͠·͠ΐ͏❤
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ