Functional Programming for Java Developers


Functional Programming for Java Developers: Tools for Better Concurrency, Abstraction, and Agility

Functional Programming for Java Developers: Tools for Better Concurrency, Abstraction, and Agility

Software development today is embracing functional programming (FP), whether it's for writing concurrent programs or for managing Big Data. Where does that leave Java developers? This concise book offers a pragmatic, approachable introduction to FP for Java developers or anyone who uses an object-oriented language. Dean Wampler, Java expert and author of Programming Scala (O'Reilly), shows you how to apply FP principles such as immutability, avoidance of side-effects, and higher-order functions to your Java code. Each chapter provides exercises to help you practice what you've learned. Once you grasp the benefits of functional programming, you'll discover that it improves all of the code you write.

  • Learn basic FP principles and apply them to object-oriented programming
  • Discover how FP is more concise and modular than OOP
  • Get useful FP lessons for your Java type design - such as avoiding nulls
  • Design data structures and algorithms using functional programming principles
  • Write concurrent programs using the Actor model and software transactional memory
  • Use functional libraries and frameworks for Java - and learn where to go next to deepen your functional programming skills

こんにち、ソフトウェア開発の世界では、並列処理や巨大なデータの管理用途に限らず、関数型プログラミング(FP)が受け入れられつつあります。Java開発者たちは取り残されていくのでしょうか? この簡潔な本では、Java開発者やその他のオブジェクト指向言語の使用者たちに、実用主義的で取っつきやすいFPへの導入を提供します。Dean WamplerはJavaのエキスパートであり『プログラミングScala』(オライリー刊)の著者でもあります。彼は不変性や副作用の回避、高階関数といったFPの諸原則を、どのようにしてJavaのコードに適用するか示しています。章ごとに読者の学習を助けるための演習問題が用意されています。ひとたび関数型プログラミングの恩恵を理解できたら、それがあなたの書くコードをより良いものにしてくれることもわかるでしょう。

  • FPの基本的原則を学び、それらをオブジェクト指向プログラミング〔OOP〕に適用する
  • FPがいかにしてOOPとくらべてより簡潔かつモジュール性の高いプログラミングを可能にするかを理解する
  • nullの回避などJavaコード・デザインについての有益な教訓を得る
  • Actorモデルとソフトウェア・トランザクショナル・メモリーを使用した並列処理を記述する
  • Javaのための便利なライブラリーとフレームワークを使用する─そして関数型プログラミングのスキルをより高めるため方法を学ぶ