Practices of the Python Pro (Video Edition)

Practices of the Python Pro (Video Edition)

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 6h 20m | 2.21 GB

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.

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.

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
Table of Contents

1 Why it all matters
2 The bigger picture
3 Design is a process
4 Design enables better software
5 When to invest in design
6 Design is democratic
7 Foundations of design
8 Modules
9 Separation of concerns
10 The many masks of importing
11 The hierarchy of separation in Python
12 Classes
13 Abstraction and encapsulation
14 Encapsulation
15 Programming styles are an abstraction too
16 Typing, inheritance, and polymorphism
17 Designing for high performance
18 Time complexity
19 Performance and data types
20 Make it work, make it right, make it fast
21 Tools
22 Testing your software
23 Functional testing approaches
24 Integration testing
25 Statements of fact
26 Writing your first integration test with unittest
27 Testing with pytest
28 Beyond functional testing
29 Nailing down large systems
30 Separation of concerns in practice
31 An initial code structure, by concern
32 The persistence layer
33 The persistence layer
34 The business logic layer
35 The presentation layer
36 The presentation layer
37 Extensibility and flexibility
38 Modifying existing behaviors
39 Solutions for rigidity
40 An exercise in extension
41 The rules (and exceptions) of inheritance
42 The inheritance of programming present
43 Inheritance in Python
44 Abstract base classes
45 Inheritance and composition in Bark
46 Keeping things lightweight
47 Breaking down complexity
48 Decomposing classes
49 Extracting classes and forwarding calls
50 Achieving loose coupling
51 Recognizing coupling
52 Addressing coupling
53 What’s next
54 Onward and upward
55 Design patterns
56 Distributed systems
57 Where you’ve been