Understanding everything your Django code is doing at runtime using Kolo
09-23, 16:00–16:50 (Europe/Lisbon), Workshops

Reading and understanding existing code is a big part of work as software developers. We're constantly exploring code that we did not write and are not familiar with. Yet the tools we have for this frequent task leave a lot to be desired. In this talk we explore how we can use runtime inspection and Kolo to observe what our Django app is doing while running and how that can help us rapidly build a strong mental model that we can then draw on when writing new code.


One of the most time consuming aspects of creating great software is reading and understanding the code we're extending or building on top of. In fact, some say that for every 1 new line of code that we write, we first read and understand 10 other lines of code. Yet we seem to have few tools that really help us read, learn, and understand existing codebases.

This talk discusses how more often than not, we rely on our own imagination and brain power to understand and explore our codebases. We talk about where debuggers can be useful and the many places where they fall short and actually slow down our learning process.

We explore the inspection of runtime data and observing what our code is actually doing as a potential approach to speed up how quickly we can learn and understand a codebase. Specifically we look at all the information we can observe and visualise during a Django HTTP request/response cycle to help us understand everything that our code is doing.

Finally, we think about where else we could apply this idea of "runtime inspection" to solve other problems: Could this approach help us generate test cases? Or at least help us write test fixtures more quickly? Could it help us notice more quickly when our SQL queries are not efficient? And much more

Outline
1. The problem with reading and understanding code
2. Inspecting runtime data as a potential solution
3. Demo of Kolo: What can Kolo do today?
4. The Glorious Future of collecting, inspecting, and visualizing our code at runtime

Wil is the founder of Simple Poll, one of the most popular apps for Slack, which he develops with his small remote team. Wil loves Django, so naturally Simple Poll was created as a Django app 6 years ago.

Over the past two years, he has been exploring how to improve his own Django development workflow with a side project called Kolo. Kolo is a Django middleware and VSCode extension that shows you everything your Django app is doing as it’s running, making it much faster to ramp up on unfamiliar code and understand whats happening.

Wil lives in London with his partner Emily and puppy Ada.