eGenix Talks: Python Application Design

PyWaw Summit 2015 - Designing Large Scale Applications in Python

Talk given at the first PyWaw Summit 2015 in Warsaw, Poland, demonstrating a guided and structured approach to Python application design.

Python is often referred to as a scripting language. While Python is an ideal platform for scripting, integration or plugin tasks, it does in fact cover all the concepts needed for truly large-scale object oriented application development. However, complex applications bring new challenges.

The talk draws on my experience with large-scale application design using Python as central implementation language and provides a cookbook approach to many of the problems you face when designing and organizing complex application frameworks.

The approach has been used in many real-life projects, ranging from web application servers in varying fields of application to complete finance trading systems. Python has always proven to be a truly good choice with an outstanding time-to-market advantage over other implementation languages such as Java or C++. It allows small software development companies to successfully compete against multi-million dollar ventures.

-- Marc-Andre Lemburg, Senior Software Architect

Talk Video

This talk was given at the first PyWaw Summit 2015 in Warsaw, Poland, by Marc-André Lemburg, CEO of

Mr. Lemburg is available as Python coach and consultant, if you need help in designing your Python applications, refactoring existing ones, or managing such projects to successful completion.

Talk Agenda

  • Introduction
    • Designing Python Applications
    • Large-scale applications
    • Why write applications in Python ?
  • Application Design
    • Situation
    • High-level view
    • Think outside the box...
    • The Design Concept
    • Divide et Impera: Step by step
    • Start with the type of application
    • Choose a suitable application model
    • How should requests be processed ?
    • Identify the processing model
    • Break down by functionality
    • Find the right layer model
    • Examples of layer models
    • Example: Web Application
    • Found the layer model: now what… ?
    • Layers are still too complex
    • Break up layers into components
    • Component design
    • Component examples
    • Advantages of components
    • Component implementation
    • The Big Picture
    • The special System Object
    • Components: Summary
    • Components too complex as well ?
    • Add management objects
    • Management object or component ?
    • Divide et Impera: The Lowest Level
    • Lowest level: Data and task objects
    • Example: Internal Communication
    • The Request Context Data Object
    • There’s beauty in design !
    • Thinking outside the box... a recap
    • Conclusion

  • Before you start ...
    • Structuring your modules
    • Finding the right package structure
    • Data, classes and methods
    • Make mistakes and learn from them
    • Magic word: Refactoring
    • Often forgotten: Documentation
    • Quality Assurance: XP helps !
    • Quality Assurance: More tips

Talk Slides

The talk slides are available as PDF file:

Using the Talk Video Player

For the best viewing experience, please select 1080p HD quality by clicking on the small gear icon and then switch to full-screen mode by clicking on the rectangular bracket icon on the lower right side of the player.

(c) Copyright 2015 All Rights Reserved.