舉報

會員
Learn Scala Programming
ThesecondversionofScalahasundergonemultiplechangestosupportfeaturesandlibraryimplementations.Scala2.13,withitsmainfocusonmodularizingthestandardlibraryandsimplifyingcollections,bringswithitahostofupdates.LearnScalaProgrammingaddressesbothtechnicalandarchitecturalchangestotheredesignedstandardlibraryandcollections,alongwithcoveringin-depthtypesystemsandfirst-levelsupportforfunctions.YouwilldiscoverhowtoleverageimplicitsasaprimarymechanismforbuildingtypeclassesandlookatdifferentwaystotestScalacode.Youwillalsolearnaboutabstractbuildingblocksusedinfunctionalprogramming,givingyousufficientunderstandingtopickanduseanyexistingfunctionalprogramminglibraryoutthere.Intheconcludingchapters,youwillexplorereactiveprogrammingbycoveringtheAkkaframeworkandreactivestreams.Bytheendofthisbook,youwillhavebuiltmicroservicesandlearnedtoimplementthemwiththeScalaandLagomframework.
目錄(333章)
倒序
- coverpage
- 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
推薦閱讀
- Python科學(xué)計算(第2版)
- Node.js 10實戰(zhàn)
- PyQt從入門到精通
- Learning ASP.NET Core 2.0
- Android 9 Development Cookbook(Third Edition)
- Python貝葉斯分析(第2版)
- INSTANT Django 1.5 Application Development Starter
- ANSYS Fluent 二次開發(fā)指南
- 編程菜鳥學(xué)Python數(shù)據(jù)分析
- Access數(shù)據(jù)庫應(yīng)用教程(2010版)
- Python Penetration Testing Essentials
- Manage Your SAP Projects with SAP Activate
- Moodle 3.x Developer's Guide
- ASP.NET Core 2 High Performance(Second Edition)
- Visual FoxPro程序設(shè)計實驗教程
- JavaWeb入門經(jīng)典
- Learning Adobe Muse
- 精通Django 3 Web開發(fā)
- 趣學(xué)Python游戲編程
- C程序員從校園到職場
- 如虎添翼!數(shù)據(jù)處理的SPSS和SAS EG實現(xiàn)(第2版)
- JavaScript Promises Essentials
- 細(xì)說PyTorch深度學(xué)習(xí):理論、算法、模型與編程實現(xiàn)
- Java語言程序設(shè)計
- 敏捷開發(fā)的藝術(shù)
- MySQL 從入門到項目實踐(超值版)
- 編程真好玩:青少年學(xué)Python一本通
- Creating Development Environments with Vagrant(Second Edition)
- Learning Underscore.js
- Lua Game Development Cookbook