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
Vavrコレクションの紹介 〜 Javaでより安全で楽な関数型プログラミング〜
Search
Shota Sada
June 08, 2025
42
0
Share
Vavrコレクションの紹介 〜 Javaでより安全で楽な関数型プログラミング〜
JJUG CCC 2025春の交流会LTで発表した資料です
Shota Sada
June 08, 2025
Featured
See All Featured
Speed Design
sergeychernyshev
33
1.7k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
The Language of Interfaces
destraynor
162
26k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
700
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
510
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
The Pragmatic Product Professional
lauravandoore
37
7.3k
Practical Orchestrator
shlominoach
191
11k
Transcript
Vavrコレクションの紹介 〜 Javaでより安全で楽な関数型プログラミング〜 JJUG CCC 2025 Spring 交流会LT さだ(@sada_ft)
自己紹介 • さだ(@sada_ft) • ユーザー系IT企業勤務(新卒2年目) • フロント(TS/React) • バック(Java/Spring Boot)
• 初LTです!
こんなことありませんか? • うっかりMutableな引数を渡してしまった 処理中に別スレッドから data.add(“邪魔者”);
こんなことありませんか? • stream噛ませて、最後に終端操作、、、 素晴らしい機能だが、ちょっとめんどくさい • できれば戻り値もイミュータブルにしたい
そこで今回紹介するライブラリが、、、
Vavr • デフォルトで イミュータブル • 関数型プログラミングをサポート • 発音はヴァヴル・ヴェイヴァーかと思ったが、 ヴェイヴっぽい(/ˈveɪ.vɚ/)
None
コードで見る不変性 常に新しい イミュータブルリスト が帰ってくる!
メモリ効率の工夫
シンプルな関数型プログラミング体験 Stream化・終端操作 が不要
パフォーマンス比較
まとめ • 安全なコードを書きたいなら Vavrは便利! • Javaの標準に比べるとパフォーマンスが落ちるが、 バグを未然に防げるのはうれしい (Map、Setもいい感じ) • デメリット
• 標準コレクションとごっちゃになりそう (チーム開発で使う場合は何かしらのご配慮を) 公式:https://vavr.io/