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