Extensible Python: Robustness Through Addition
summary
Claim: make systems extensible by adding code instead of editing it so a Boolean change stops touching a dozen files and instead becomes one configuration line. Demonstrations use pip dep tree and static call-graph tools to find high fan‑in modules, use Pub sub style messaging to decouple producers and consumers so new subscribers appear without changing publishers, and use pluggy / extension manager patterns to install new features via pip. Concrete examples and small code sketches show this reliably reduces commit churn and enables safe substitution.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 0:24Long-lived codebases
- 2:12Empathy for extensibility
- 3:38Commit complexity
- 4:20Open Closed Principle
- 5:44Policies vs mechanisms
- 7:10Reusable components
- 8:34Data-driven designs
- 9:57Library development
- 12:45Architectural extensibility
- 16:34Physical vs logical dependencies
- 20:05Event-driven decoupling
- 23:37Pluggable architectures
- 25:22Plugging into algorithms
- 27:30Plugging into Stevedore
- 29:36Extensibility advice
related talks
48mThe road to extensibility
26mPlug life into your codebase: Making established Python codebase pluggable
19mExtensibility as a Product
19mExtensibility as a Product
19mPatterns for Extensibility
26mOpen Source on Easy Mode
41mThe Snake in the Tar Pit: Complex Systems with Python
24mPython for Humans, Designing Python Code Like a User Interface
