Learn Scala Programming
Slava Schmidt更新时间:2021-06-10 19:36:39
最新章节:Leave a review - let other readers know what you thinkcoverpage
Title Page
Dedication
Packt Upsell
Why subscribe?
Packt.com
Contributors
About the author
About the reviewers
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
An Introduction to Scala 2.13
Technical requirements
Introduction to Scala 2.13
New features of Scala 2.13
Optional parsing for string literals
Products can report the names of their element
Added methods for chaining operations
Automatic Resource Management
The Scala 2.13 Collection Library
IterableOnceOps
IterableOps
WithFilter
IterableFactory
View
Set
Map
SortedMap
HashMap
MultiMap
SeqMap
Seq
IndexedSeq
LinearSeq
Buffers
Scala Collection Contrib library
Summary
Questions
Further reading
Understanding Types in Scala
Technical requirements
Understanding types
Ways to create a type
Literal types
Compound (intersection) types
Type constraints
Scala's types hierarchy and special types
Type inference
Path-dependent types
Types – all the way down
Type parameters
Type members
Generalized type constraints
Infix types
Variance
Existential types
Higher kinded types
Type lambdas
Using types to define domain constraints
Phantom types
Self-recursive types
Summary
Questions
Further reading
Deep Dive into Functions
Technical requirements
Ways to define a function
Function as a method
Local functions
Closures
Partial application and functions
Function literals
Currying
Polymorphism and higher order functions
Polymorphic functions
Higher-order functions
Recursion and trampolining
Recursion
Tail recursion
Trampolining
Object-oriented aspects of functions
Functions are traits
Partial functions
Function object
Extending functions
Summary
Questions
Further reading
Getting to Know Implicits and Type Classes
Technical requirements
Types of implicits
Implicit conversions
Implicit parameters
Implicit classes
View and context bounds
View bounds
Context bounds
Type classes
Type classes
Type class recursive resolution
Type class variance
Implicit scope resolution
Lexical scope
Implicit scope
Static overloading rules
Summary
Questions
Further reading
Property-Based Testing in Scala
Technical requirements
Introduction to property-based testing
From unit tests to properties
ScalaCheck
Properties
Types of properties
Commutativity
Associativity
Identity
Invariants
Idempotence
Induction
Symmetry
Test Oracle
Defining a property
Checking property
Combining properties
Generators
Existing generators
Combining generators
Shrinkers
Summary
Questions
Exploring Built-In Effects
Technical requirements
Introduction to effects
Option
Creating an Option
Reading from an Option
Option as an effect
Either
Creating Either
Reading values from Either
Either as an Effect
Try
Creating a Try
Reading values from Try
Try as an effect
Future
Creating a Future
Reading values from a Future
Future as an effect
Summary
Questions
Understanding Algebraic Structures
Technical requirements
Introduction to abstract algebraic structures
Semigroup
Monoid
Foldable
Group
Summary
Questions
Further reading
Dealing with Effects
Technical requirements
Functor
Applicative
Traversable
Summary
Questions
Further reading
Familiarizing Yourself with Basic Monads
Technical requirements
Introduction to monads
Id Monad
State monad
Reader monad
Writer monad
Summary
Questions
Further reading
A Look at Monad Transformers and Free Monad
Technical requirements
Combining monads
Monad transformers
Monad transformers stacks
Free monads
Summary
Questions
Further reading
An Introduction to the Akka and Actor Models
Technical requirements
Introduction to the actor model
Akka basics
Defining actors
The life cycle of an actor
Dispatchers
Terminating actors
The ask pattern
Changing an actor's behavior using context
Advanced topics
Akka FSM
Akka remoting
The actor path
Actor supervision
Testing actors
Running the application
Summary
Questions
Further reading
Building Reactive Applications with Akka Typed
Technical requirements
Introduction
The typed approach and the differences between Akka untyped
Example actor system
First example
Akka Typed basics
Creating an actor
Stopping an actor
Discovering an actor
Akka Typed – beyond the basics
Life cycle of an actor
Supervision
Watching an actor
Timers
Stashing
Combining behaviors
Cluster
Testing
Dependencies and setup
Synchronous testing
Asynchronous testing
Running the application
Summary
Basics of Akka Streams
Technical requirements
Introduction to Akka Streams
Reactive Streams and backpressure
Akka Streams
Setup and dependency
Essential concepts
Structure of the example
Basics of Akka Streams
Sources and sinks
Flows
Graphs
Logging
Materialization
Handling failure
Testing
Akka TestKit
Streams TestKit
Running the application
Summary
Questions
Further reading
Project 1 - Building Microservices with Scala
Technical requirements
Essentials of microservices
Building a microservice with http4s and doobie
Project structure
FS2 – functional streams
Database migrations
Configuration with PureConfig
Doobie – functional database access
http4s – streaming HTTP
Bringing it all together
Testing
Running the application
Building microservices with Akka-HTTP and Akka Persistence
Project structure
Event-Sourcing and CQRS
Configuring Akka Persistence
Domain models
The persistent actor
Akka-HTTP
Bringing it all together
Testing
Running the application
Summary
Questions
Further reading
Project 2 - Building Microservices with Lagom
Technical requirements
Why Lagom?
Project overview and setup
The bakery project
Project setup
Lagom's APIs
Service API
Persistence API
Message Broker API
Service API from the client side
Running the application
Testing
Summary
Questions
Further reading
Preparing the Environment and Running Code Samples
Installing software
Installing Java Virtual Machine (JVM)
Installing SBT
Working with the code
Getting the code
Working with the source code
Using the SBT console
Using REPL
Assessments
Chapter 1
Chapter 2
Chapter 3
Chapter 4
Chapter 5
Chapter 6
Chapter 7
Chapter 8
Chapter 9
Chapter 10
Chapter 11
Chapter 12
Chapter 13
Chapter 14
Chapter 15
Other Books You May Enjoy
Leave a review - let other readers know what you think
更新时间:2021-06-10 19:36:39