Проверка и рефакторинг кода

Практический проект: разработка программного обеспечения на Python

Mark Pedigo

Principal Data Scientist

Преимущества периодического ревью кода

  • Повышение качества кода
    • Раннее выявление ошибок
  • Обмен знаниями
    • Совместная работа
    • Единое понимание
  • Единообразие и лучшие практики
    • Высокие стандарты

Два человека проверяют код на компьютере

Практический проект: разработка программного обеспечения на Python

Пример ревью кода

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

Дайте обратную связь по:

  • Функциональности
  • Читаемости
    • Пример — лишний else
  • Граничным случаям
    • Пример — отрицательные числа для факториала
Практический проект: разработка программного обеспечения на Python

Преимущества рефакторинга кода

  • Повышение качества кода
  • Упрощение поддержки
  • Снижение технического долга

Запутанный код превращается в понятную блок-схему

Практический проект: разработка программного обеспечения на Python

Пример рефакторинга

# 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
Практический проект: разработка программного обеспечения на Python

Новая функция для новой формулы

Исходная формула $$m = P \cdot \frac{r (1 + r)^N}{(1+r)^N - 1}$$ где $m$ — ежемесячный платёж, $P$ — сумма кредита, $r$ — ежемесячная процентная ставка, $N$ — количество ежемесячных платежей

Новая формула $$P = m \cdot \frac{(1+r)^N - 1}{r (1 + r)^N}$$

Практический проект: разработка программного обеспечения на Python

Дорожная карта

Дорожная карта с выполненными и предстоящими этапами проекта

Практический проект: разработка программного обеспечения на Python

Давайте потренируемся!

Практический проект: разработка программного обеспечения на Python

Preparing Video For Download...