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 предлагает различные инструменты рефакторинга, такие как переименование и функциональность извлечения метода, которые могут сократить потенциал человеческой ошибки в процессе.

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

Смотрите также