Рев'ю та рефакторинг коду

Кейс: створення ПЗ на 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...