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
460
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
7
3k
実践Monix導入 / Monix in Action
taisukeoe
4
1.1k
Scalaで関数型 再入門
taisukeoe
13
2.4k
Other Decks in Technology
See All in Technology
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
“新卒らしさ”を脱ぎ捨てて 〜1年を経て学んだこと〜
rebase_engineering
0
120
データ戦略部門 紹介資料
sansan33
PRO
1
3.1k
AIコードエディタは開発を変えるか?Cursorをチームに導入して1ヶ月経った本音
ota1022
1
650
技術書典18結果報告
mutsumix
2
170
Cloud Run を解剖して コンテナ監視を考える / Breaking Down Cloud Run to Rethink Container Monitoring
aoto
PRO
0
110
RDRA3.0を知ろう
kanzaki
2
410
スプリントゴールで価値を駆動しよう
takufujii
3
1.6k
TypeScript と歩む OpenAPI の discriminator / OpenAPI discriminator with TypeScript
kaminashi
1
130
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.5k
LT:組込み屋さんのオシロが壊れた!
windy_pon
0
290
データプレーンプログラミングとは? DPU&スイッチASICの開発経験から語る
ebiken
PRO
0
160
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Making Projects Easy
brettharned
116
6.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
1
71
Building an army of robots
kneath
306
45k
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.3k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
6
650
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Stop Working from a Prison Cell
hatefulcrawdad
269
20k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
The Cost Of JavaScript in 2023
addyosmani
49
8k
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
εϐʔΧʔʹͳΔ͜ͱͰɺΑΓָ͍࣌ؒ͠Λաͤͨ͝Γɺ ྑ͖ग़ձ͍͕͋Δ͜ͱΛف͍ͬͯ·͢ʂ