Episode 117: Measuring Python Code Quality, Simplicity, and Maintainability
The Real Python Podcast
Jul 15, 2022 1h 6m
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.”
Episode Sponsor:
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:
- Sourcery | Automatically Improve Python Code Quality
- Can you fit all of this code in your head?
- Talk - Reka/Ben: Actionable insights vs ranking How to use and how NOT to use code quality metrics - YouTube
- Using Pandas and Python to Explore Your Dataset – Real Python
- Refactoring - Martin Fowler
- WTFs/m – OSnews
- Who’s Your Coding Buddy?
- Principle of least astonishment - Wikipedia
- Anthony Shaw - Wily Python: Writing simpler and more maintainable Python - PyCon 2019 - YouTube
- Refactoring Python Applications for Simplicity – Real Python
- Cyclomatic complexity - Wikipedia
- Cognitive Complexity: A new way of measuring understandability - SonarSource
- The Magical Number Seven, Plus or Minus Two - Wikipedia
- wily · PyPI
- sourcery-analytics: A command line tool and library for statically analyzing Python code quality.
- Clean Code: A Handbook of Agile Software Craftsmanship - Robert C. Martin
- Errors and Exceptions — Python 3.10.5 documentation
- Rust Programming Language
- Ben Martineau – Medium
- Sourcery | Blog
- The Prodigy - ‘Breathe’ - YouTube