Swift:
Рефакторинг

Як це зробити:

Давайте почнемо з базового прикладу на Swift, де у нас є деякий повторюваний код:

func printUserDetails(firstName: String, lastName: String, age: Int) {
    print("Ім'я: \(firstName)")
    print("Прізвище: \(lastName)")
    print("Вік: \(age)")
}

func printUserJob(title: String, company: String) {
    print("Посада: \(title)")
    print("Компанія: \(company)")
}

Рефакторинг цього коду включатиме створення структури User для інкапсуляції атрибутів користувача та додавання методу для друку деталей:

struct User {
    let firstName: String
    let lastName: String
    let age: Int
    let jobTitle: String
    let company: String

    func printDetails() {
        print("Ім'я: \(firstName)")
        print("Прізвище: \(lastName)")
        print("Вік: \(age)")
        print("Посада: \(jobTitle)")
        print("Компанія: \(company)")
    }
}

let user = User(firstName: "John", lastName: "Doe", age: 30, jobTitle: "Розробник програмного забезпечення", company: "Технічні Рішення")
user.printDetails()

Приклад виводу:

Ім'я: John
Прізвище: Doe
Вік: 30
Посада: Розробник програмного забезпечення
Компанія: Технічні Рішення

Поглиблене вивчення

Рефакторинг має коріння, що сягає ранніх днів програмної інженерії, але термін набув популярності наприкінці 1990-х років, зокрема завдяки фундаментальній книзі Мартіна Фаулера “Рефакторинг: Покращення дизайну існуючого коду”. У книзі було викладено принцип, що код слід постійно очищати невеликими кроками, а не чекати окремої фази.

Альтернативи ручному рефакторингу включають автоматизовані інструменти та інтегровані середовища розробки (IDE), які можуть допомагати виявляти дублікати коду, пропонувати спрощення та автоматично генерувати частини коду. Xcode для розробки на Swift пропонує різні інструменти рефакторингу, такі як перейменування та витягнення функціоналу методу, що можуть зменшити потенційність людської помилки в процесі.

При впровадженні рефакторингу важливо мати надійний набір тестів. Тести діють як запобіжна мережа, забезпечуючи, що зміни, які ви вносите, не вводять помилок. Це життєво важливо, оскільки головна мета рефакторингу - змінити внутрішню структуру, не впливаючи на зовнішню поведінку.

Дивіться також