Clean Architectures in Python

Leonardo Giordani

Abstract

What is a good software architecture? Why should we bother structuring the code and spending time testing it? The clean architecture is a good way to structure an application to make it easy to develop, debug, maintain, and change.

Description

Architectural considerations are often overlooked by developers or completely delegated to a framework. We should start once again discussing how applications are structured, how components are connected and how to lower coupling between different parts of a system, to avoid creating software that cannot easily be maintained or changed.

The “clean architecture” model predates Robert Martin, who recently brought it back to the attention of the community, and is a way of structuring applications that leverages layers separation and internal APIs to achieve a very tidy, fully-tested, and loosely coupled system. The talk introduces the main ideas of the architecture, showing how the layers can be implemented in Python, following the content of the book “Clean Architectures in Python” edited by Leanpub. The book recently reached 8,000 downloads and many readers found it useful to start learning how to test software and how to structure an application without relying entirely on the framework.

Bio

Born in 1977, I started coding in 1987 on a Sinclair ZX Spectrum. I then moved to MS-DOS PCs and in 1996 I started using Linux and became interested in operating system internals. In these 31 years I worked with several programming languages (x86 Assembly, Turbo Pascal, Prolog, Lisp, C, bash, Erlang, Python). I love architectures, algorithms, mathematics and cryptography. I currently work as an infrastructure engineer and Python developer.

From 2013 I blog some technical thoughts at http://thedigitalcatonline.com @thedigicat