Log In
Join
 for free
Back To Course Home
Kotlin Design Patterns and Best Practices
0% completed
Getting Started with Kotlin
Getting Started
Basic Language Syntax and Features
Understanding Kotlin Code Structure
Understanding Types
Control Flow
Null Safety
Reviewing Kotlin Data Structures
Working with Text
Loops
Classes
Interfaces, Abstract Classes and Inheritance
Data Classes
Extension Functions
Introduction to Design Patterns
Quiz on Kotlin Basics
Working with Creational Patterns
Singleton Design Pattern
Factory Design Pattern
Abstract Factory Design Pattern
Builder Design Pattern
Prototype Design Pattern
Quiz on Creational Patterns
Understanding Structural Patterns
Decorator Design Pattern
Operator Overloading and Decorator Design Pattern Caveats
Adapter Design Pattern
Bridge Design Pattern
Composite Design Pattern
Facade Design Pattern
Flyweight Design Pattern
Proxy Design Pattern
Quiz on Structural Patterns
Getting Familiar with Behavioral Patterns
Strategy Design Pattern
Iterator design pattern
State Design Pattern
Command Design Pattern
Chain of Responsibility Design Pattern
Interpreter Design Pattern
Mediator Design Pattern
Memento Design Pattern
Visitor Design Pattern
Template Method Design Pattern
Observer Design Pattern
Quiz on Behavioral Patterns
Introducing Functional Programming
Immutability
Functions as Values
Closures and Pure Functions
Currying and Memoization
Using Expressions Instead of Statements
Recursion
Quiz on Functional Programming in Kotlin
Threads and Coroutines
Looking Deeper into Threads
Introducing Coroutines
Coroutines Under the Hood
Canceling a Coroutine
Setting Timeouts, Dispatchers and Structured Concurrency
Quiz on Threads and Coroutines
Controlling the Data Flow
Reactive Principles
Higher-Order Functions on Collections
Exploring Concurrent Data Structures
Channels
Flows
Quiz on Controlling the Data Flow
Designing for Concurrency
Deferred Value Design Pattern
Barrier Design Pattern
Scheduler Design Pattern
Pipeline Design Pattern
Fan Out and Fan In Design Patterns
Racing and Unbiased Select Design Patterns
Mutex and Sidekick Channel Design Pattern
Quiz on Designing for Concurrency
Idioms and Anti-Patterns
Using the Scope Functions
Type Checks and Casts
Inline Functions and Implementing Algebraic Data Types
Reified Generics
Using Constants Efficiently
Constructor Overload
Dealing with Nulls and Making Asynchronicity Explicit
Validating Input and Preferring Sealed Classes over Enums
Quiz on Idioms and Anti-Patterns
Concurrent Microservices with Ktor
Getting Started and Adding the Dependencies
Starting the Server
Routing Requests
Testing the Service and Modularizing the Application
Connecting to the Database
Creating new Entities
Fetching new Entities
Organizing the Routes
Reactive Microservices with Vert.x
Getting Started
Adding Dependencies and Starting the Server
Routing in Vert.x
Verticles and Handling Requests
Testing Vert.x Applications
Working with Databases
Understanding Event Loop
Communicating with Event Bus
Conclusion
Summary
Canceling a Coroutine
Learn how to stop a thread by canceling a coroutine.
Get hands-on with 1400+ tech skills courses.
Start Free Trial