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
450
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.5k
なぜ Scala 3 で変わったのか / Why things are changed in Scala3?
taisukeoe
7
3k
実践Monix導入 / Monix in Action
taisukeoe
4
1.1k
Scalaで関数型 再入門
taisukeoe
13
2.3k
Other Decks in Technology
See All in Technology
Building Products in the LLM Era
ymatsuwitter
10
5.5k
株式会社EventHub・エンジニア採用資料
eventhub
0
4.3k
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
130
表現を育てる
kiyou77
1
210
データマネジメントのトレードオフに立ち向かう
ikkimiyazaki
6
1k
30分でわかる『アジャイルデータモデリング』
hanon52_
9
2.7k
(機械学習システムでも) SLO から始める信頼性構築 - ゆる SRE#9 2025/02/21
daigo0927
0
150
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
2
1.5k
2/18/25: Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
0
120
ソフトウェアエンジニアと仕事するときに知っておいたほうが良いこと / Key points for working with software engineers
pinkumohikan
0
100
Nekko Cloud、 これまでとこれから ~学生サークルが作る、 小さなクラウド
logica0419
2
980
「海外登壇」という 選択肢を与えるために 〜Gophers EX
logica0419
0
710
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
44
13k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
Designing Experiences People Love
moore
140
23k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Typedesign – Prime Four
hannesfritz
40
2.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Gamification - CAS2011
davidbonilla
80
5.1k
Producing Creativity
orderedlist
PRO
344
39k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
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
εϐʔΧʔʹͳΔ͜ͱͰɺΑΓָ͍࣌ؒ͠Λաͤͨ͝Γɺ ྑ͖ग़ձ͍͕͋Δ͜ͱΛف͍ͬͯ·͢ʂ