My thoughts
In the beginning, I was intrigued when I saw the book index because there is a complete overview of the design patterns and even more. My first impression was a wow! after the kotlin introduction there are not only a series of the most important design patterns, which I knew a pair of them before from java, also antipatterns are explained and even concurrency using coroutines was a surprise for me because I didn’t use to think that design patterns and concurrency was related each other.
The first section is adequate to get a refresh of the language for programmers that are not very familiar with it. Then the author explains each design pattern inside its classification, structured in a description, sometimes using analogies and a code example it feels complete and makes you understand in a better way the pattern. The only negative aspect of the description is that I would like to find some diagrams or even an extra example of some patterns that I couldn’t understand well.
Section 2: Reactive and Concurrent Patterns, was for me the most interesting but most difficult part of the book. It was difficult because I think that reactive programming is a subject for a complete book, but the intention of the author was to relate the use of patterns not only in the previous description, but also in other programming related techniques, and that was amazing, I learn a lot of how concurrency works and its importance in performance and best practices. Recently I’m using a lot of kotlin Flows in my projects, this lecture gives me a better understanding of how it works and its relation with channels.
The last section: Practical Application of Design Patterns was a surprise for me. Because I didn’t match the idea of relating libraries like Ktor or Vert. x (I didn’t know this after reading this book) with design patterns, but finally after reading this book I was surprised to discover that a lot of design patterns are there and I used them before without knowing.
Finally, I recommend this book for any person that uses kotlin and want to boost their understanding of the language on self and the libraries or frameworks you use every day. I’m sure this lecture can change your perspective of the importance of knowing design patterns and improving as a developer. Kotlin has already some designs implemented, there is no need to think a lot about how to try some designs patterns in your code and this is awesome!
More info
Kotlin Design Patterns and Best Practices: Build scalable applications using traditional, reactive, and concurrent design patterns in Kotlin, 2nd Edition by Alexey Soshin on Amazon.com
More info: https://www.amazon.com/dp/1801815720/ref=cm_sw_em_r_mt_dp_QJQ12H8PG3WFPM9P2JYB