舉報

會員
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
推薦閱讀
- C# 從入門到項目實踐(超值版)
- Rake Task Management Essentials
- Java程序設計與計算思維
- Python算法指南:程序員經典算法分析與實現
- Python機器學習算法: 原理、實現與案例
- 深入淺出React和Redux
- Visual Foxpro 9.0數據庫程序設計教程
- scikit-learn Cookbook(Second Edition)
- 你好!Java
- HikariCP數據庫連接池實戰
- Docker on Windows
- C語言編程魔法書:基于C11標準
- Learning RSLogix 5000 Programming
- Perl 6 Deep Dive
- 計算機教學研究與實踐:2017學術年會論文集
- 活文檔:與代碼共同演進
- Learn Spring for Android Application Development
- 軟件工程基礎
- PHP安全之道:項目安全的架構、技術與實踐
- Smart Internet of Things Projects
- C++程序設計實驗教程
- Machine Learning with TensorFlow 1.x
- Mastering Geospatial Development with QGIS 3.x
- Mastering Apache Spark
- Java程序設計與應用開發(第3版)
- 大學計算機應用基礎
- 西游趣味造物記
- 尋聲記:Scratch 3.0趣味編程之旅(全彩)
- Bash Cookbook
- MATLAB從基礎到精通