PyCon UK 2019

Philosophy of Refactoring
2019-09-13, 16:30–17:00, Ferrier Hall

Many of us can recite the advantages of well factored code, yet in practice it is easy to let standards slide. This talk explores the mindset one should adopt to have a well factored codebase, complete with examples of how this looks in practice.


At Deloitte we frequently switch between clients, which means we must be prepared to work with a new tech stack at short notice. When learning a new technology it may be natural to try and gain a knowledge of its syntax, standard library and idioms. Yet an overarching understanding of how to factor problems into well-conceived functional units is even more important.

This talk will explain how to tame a difficult problem by adopting a rigorous philosophy towards separation of concerns, a topic that is relevant to any language but particularly important in the Python community, which places great emphasis on beauty and readability.

Examples of how factoring can be improved will be provided with the code posted on GitHub, but the take home message is around the mindset required to write well factored code, not the tooling.

Let human beings, with their limitless creativity but poor short term memory, operate on a single level of abstraction. Let machines, with their capacity to handle data but lack of original thought, do the legwork of building a coherent application.


Is your proposal suitable for beginners? – yes