I recently had an opportunity to read Python in Practice, by Mark Summerfield as a reviewer for Pearson Education.
Two noteworthy points:
- The code samples are based on Python 3.x
- The author's web site provides sample code download
This book is an excellent addition to any software craftsman's library that needs a quick dive into practical hands-on Python coding. Each page has a feeling of being written from the perspective of someone who has lived in the trenches producing production-quality python code for over a decade. This book has the feeling of a friendly mentor's guiding hand.
To help you understand the impression that this book left in my mind, let me share another word that arose unbidden in my mind as I made my way through the pages of this book: In Japanese, the phrase "Sensei" is often translated as "teacher", but also has a literal meaning of "One Who Has Gone Before". Mark's transmission of his depth of experience to the printed word is given in that same spirit of a Sensei teaching lessons gleaned from years of practice.
Another unexpected pleasure discovered within the pages of Mark's book: An emphasis on patterns. The first three chapters provide an excellent overview of the python-esque approach to implementing the various patterns that were described in the book Design Patterns: Elements of Reusable Object-Oriented Software.
I also found Chapter 5. Extending Python to be very interesting for focusing the discussion on Python's ctypes and Cython - techniques which are often needed to solve high performance problems.
One minor criticism is the author's choice in focusing on XML-RPC style in Chapter 6. High Level Networking [versus RESTful web service based integration strategies]
Chapter 1. Creational Design Patterns
1.1 Abstract Factory PatternChapter 2. Structural Design Patterns
1.2 Builder Pattern
1.3 Factory Method Pattern
1.4 Prototype Method Pattern
1.5 Singleton Pattern
2.1 Adapter PatternChapter 3. Behavioral Design Patterns
2.2 Bridge Pattern
2.3 Composite Pattern
2.4 Decorator Pattern
2.5 Facade Pattern
2.6 Flyweight Pattern
2.7 Prox Pattern
3.1 Chain of Responsibility PatternChapter 4. High-Level Concurrency
3.2 Command Pattern
3.3. Interpreter Pattern
3.4 Iterator Pattern
3.5 Mediator Pattern
3.6 Memento Pattern
3.7 Observer Pattern
3.8 State Pattern
3.9 Strategy Pattern
3.10 Template Method Pattern
3.11 Visitor Pattern
3.12 Case Study: An Image Package
4.1 CPU-Bound ConcurrencyChapter 5. Extending Python
4.2 I/O Bound Concurrency
4.3 Case Study: A Concurrent GUI Application
5.1 Accessing C Libraries with ctypesChapter 6. High-Level Networking
5.2 Using Cython
5.3 Case Study: An Accelerated Image Package
6.1 Writing XML-RPC ApplicationsChapter 7. Graphical User Interfaces with Tkinter
6.2 Writing RPyC Applications
7.1 Introduction to TkinterChapter 8. OpenGL 3D Graphics
7.2 Creating Diaglogs with Tkinter
7.3 Creating Main-Window Applications with TKinter
8.1 A Perspective Scene
8.2 An Orthographic Game
No comments:
Post a Comment