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
ScalaMatsuri CFPひとめぐり / ScalaMatsuri CFP quick ...
Search
Taisuke Oe
January 08, 2020
Technology
0
480
ScalaMatsuri CFPひとめぐり / ScalaMatsuri CFP quick tour
Presented on January 8th 2020 at Pre ScalaMatsuri meetup.
Taisuke Oe
January 08, 2020
Tweet
Share
More Decks by Taisuke Oe
See All by Taisuke Oe
ScalaMatsuriの座長を募集するワケ / Why we're looking for new chairperson
taisukeoe
0
1.6k
なぜ Scala 3 で変わったのか / Why things are changed in Scala3?
taisukeoe
6
3.1k
実践Monix導入 / Monix in Action
taisukeoe
4
1.2k
Scalaで関数型 再入門
taisukeoe
13
2.5k
Other Decks in Technology
See All in Technology
Click A, Buy B: Rethinking Conversion Attribution in ECommerce Recommendations
lycorptech_jp
PRO
0
110
SCONE - 動画配信の帯域を最適化する新プロトコル
kazuho
1
180
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3k
Geospatialの世界最前線を探る [2025年版]
dayjournal
1
260
大規模サーバーレスAPIの堅牢性・信頼性設計 〜AWSのベストプラクティスから始まる現実的制約との向き合い方〜
maimyyym
10
5k
Performance Insights 廃止から Database Insights 利用へ/transition-from-performance-insights-to-database-insights
emiki
0
320
Codexとも仲良く。CodeRabbit CLIの紹介
moongift
PRO
1
260
React19.2のuseEffectEventを追う
maguroalternative
2
520
HonoとJSXを使って管理画面をサクッと型安全に作ろう
diggymo
0
130
「改善」ってこれでいいんだっけ?
ukigmo_hiro
0
370
エンタメとAIのための3Dパラレルワールド構築(GPU UNITE 2025 特別講演)
pfn
PRO
0
570
Featured
See All Featured
Done Done
chrislema
185
16k
Designing Experiences People Love
moore
142
24k
Embracing the Ebb and Flow
colly
88
4.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
369
20k
Rails Girls Zürich Keynote
gr2m
95
14k
How to Think Like a Performance Engineer
csswizardry
27
2.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
A Modern Web Designer's Workflow
chriscoyier
697
190k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Fireside Chat
paigeccino
40
3.7k
Code Review Best Practice
trishagee
72
19k
Transcript
4DBMB.BUTVSJ $'1ͻͱΊ͙Γ ϓϨ4DBMB.BUTVSJ
ࣗݾհ w 5BJTVLF0F w 5XJUUFS!0&@VJB w 4DBMB.BUTVSJΛओ࠵͍ͯ͠·͢ɻ w εϐʔΧʔܦݧ w
4DBMB%BZT w +$$POG w 4DBMBؔαϛοτ w 4DBMB.BUTVSJͳͲ
ࠓ͍͑ͨ͜ͱ w εϐʔΧʔָ͍ͬͯ͠Α w εϐʔΧʔͱͯ͠ୈҰาΛ౿Έग़͢ಓ͠Δ
͑ΒΕͳ͍͜ͱ w ❌εϐʔΧʔͱͯ͠ͷϕετϓϥΫςΟε w ❌4DBMB.BUTVSJͰԠืηογϣϯ͕࠾༻͞ΕΔํ๏
ΞδΣϯμ w ͦͦɺͳͥΧϯϑΝϨϯεͰΔͷ͔ʁ w εϐʔΧʔʹͳΔʹɺͲ͏͢Ε͍͍ͷ͔ʁ
ͳͥΧϯϑΝϨϯεͰ Δͷ͔ʁ
ͳͥΧϯϑΝϨϯεͰ Δͷ͔ʁ ࢲͷ߹ w εϐʔΧʔʹͳΔͷ͕ɺҰ൪ָ͘͠աͤ͝Δɻ w ษڧ͢ΔϞνϕʔγϣϯʹͳΔɻ w ͕ࣗਪٕ͢ज़Λɺਖ਼͍͍͠ํͱͱʹΊΒΕΔɻ w
ࢀՃඅͷෛ୲͕ݮΔʢՄೳੑ͕ߴ͍ʣɻ
w ࣗΛͬͯ͘Β͏͖͔͚ͬʹͳΔɻ w ໘ന͍Πϕϯτʹ༠ͬͯΒ͑ͨΓɺظతʹࣗ ͷࣄʹܨ͕ͬͨΓ͢Δɻ w ॳର໘ͷਓɺࣗͷ͖ͳʢొஃωλʣͰ͔͠ ͚͖ͯͯ͘ΕΔ্͕͕֬Δɻ w ͦͷݶΓͷೱ͍ू·ΓʢεϐʔΧʔσΟφʔͳͲʣͰٞ
Ͱ͖Δɻ ͳͥΧϯϑΝϨϯεͰ Δͷ͔ʁ ࢲͷ߹
εϐʔΧʔʹͳΔʹ Ͳ͏͢Ε͍͍ͷʁ
εϐʔΧʔʹͳΔʹ Ͳ͏͢Ε͍͍ͷʁ w ηογϣϯެืܕͷΧϯϑΝϨϯεͰΑ͋͘ΔྲྀΕ ςʔϚΛܾΊΔ $'1ʹԠื͢Δ མ݁ՌΛΔ τʔΫͷ४උ͢ΔʢεϥΠυΛ࡞Δʣ ຊ൪ʹΔ
εϐʔΧʔʹͳΔʹ Ͳ͏͢Ε͍͍ͷʁ w 4DBMB.BUTVSJͷྲྀΕ ςʔϚΛܾΊΔΠϚίί $'1ʹԠื͢Δʜ"OZXIFSFPO&BSUIక མ݁ՌΛΔʜ݄த τʔΫͷ४උ͢ΔʢεϥΠυΛ࡞Δʣʜ݄ ຊ൪ʹΔʜ݄ɾ
ςʔϚΛܾΊΔ
ࠓ͕ͧ͘͞Μ ΑΖ͓͘͠ئ͍͠·͢ʂ ࢀߟϓϨ4DBMB.BUTVSJͷͱ͖ͷࢿྉ
$'1ʹԠื͢Δ
$'1ʹԠื͢Δ w ͜ͷ߹ɺ$'1$BMMGPS1SPQPTBMT1SFTFOUBUJPOTͷ ུɻ w ηογϣϯͷҰൠืूͷ͜ͱɻ w $'1ʹର͢ΔԠืͷ͏ͪɺ࠾༻͞Εͨͷ͕λΠϜςʔϒ ϧׂΓͯΒΕ·͢ɻ
4DBMB.BUTVSJ$'1 w ࠓͷΧϯϑΝϨϯε̐τϥοΫʂ w ৄࡉͪ͜Β w IUUQTTDBMBNBUTVSJPSHKBDGQ
Ԡืཁ߲ൈਮ Scala Scala 40 100 20 ) 200 300 (
) 3 1 Repository Pull Request
Ԡืཁ߲ൈਮ Scala Scala 40 100 20 ) 200 300 (
) 3 1 Repository Pull Request
4DBMBϏΪφʔͷఆٛ ͜ͷΧςΰϦɺScalaͰίʔυΛॻ͖࢝Ίͨਓ͕ΑΓScalaΛ͍͜ͳͯ͠ɺૉૣ͘σόοάͨ͠Γɺద ͳநԽΛ͍͜ͳͨ͠ΓɺΫϦʔϯͰ҆શͳίʔυΛॻ͚ΔΑ͏ʹͳΔͨΊͷηογϣϯͰ͢ɻ ྫ͑ ɺҎԼͷΑ͏ͳࢀՃऀΛରͱͨ͠ηογϣϯ͕֘͠·͢ɻ • ScalaͷίϨΫγϣϯૢ࡞Λ͢Δͱ͖ʹmap, flatMap, filter, findͳͲɺجຊతͳͷҎ֎͋·Γͬͨ
͜ͱ͕ͳ͍ɻ • forࣜͰॻ͚Δͷͱͦ͏Ͱͳ͍ͷͷ۠ɺॻ͚Δ͕݅Α͔͘Βͳ͍ɻ • OptionɺTryɺEitherͷ͍͚͕Α͔͘Βͳ͍ɻ͍ͭྫ֎Λ͛ͯ͠·͏ɻ • case classͱclassɺabstract classɺtraitͳͲͷҧ͍͕Α͔͘Βͳ͍ɻ • ύλʔϯϚονΛɺmatchࣜҎ֎Ͱͬͨ͜ͱ͕ͳ͍ɻෳͷύλʔϯΛΈ߹Θ͍ͤͯͬͯͳ͍ɻ • ܕύϥϝʔλʔimplicitͷ͍ॴ͕Α͔͘Βͳ͍ɻͦΕΒ͕ΘΕͨίʔυΛಡΊͳ͍ɻ ৽͍͠ΓޱͰ͜͏͍ͬͨجૅΛղઆ͢Δηογϣϯɺ࠶ೖ͢ΔηογϣϯͳͲɺ͞·͟·ͳΓޱ ͰͷηογϣϯΛืू͠·͢ɻͥͻ͝Ԡื͍ͩ͘͞ɻ
બߟํ๏ൈਮ ScalaMatsuri 2 w ͲͪΒͷબߟํ๏ʹ߹Θͤͨํ͕௨Γ͍͢ɺʢࠓ ಛʹʣͳ͍Ͱ͢ɻ w ԦಓͰมԽٿͰɺۀؔ࿈ͰझຯܥͰܴͰ͢ɻ
4DBMB.BUTVSJ$'1 w కΊΓ"OZXIFSFPO&BSUI w +45
4DBMB.BUTVSJམ w ηογϣϯืूͷకΊΓ͔Βɺि͔ؒΒϲ݄͙Β͍Ͱૹ ͞Ε·͢ɻ4DBMB.BUTVSJͰɺ݄ࠒʙ݄ॳ०Λ༧ఆ͍ͯ͠ ·͢ɻ w Α͋͘ΔޡղΑ͋͘Δޡղʮ࠾༻͞Εͳ͍࣭͕͍ʯͰ͋ Γ·ͤΜɻૉΒ͍͠ηογϣϯͰɺௌऺͷʹ͋Θͳ͔ͬ ͨΓɺΧςΰϦͷภΓʹΑͬͯ࠾༻͞Εͳ͔ͬͨΓ͠·͢ɻ ؾΛམͱ͞ͳ͍Ͱ͍ͩ͘͞ɻ
w 4DBMB.BUTVSJͰʹΞϯΧϯϑΝϨϯεΛ։࠵͠·͢ɻ ʹొஃ͕ܾఆ͞Ε·͢͠ɺଟ͍ͷͰɺͥͻͦͪΒ νϟϨϯδͯ͠Έ͍ͯͩ͘͞ɻ
εϥΠυ࡞ w εϥΠυ࡞͠͡ΊΔલʹɺࢫΛ໌֬ʹ͠·͠ΐ͏ʂ w ʮҰ൪͍͑ͨϝοηʔδʯͬͯͳΜͩΖʁࣗͷϝο ηʔδΛཧղͯ͠Β͏ʹɺͲΜͳࣝࠜڌ͕ඞཁ ͩΖ͏ʁͲ͏͓͖͍ͯ͑ͯͨ͠ࣄ࣮ͬͯɺͳΜͩΖ ͏ʁ
ٕज़తݕূ w ٕज़తͳهड़ʹؒҧ͍͕ͳ͍͔ɺࣗͰݕূ͢ΔบΛͭ ͚·͠ΐ͏ɻ w ݴ༿ͷఆ͕ٛਖ਼͔֬ओޠ͕దͳେ͖͔͞ w அݴ͍ͯ͠Δͷʹ͍ͭͯɺྫ֎ଘࡏ͠ͳ͍ͷ͔
ٕज़తݕূ w ίʔυΛॻ͍ͯಈ͔ͯ͠ݕূͯ͠ΈΔ w ΦϑΟγϟϧͷυΩϡϝϯτʢධͷྑ͍ʣॻ੶ͳͲ ͱɺໃ६͕ͳ͍͔ௐΔ w ʢ044ͳΒʣ֘͢ΔιʔείʔυΛಡΉ w ͦͷ্Ͱɺಉ྅ͳͲʹϨϏϡʔΛґཔ͢Δͷྑ͍ϓϥ
ΫςΟεͰ͢ʂ
࿅श w εϥΠυΛΑΓྑ͘͢ΔͨΊͷ࿅श w εϥΠυ͕Ұ௨ΓͰ͖ͨΒɺ·ͣεϥΠυͷϒϥο γϡΞοϓͷͨΊʹܰ͘࿅शͯ͠Έ·͠ΐ͏ɻ w ͻͱΓͰ࿅श w ·ͣҰਓͰ௨ͯͬͯ͠ΈΔͷ͕ΦεεϝͰ͢ɻ୯७
ʹ׳ΕΔ͚ͩͰͳ͘ɺͷےಓͷෆࣗવ͞ɺͳ ෦ͳͲʹؾ͖ͮ·͢ɻ
࿅श w εϥΠυͷϒϥογϡΞοϓ͕ਐΜͰ͖ͨΒɺࣾൃදձ ɺษڧձͳͲͷ࿅शॴΛͭ͘Γ·͠ΐ͏ɻ w ϑΟʔυόοΫΛੵۃతʹΒ͏ͱɺࢫͷෆ໌ྎͳ ɺٕज़తͳؒҧ͍ͳͲʹؾ͖͍ͮ͢Ͱ͢ɻ
εϥΠυఏग़ w ΧϯϑΝϨϯεʹΑͬͯඞཁͰ͢ɻ w 4DBMB.BUTVSJͰɺӳޠɾࣈນ$P$ͷ֬ೝͷͨΊɺ ݄ͷఏग़Λ͓ئ͍͍ͯ͠·͢ɻ w ͦͷޙඍमਖ਼ՄೳͰ͢ɻͦͷ߹ɺεϥΠυΛ ࠶ૹ͍ͯͩ͘͠͞ɻ
ຊ൪લͷ࿅श w ൃදʹ׳ΕΔͨΊʹɺ࿅श͍͖ͯ͠·͠ΐ͏ɻ࠷ॳͷ͏ͪ ɺࣗͷ͍ͯ͠Δ༷ࢠΛಈըͰࡱͬͯݟฦ͢ͱɺ͍Ζ͍ Ζͳؾ͖͕͋Γ·͢ɻ w ࿅श͢Ε͢Δ΄ͲɺྲྀெʹΕΔΑ͏ʹͳΓ·͢ɻྲྀெʹ ΕΔͱɺࣗ৴͕ੜ·Ε·͢ʂʢٯʹͯ͘͠࿅श͕ෆे ͩͱɺ͏·͘Εͣʹɺ༨ܭʹযͬͨΓ͠·͢ʜʣ w
࣭͞Εͦ͏ͳ͜ͱʹ͍ͭͯɺௐ͓͖ͯ·͠ΐ͏ɻΈΜͳ ͷલͰ࿅श͢ΔͱɺԿʹಥͬࠐ·ΕΔ͔ɺΑ͘Θ͔Γ·͢ɻ
ຊ൪ w εϥΠυΛ࡞ΓࠐΜͰɺ࿅शे͓͚ͯ͠ɺ͋ͱຊ ൪ͰΔ͚ͩͰ͢ɻલ͙ͬ͢Γ৸ͯɺΧϯϑΝϨϯ εָ͠Ή͜ͱʹूத͠·͠ΐ͏ʂ w εϐʔΧʔʹͳΔͷͬͯɺ༐ؾ͕͍Δ͜ͱͰ͢ΑͶɻΈ ͳ͞Μɺ·ͣୈҰาΛ౿Έग़͞Εͨ͜ͱ͕ɺૉΒ͠ ͍ͱࢥ͍·͢ɻ w
εϐʔΧʔʹͳΔ͜ͱͰɺΑΓָ͍࣌ؒ͠Λաͤͨ͝Γɺ ྑ͖ग़ձ͍͕͋Δ͜ͱΛف͍ͬͯ·͢ʂ