The Real Python Podcast

Measuring Python Code Quality, Simplicity, and Maintainability


Listen Later

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:

    • 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
    • Level up your Python skills with our expert-led courses:

      • Python vs JavaScript for Python Developers
      • Testing Your Code With pytest
      • Writing Idiomatic Python
      • Support the podcast & join our community of Pythonistas

        ...more
        View all episodesView all episodes
        Download on the App Store

        The Real Python PodcastBy Real Python

        • 4.7
        • 4.7
        • 4.7
        • 4.7
        • 4.7

        4.7

        138 ratings


        More shows like The Real Python Podcast

        View all
        Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

        Software Engineering Radio - the podcast for professional software developers

        271 Listeners

        The Changelog: Software Development, Open Source by Changelog Media

        The Changelog: Software Development, Open Source

        284 Listeners

        Thoughtworks Technology Podcast by Thoughtworks

        Thoughtworks Technology Podcast

        41 Listeners

        Talk Python To Me by Michael Kennedy

        Talk Python To Me

        583 Listeners

        Software Engineering Daily by Software Engineering Daily

        Software Engineering Daily

        624 Listeners

        Super Data Science: ML & AI Podcast with Jon Krohn by Jon Krohn

        Super Data Science: ML & AI Podcast with Jon Krohn

        297 Listeners

        Python Bytes by Michael Kennedy and Brian Okken

        Python Bytes

        214 Listeners

        Data Engineering Podcast by Tobias Macey

        Data Engineering Podcast

        141 Listeners

        Machine Learning Guide by OCDevel

        Machine Learning Guide

        770 Listeners

        Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

        Syntax - Tasty Web Development Treats

        986 Listeners

        CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

        CoRecursive: Coding Stories

        190 Listeners

        DataFramed by DataCamp

        DataFramed

        271 Listeners

        Practical AI by Practical AI LLC

        Practical AI

        188 Listeners

        The Stack Overflow Podcast by The Stack Overflow Podcast

        The Stack Overflow Podcast

        63 Listeners

        The Pragmatic Engineer by Gergely Orosz

        The Pragmatic Engineer

        63 Listeners