Published on: 15.08.2018
This is the first book that I have read regarding software design patterns in Python language, for me it is useful as the code implementation reference.
Book explains and implements some(singleton, factory, facade, proxy, observer, command, template method, MVC, state design) software design patterns in Python language.
It also gives the general overview of design patterns and antipatterns.
What I do not like is that book first does an explanation of code and then shows the code that has been already explained.
For me, it is better first to see the code and then to read the explanation of it.
The best approach for explaining code so far I have seen in Fluent Python.
In that book, the first code is shown and then it is explained.
And the best part, in Fluent Python, not the whole code is explained but just concepts that you have not seen in the book before.
My experience with learning software design patterns from books is generally unsuccessful.
I learn things when I need to use them, so generally only when I had the unmaintainable code and when I wanted to make it more manageable I usually end up reinventing some pattern.
Then I was able to understand some design patterns, from standpoint of why to use it (what is the benefit).
But I do recommend reading books about design patterns, even if you do not understand it completely because probably you will remember it when you need it in practice and then you can open it, read it and implement it.
Believe me, it is easier than reinventing patterns from scratch.
I think that book would be better is first there was code written without design patterns because than the reader could see what kind of mess it is and how hard is it to maintain it.
But that kind of book would probably be even 3-5 time longer.