Video description
A wealth of information on general software architecture and truths that are applicable to any language.
David T. Kerns, Rincon Research Corporation
Professional developers know the many benefits of writing application code that’s clean, well-organized, and easy to maintain. By learning and following established patterns and best practices, you can take your code and your career to a new level.
With Practices of the Python Pro, you’ll learn to design professional-level, clean, easily maintainable software at scale using the incredibly popular programming language, Python. You’ll find easy-to-grok examples that use pseudocode and Python to introduce software development best practices, along with dozens of instantly useful techniques that will help you code like a pro.
about the technology
Professional-quality code does more than just run without bugs. It’s clean, readable, and easy to maintain. To step up from a capable Python coder to a professional developer, you need to learn industry standards for coding style, application design, and development process. That’s where this book is indispensable.
about the book
Practices of the Python Pro teaches you to design and write professional-quality software that’s understandable, maintainable, and extensible. Dane Hillard is a Python pro who has helped many dozens of developers make this step, and he knows what it takes. With helpful examples and exercises, he teaches you when, why, and how to modularize your code, how to improve quality by reducing complexity, and much more. Embrace these core principles, and your code will become easier for you and others to read, maintain, and reuse.
what's inside
- Organizing large Python projects
- Achieving the right levels of abstraction
- Writing clean, reusable code Inheritance and composition
- Considerations for testing and performance
about the audience
For readers familiar with the basics of Python, or another OO language.
about the author
Dane Hillard has spent the majority of his development career using Python to build web applications.
Get this book, and begin to write Python code like a professional.
Davide Cadamuro, BMW Group
This will take a Python developer down a path to becoming a pro.
Joseph Perenia, Sony Interactive Entertainment
NARRATED BY LISA FARINA
Table of Contents
Part 1. Why it all matters
Chapter 1. The bigger picture
Chapter 1. Design is a process
Chapter 1. Design enables better software
Chapter 1. When to invest in design
Chapter 1. Design is democratic
Part 2. Foundations of design
Chapter 2. Modules
Chapter 2. Separation of concerns
Chapter 2. The many masks of importing
Chapter 2. The hierarchy of separation in Python
Chapter 2. Classes
Chapter 3. Abstraction and encapsulation
Chapter 3. Encapsulation
Chapter 3. Programming styles are an abstraction too
Chapter 3. Typing, inheritance, and polymorphism
Chapter 4. Designing for high performance
Chapter 4. Time complexity
Chapter 4. Performance and data types
Chapter 4. Make it work, make it right, make it fast
Chapter 4. Tools
Chapter 5. Testing your software
Chapter 5. Functional testing approaches
Chapter 5. Integration testing
Chapter 5. Statements of fact
Chapter 5. Writing your first integration test with unittest
Chapter 5. Testing with pytest
Chapter 5. Beyond functional testing
Part 3. Nailing down large systems
Chapter 6. Separation of concerns in practice
Chapter 6. An initial code structure, by concern
Chapter 6. The persistence layer
Chapter 6. The persistence layer
Chapter 6. The business logic layer
Chapter 6. The presentation layer
Chapter 6. The presentation layer
Chapter 7. Extensibility and flexibility
Chapter 7. Modifying existing behaviors
Chapter 7. Solutions for rigidity
Chapter 7. An exercise in extension
Chapter 8. The rules (and exceptions) of inheritance
Chapter 8. The inheritance of programming present
Chapter 8. Inheritance in Python
Chapter 8. Abstract base classes
Chapter 8. Inheritance and composition in Bark
Chapter 9. Keeping things lightweight
Chapter 9. Breaking down complexity
Chapter 9. Decomposing classes
Chapter 9. Extracting classes and forwarding calls
Chapter 10. Achieving loose coupling
Chapter 10. Recognizing coupling
Chapter 10. Addressing coupling
Part 4. What’s next?
Chapter 11. Onward and upward
Chapter 11. Design patterns
Chapter 11. Distributed systems
Chapter 11. Where you’ve been