Scala for Java Developers. Build reactive, scalable applications and integrate Java code with the power of Scala - Helion
ebook
Autor: Thomas AlexandreTytuł oryginału: Scala for Java Developers. Build reactive, scalable applications and integrate Java code with the power of Scala.
ISBN: 9781783283644
stron: 282, Format: ebook
Data wydania: 2014-04-25
Księgarnia: Helion
Cena książki: 139,00 zł
Osoby które kupowały "Scala for Java Developers. Build reactive, scalable applications and integrate Java code with the power of Scala", wybierały także:
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Ruby on Rails. Ćwiczenia 18,75 zł, (3,00 zł -84%)
- Przywództwo w świecie VUCA. Jak być skutecznym liderem w niepewnym środowisku 58,64 zł, (12,90 zł -78%)
- Scrum. O zwinnym zarządzaniu projektami. Wydanie II rozszerzone 58,64 zł, (12,90 zł -78%)
- Od hierarchii do turkusu, czyli jak zarządzać w XXI wieku 58,64 zł, (12,90 zł -78%)
Spis treści
Scala for Java Developers. Build reactive, scalable applications and integrate Java code with the power of Scala eBook -- spis treści
- Scala for Java Developers
- Table of Contents
- Scala for Java Developers
- Credits
- Foreword
- About the Author
- Acknowledgments
- About the Reviewers
- www.PacktPub.com
- Support files, eBooks, discount offers, and more
- Why Subscribe?
- Free Access for Packt account holders
- Support files, eBooks, discount offers, and more
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code
- Errata
- Piracy
- Questions
- 1. Programming Interactively within Your Project
- Advantages of using Scala for Java projects
- More concise and expressive
- Increased productivity
- Natural evolution from Java
- Better fit for asynchronous and concurrent code
- Learning Scala through the REPL
- Declaring val/var variables
- Defining classes
- Explaining case classes
- Operations on collections
- Transforming collections containing primitive types
- Collections of more complex objects
- Filter and partition
- Dealing with tuples
- Introducing Map
- Introducing the Option construct
- A glimpse at pattern matching
- The map method
- Looking at String Interpolation
- The groupBy method
- The foldLeft method
- Summary
- Advantages of using Scala for Java projects
- 2. Code Integration
- Creating a REST API from an existing database
- The sample database
- Setting up a Maven project
- Creating JPA entities and REST web services
- Running and testing the project
- Adding a unit test in Java
- Adding a test in Scala
- Setting up Scala within a Java Maven project
- Scala and Java collaboration
- Converting between collection types
- JavaBean-style properties
- Scala and Java object orientation
- Scala traits as enhanced Java interfaces
- Declaring objects
- Introducing companion objects
- Handling exceptions
- Differences in style between Java and Scala code
- Adjusting the code layout
- Naming conventions
- Summary
- Creating a REST API from an existing database
- 3. Understanding the Scala Ecosystem
- Inheriting Java Integrated Development Environments (IDEs)
- Building with Simple Build Tool (SBT)
- Getting started with SBT
- Creating a sample project
- Importing the project in Eclipse, IntelliJ IDEA, and NetBeans
- Creating a web application that runs on a servlet container
- Using sbt-assembly to build a single .jar archive
- Formatting code with Scalariform
- Getting started with SBT
- Experimenting with Scala Worksheets
- Working with HTTP
- Scalas for comprehension
- Taking advantage of Typesafe Activator
- Creating an application based on activator templates
- The REPL as a scripting engine
- Summary
- 4. Testing Tools
- Writing tests with ScalaTest
- BDD-style testing
- Functional testing
- Mocking with ScalaMock
- Testing with ScalaCheck
- Summary
- Writing tests with ScalaTest
- 5. Getting Started with the Play Framework
- Getting started with the classic Play distribution
- Getting started with the Typesafe Activator
- Architecture of a Play application
- Visualizing the framework stack
- Exploring the request-response lifecycle
- Handling a request in the controller
- Rendering the view
- Playing with authentication
- Practical tips when using Play
- Debugging with Play
- Dealing with version control
- Summary
- 6. Database Access and the Future of ORM
- Integrating an existing ORM Hibernate and JPA
- Making JPA available in Scala
- Dealing with persistence in the Play Framework
- A simple example using Anorm
- Replacing ORM
- Learning about Slick
- Scaffolding a Play application
- Importing test data
- Visualizing the database in the H2browser
- Exploring the code behind the app generation
- Limitations of the playcrud utility
- Summary
- Integrating an existing ORM Hibernate and JPA
- 7. Working with Integration and Web Services
- Binding XML data in Scala
- Running scalaxb from a SOAP web service
- Working with XML and JSON
- Manipulating XML
- Manipulating JSON
- Using Play JSON
- Handling Play requests with XML and JSON
- Mocking Play responses with JSON
- Calling web services from Play
- Summary
- Binding XML data in Scala
- 8. Essential Properties of Modern Applications Asynchrony and Concurrency
- The pillars of Concurrency
- The Async library SIP-22-Async
- Combining web services
- Combining services without await
- Getting started with Akka
- Understanding the Actor model
- Switching behavior
- Supervising actors to handle failure
- Testing actor systems
- Exploring further with Akka
- Summary
- 9. Building Reactive Web Applications
- Describing reactive applications
- Handling streams reactively
- Understanding Iteratees in Play
- Adapting Enumerator with Enumeratee
- Experimenting with WebSockets and Iteratees in Play
- Learning from activator templates
- Reactive stocks
- Reactive real-time search
- The Play-Akka-Angular-WebSocket template
- Playing with Actor Room
- Summary
- 10. Scala Goodies
- Exploring MongoDB
- Entering Casbah
- Applying MapReduce transformations
- Scratching the surface of Big Data
- Introducing DSLs in Scala
- Observing internal DSLs
- Tackling external DSLs through parser combinators
- Introducing Scala.js
- Final tips
- Copying and pasting in the REPL
- Timing code execution in the REPL
- Summary
- Exploring MongoDB
- Index