How maintainable is your Python code? Is it possible to hold the code for your functions in your head? When is it appropriate to use measurements in a code review? This week on the show, Reka Horvath and Ben Martineau from Sourcery are here to discuss their recent PyCon talk, “Actionable insights vs ranking: How to use and how NOT to use code quality metrics.”

Reka and Ben share their thoughts on how metrics can provide insights into your Python code. We discuss four measurements of code complexity and what factors into each.

We also talk about deciding whether to refactor or rewrite code. Ben and Reka share their experience in code review situations and the importance of shifting the conversation from subjective opinions toward objective measurements.

Course Spotlight: Writing Idiomatic Python

What are the programming idioms unique to Python? This course is a short overview for people coming from other languages and an introduction for beginners to the idiomatic practices within Python. You’ll cover truth values, looping, DRY principles, and the Zen of Python.

Topics:

  • 00:00:00 – Introduction
  • 00:01:54 – Reka’s tutorials on Real Python
  • 00:02:45 – PyCon US 2022 Talk
  • 00:06:01 – Code reviews and metrics
  • 00:09:42 – Trying to make things more objective
  • 00:13:24 – Sponsor: CData Software
  • 00:14:07 – Measuring WTFs/min and magical code
  • 00:16:39 – Pythonic, idiomatic, and clean code
  • 00:21:17 – Sourcery.ai and refactoring
  • 00:24:04 – Four metrics to measure
  • 00:24:56 – Function length
  • 00:30:05 – Cyclomatic complexity
  • 00:36:49 – Video Course Spotlight
  • 00:38:21 – Cognitive complexity
  • 00:44:38 – Working memory
  • 00:51:49 – Suggestions on how to use the metrics
  • 00:58:34 – Generating measurements
  • 01:01:36 – What are you excited about in the world of Python?
  • 01:03:30 – What do you want to learn next?
  • 01:05:31 – Thanks and goodbye

Show Links:

Level up your Python skills with our expert-led courses:

Support the podcast & join our community of Pythonistas