Granska och refaktorera kod

Fallstudie: Bygga programvara i Python

Mark Pedigo

Principal Data Scientist

Fördelar med regelbunden kodgranskning

  • Förbättrad kodkvalitet
    • Fånga upp inkonsekvenser tidigt
  • Kunskapsdelning
    • Samarbete
    • Hålla sig i linje
  • Konsekvens och god praxis
    • Höga standarder

Två personer som granskar kod på en dator

Fallstudie: Bygga programvara i Python

Exempel på kodgranskning

def factorial(n):
    if n == 0:
        return 1
    else:
        result = 1
        for i in range(1, n + 1):
            result *= i
        return result

Ge feedback om:

  • Funktionalitet
  • Läsbarhet
    • Exempel – onödig else
  • Kantfall
    • Exempel – negativa tal i en fakultetsberäkning
Fallstudie: Bygga programvara i Python

Fördelar med att refaktorera kod

  • Förbättrad kodkvalitet
  • Enklare underhåll
  • Minskad teknisk skuld

Spaghettikod omvandlas till ett flödesschema

Fallstudie: Bygga programvara i Python

Exempel på refaktorering

# Original code
def factorial(n):
    if n == 0:
        return 1
    else:
        result = 1
        for i in range(1, n + 1):
            result *= i
        return result
# Refactored code
def factorial(n):
    if n < 0:
        raise ValueError("Not defined")

if n == 0: return 1
result = 1 for i in range(1, n + 1): result *= i return result
Fallstudie: Bygga programvara i Python

Ny funktion för en ny formel

Tidigare formel $$m = P \cdot \frac{r (1 + r)^N}{(1+r)^N - 1}$$ där $m$ är månadsbetalningen, $P$ är lånebeloppet, $r$ är den månatliga räntan och $N$ är antalet månatliga betalningar

Ny formel $$P = m \cdot \frac{(1+r)^N - 1}{r (1 + r)^N}$$

Fallstudie: Bygga programvara i Python

Färdplan

Färdplan som visar vilka delar av projektet vi slutfört och vilka vi börjar med härnäst

Fallstudie: Bygga programvara i Python

Nu kör vi en övning!

Fallstudie: Bygga programvara i Python

Preparing Video For Download...