Skip to content

Latest commit

 

History

History
192 lines (97 loc) · 2.98 KB

Expert Python Programming.md

File metadata and controls

192 lines (97 loc) · 2.98 KB

Expert Python Programming, 2e

by Michal Jaworski, Tarek Ziade, May 2016 (Packt Publishing)

Advanced Python programming with Python 3.5 at real production level.


Preface

1. Current Status of Python

Where are we now and where are we going?

Why and how does Python change?

Getting up to date with changes — PEP documents

Python 3 adoption at the time of writing this book

The main difference between Python 3 and Python 2

Not only CPython

Modern approaches to Python development

Application-level isolation of Python environments

System-level isolation

Popular productivity tools

Useful resources

Summary

2. Syntax Best Practices — Below the Class Level

Python's built-in types

Advanced syntax

Other syntax elements you may not know yet

Summary

3. Syntax Best Practices — Above the Class Level

Subclassing built-in types

Accessing methods from superclasses

Advanced attribute access patterns

Metaprogramming

Summary

4. Choosing Good Names

PEP 8 and naming best practices

Naming styles

The naming guide

Best practices for arguments

Class names

Module and package names

Useful tools

Summary

5. Writing a Package

Creating a package

Namespace packages

Uploading a package

Standalone executables

Summary

6. Deploying Code

The Twelve-Factor App

Deployment automation using Fabric

Your own package index or index mirror

Common conventions and practices

Code instrumentation and monitoring

Summary

7. Python Extensions in Other Languages

Different language means — C or C++

Why you might want to use extensions

Writing extensions

Challenges

Interfacing with dynamic libraries without extensions

Summary

8. Managing Code

Version control systems

Continuous development processes

Summary

9. Documenting Your Project

The seven rules of technical writing

A reStructuredText primer

Building the documentation

Making your own portfolio

Summary

10. Test-Driven Development

I don't test

I do test

Summary

11. Optimization — General Principles and Profiling Techniques

The three rules of optimization

Optimization strategy

Finding bottlenecks

Summary

12. Optimization — Some Powerful Techniques

Reducing the complexity

Simplifying

Using collections

Using architectural trade-offs

Caching

Summary

13. Concurrency

Why concurrency?

Multithreading

Multiprocessing

Asynchronous programming

Summary

14. Useful Design Patterns

Creational patterns

Structural patterns

Behavioral patterns

Summary