舉報

會員
Hands-On Design Patterns with Kotlin
ThisbookisfordeveloperswhowouldliketomasterdesignpatternswithKotlintobuildefficientandscalableapplications.BasicJavaorKotlinprogrammingknowledgeisassumed.
最新章節
- Leave a review - let other readers know what you think
- Other Books You May Enjoy
- Summary
- More testing
- Producer
- Consumer
品牌:中圖公司
上架時間:2021-06-25 20:42:38
出版社:Packt Publishing
本書數字版權由中圖公司提供,并由其授權上海閱文信息技術有限公司制作發行
- Leave a review - let other readers know what you think 更新時間:2021-06-25 20:50:04
- Other Books You May Enjoy
- Summary
- More testing
- Producer
- Consumer
- EventBus
- Managing the database
- Managing configuration
- Working with databases
- Helper methods
- Testing
- Subrouting
- Verticles
- Handling requests
- Routing
- Getting started with Vert.x
- Reactive Microservices with Kotlin
- Summary
- Scala functions
- More companions
- Sealed not enumerated
- Validation
- Explicit async
- Dealing with nulls
- Constructor overload
- Constants
- Reified
- Inline functions
- Try-with-resources
- Instance checks
- With
- Run
- Also
- Apply
- Let
- Idioms and Anti-Patterns
- Summary
- Deferred channel
- Sidekick channel
- Selecting on close
- Mutexes
- Unbiased select
- Buffered channels
- Managing workers
- The fan-in design pattern
- The fan-out design pattern
- Establishing a pipeline
- Pipelines
- Understanding contexts
- Scheduler
- Data class as Barrier
- CountDownLatch
- Barrier
- Deferred value
- Testing
- Active Object
- Designed for Concurrency
- Summary
- Actors
- Producers
- Channels
- Parent jobs
- Setting timeouts
- Returning results
- Canceling a coroutine
- Waiting for a coroutine
- Fixing starvation
- Coroutines under the hood
- Coroutine starvation
- Jobs
- Starting coroutines
- Coroutines
- Threads are expensive
- Thread safety
- Threads
- Threads and Coroutines
- Summary
- Throttling
- Batching
- FlowableProcessor
- Holding state
- Flowables
- SerializedSubject
- AsyncSubject
- BehaviorSubject
- ReplaySubject
- Subject
- Multicast
- Hot Observable
- Reactive extension
- Message-driven
- Elasticity
- Resiliency
- Responsiveness
- Reactive principles
- Staying Reactive
- Summary
- Sequences
- Streams are lazy collections are not
- Zip/Unzip
- Chunked
- Slice
- Flat family
- Fold/Reduce
- Join family
- ForEach
- Sort family
- Drop family
- Find family
- Filter family
- The map() function
- The it notation
- Streaming Your Data
- Summary
- Recursion
- Pattern matching
- Expressions not statements
- Memoization
- Currying
- Pure functions
- Higher-order functions
- Functions as values
- Immutable collections
- Value mutation
- Tuples
- Immutability
- Why functional programming?
- Functional Programming
- Summary
- Animal Choir
- Observer
- Template method
- Writing a crawler
- Visitor
- Remembrance
- Memento
- Caveats
- Flavors
- The middleman
- Trouble in the Jungle
- Mediator
- Call suffix
- Taking a break
- A language of your own
- We need to go deeper
- Interpreter
- Chain of responsibility
- Undoing commands
- Command
- State of the Nation
- Fifty shades of State
- State
- Running through the values
- One two... many
- Iterator
- Switching sides
- Citizen function
- Fruit arsenal
- Strategy
- Getting Familiar with Behavioral Patterns
- Summary
- Lazy delegation
- A replacement
- A short detour into the RMI world
- Proxy
- Saving memory
- Being conservative
- Flyweight
- Keep it simple
- Facade
- Counting bullets
- Varargs and secondary constructors
- The Squad
- Get together
- Composite
- A lethal weapon
- Constants
- You're in the army now
- Type aliases
- Bridging changes
- Bridge
- Caveats of using adapters
- Adapters in the real world
- Different adapters
- Adapter
- Caveats
- The great combinator
- Dude where's my map?
- Operator overloading
- Enhancing a class
- Decorator
- Understanding Structural Patterns
- Summary
- Starting from a prototype
- Building your own PC
- Prototype
- Creating an email – the Kotlin way – second attempt
- Creating an email – the Kotlin way
- Creating an email – second attempt
- Creating an email – first attempt
- Collection types in Kotlin
- Composing an email
- Builder
- Making improvements
- Back to our bases
- Introduction to generics in Kotlin
- Abstract Factory in action
- Abstract Factory
- Companion object
- Static Factory Method in Kotlin
- Subclassing
- Caching
- Advantages of the Static Factory Method
- Static Factory Method
- Factory
- Factory Method
- Singleton
- Working with Creational Patterns
- Summary
- Why use design patterns in Kotlin?
- Design process
- Design patterns in real life
- What are design patterns?
- Introduction to design patterns
- Extension functions
- While loop
- For-each loop
- The for loop
- More control flow – loops
- Data classes
- Properties
- Constructors
- Inheritance
- Classes
- Classes and inheritance
- String interpolation
- Using the when expression
- Using the if expression
- Control flow
- Declaring functions
- Null safety
- Comparison
- val versus var
- Type inference
- Types
- Packages
- Naming conventions
- No semicolons
- Code structure
- Multi-paradigm
- Basic language syntax and features
- Getting Started with Kotlin
- Reviews
- Get in touch
- Conventions used
- Download the example code files
- To get the most out of this book
- What this book covers
- Who this book is for
- Preface
- Packt is searching for authors like you
- About the reviewers
- About the author
- Contributors
- PacktPub.com
- Why subscribe?
- Packt Upsell
- Dedication
- 版權信息
- 封面
- 封面
- 版權信息
- Dedication
- Packt Upsell
- Why subscribe?
- PacktPub.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
- Conventions used
- Get in touch
- Reviews
- Getting Started with Kotlin
- Basic language syntax and features
- Multi-paradigm
- Code structure
- No semicolons
- Naming conventions
- Packages
- Types
- Type inference
- val versus var
- Comparison
- Null safety
- Declaring functions
- Control flow
- Using the if expression
- Using the when expression
- String interpolation
- Classes and inheritance
- Classes
- Inheritance
- Constructors
- Properties
- Data classes
- More control flow – loops
- The for loop
- For-each loop
- While loop
- Extension functions
- Introduction to design patterns
- What are design patterns?
- Design patterns in real life
- Design process
- Why use design patterns in Kotlin?
- Summary
- Working with Creational Patterns
- Singleton
- Factory Method
- Factory
- Static Factory Method
- Advantages of the Static Factory Method
- Caching
- Subclassing
- Static Factory Method in Kotlin
- Companion object
- Abstract Factory
- Abstract Factory in action
- Introduction to generics in Kotlin
- Back to our bases
- Making improvements
- Builder
- Composing an email
- Collection types in Kotlin
- Creating an email – first attempt
- Creating an email – second attempt
- Creating an email – the Kotlin way
- Creating an email – the Kotlin way – second attempt
- Prototype
- Building your own PC
- Starting from a prototype
- Summary
- Understanding Structural Patterns
- Decorator
- Enhancing a class
- Operator overloading
- Dude where's my map?
- The great combinator
- Caveats
- Adapter
- Different adapters
- Adapters in the real world
- Caveats of using adapters
- Bridge
- Bridging changes
- Type aliases
- You're in the army now
- Constants
- A lethal weapon
- Composite
- Get together
- The Squad
- Varargs and secondary constructors
- Counting bullets
- Facade
- Keep it simple
- Flyweight
- Being conservative
- Saving memory
- Proxy
- A short detour into the RMI world
- A replacement
- Lazy delegation
- Summary
- Getting Familiar with Behavioral Patterns
- Strategy
- Fruit arsenal
- Citizen function
- Switching sides
- Iterator
- One two... many
- Running through the values
- State
- Fifty shades of State
- State of the Nation
- Command
- Undoing commands
- Chain of responsibility
- Interpreter
- We need to go deeper
- A language of your own
- Taking a break
- Call suffix
- Mediator
- Trouble in the Jungle
- The middleman
- Flavors
- Caveats
- Memento
- Remembrance
- Visitor
- Writing a crawler
- Template method
- Observer
- Animal Choir
- Summary
- Functional Programming
- Why functional programming?
- Immutability
- Tuples
- Value mutation
- Immutable collections
- Functions as values
- Higher-order functions
- Pure functions
- Currying
- Memoization
- Expressions not statements
- Pattern matching
- Recursion
- Summary
- Streaming Your Data
- The it notation
- The map() function
- Filter family
- Find family
- Drop family
- Sort family
- ForEach
- Join family
- Fold/Reduce
- Flat family
- Slice
- Chunked
- Zip/Unzip
- Streams are lazy collections are not
- Sequences
- Summary
- Staying Reactive
- Reactive principles
- Responsiveness
- Resiliency
- Elasticity
- Message-driven
- Reactive extension
- Hot Observable
- Multicast
- Subject
- ReplaySubject
- BehaviorSubject
- AsyncSubject
- SerializedSubject
- Flowables
- Holding state
- FlowableProcessor
- Batching
- Throttling
- Summary
- Threads and Coroutines
- Threads
- Thread safety
- Threads are expensive
- Coroutines
- Starting coroutines
- Jobs
- Coroutine starvation
- Coroutines under the hood
- Fixing starvation
- Waiting for a coroutine
- Canceling a coroutine
- Returning results
- Setting timeouts
- Parent jobs
- Channels
- Producers
- Actors
- Summary
- Designed for Concurrency
- Active Object
- Testing
- Deferred value
- Barrier
- CountDownLatch
- Data class as Barrier
- Scheduler
- Understanding contexts
- Pipelines
- Establishing a pipeline
- The fan-out design pattern
- The fan-in design pattern
- Managing workers
- Buffered channels
- Unbiased select
- Mutexes
- Selecting on close
- Sidekick channel
- Deferred channel
- Summary
- Idioms and Anti-Patterns
- Let
- Apply
- Also
- Run
- With
- Instance checks
- Try-with-resources
- Inline functions
- Reified
- Constants
- Constructor overload
- Dealing with nulls
- Explicit async
- Validation
- Sealed not enumerated
- More companions
- Scala functions
- Summary
- Reactive Microservices with Kotlin
- Getting started with Vert.x
- Routing
- Handling requests
- Verticles
- Subrouting
- Testing
- Helper methods
- Working with databases
- Managing configuration
- Managing the database
- EventBus
- Consumer
- Producer
- More testing
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-25 20:50:04