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