The book Software Architecture with Python explains various aspects of software architecture like testability, performance, scaling, concurrency and design patterns.
The book has ten chapters. The first chapter speaks about different architect roles like solution architect, enterprise architect, technical architect what is the role of an architect and difference between design and architecture. This chapter is a theory but worth to know the differences as a software developer.
The book covers two lesser spoken topics debugging and code security which I liked. There is very few literature available on debugging. The author has provided real use cases of different debugging tips and tools for Python without picking sides. The book has some good examples of overflow errors in Python.
My favorite chapter in the book is 'Writing Applications that scale'. The author explains all the available concurrency primitives like threading, multiprocess, eventlet, twisted, gevent, asyncio, queues, semaphore, locking etc . The author doesn't stop by explaining how to use them but paves the path to figuring out how to profile the code, find out where the bottleneck lies and when to use which concurrency primitives. This chapter is the longest in the book and deluged with examples and insights. The author's approach of using `time` command to measure the performance rather than sticking with wall-clock time gives the developer understanding of where programming is spending most of the time.
The book covers vital details on implementing Python Design Patterns and how Python's dynamic nature brings joy while creating the creational, structural and design pattern. The showcased examples teach how Python metaclass works and it's simplicity.
The book is indeed a long read and solid one in size and content. Having said that book is pretty hands on and loaded with trivial and non-trivial examples. I won't be surprised if half the book covers the code snippets. The author hasn't shied away from skipping code snippets while explaining any concept. The book introduces a plethora of tools for developing software, and at the same time references required literature and resources.