Site icon AppTractor

Практики Swift, которые помогут вам выглядеть Senior разработчиком

В этой статье мы обсудим, как писать код на Swift, который будет выглядеть так, как будто его написал опытный Senior разработчик.

1. Отдавайте предпочтение value-типам вместо reference-типов

Swift предоставляет struct и class, и на начальном этапе разработчики часто используют классы для создания моделей данных или хранения состояния.

Однако опытные разработчики предпочитают использовать struct, если нет необходимости в совместном использовании состояния или наследовании.

struct User {
    let id: Int
    var name: String
}

struct — легковесные типы, безопасные для многопоточности и по умолчанию обеспечивают неизменяемость.

2. Грамотно работайте с Optional

Новички часто злоупотребляют оператором принудительной распаковки (!), расставляя его по всему коду. Это серьёзная проблема — при nil в данных такое обращение приведёт к крашу приложения.

func getUserName() -> String? {
    return nil
}

let name:String! = getUserName()
print(name.uppercased())

Что делают опытные:

if let name = getUserName() {
    print(name.uppercased())
} else {
    print("No name available")
}

Или, еще лучше:

print(getUserName()?.uppercased() ?? "No name available")

3. Используйте расширения, чтобы поддерживать чистоту кода

Новички часто дублируют одну и ту же логику в разных местах приложения. Опытные разработчики выносят такую функциональность в extension, чтобы переиспользовать код и держать его более структурированным и читаемым.

extension String {
    var isValidEmail: Bool {
        contains("@") && contains(".")
    }
}

Вместо повторения логики:

if email.contains("@") && email.contains(".") { ... }

Пишите так:

if email.isValidEmail { ... }

4. Отдавайте предпочтение let вместо var

Опытные разработчики стараются использовать let, а не var, поскольку это обеспечивает неизменяемость и может положительно влиять на производительность.

Используйте var только в тех случаях, когда изменение значения действительно необходимо.

5. Документируйте код

Иногда в коде встречается логика, которую невозможно однозначно понять без дополнительного контекста — в таких случаях опытные разработчики добавляют комментарии, чтобы прояснить намерение.

Не стоит комментировать каждую строку — пишите комментарии только там, где это действительно нужно.

/// Loads the cached user profile from disk.
/// - Returns: A `User` object if found, otherwise `nil`.

func loadUserProfile() -> User? { ... }

6. Делайте функции короткими и сфокусированными

Новички часто пишут всю логику в одном месте, из-за чего код становится сложным для чтения и поддержки.

Опытные разработчики разбивают логику на небольшие функции, каждая из которых решает одну конкретную задачу — это повышает читаемость, упрощает тестирование и дальнейшую поддержку кода.

func handleLogin() {
    showLoading()
    val result = login()
    hideLoading()
    showToast(result.message)
}

Это затрудняет чтение и отладку кода. Лучше разделить каждую часть на отдельные функции.

fun showLoading() = ...
fun hideLoading() = ...
fun login(): LoginResult = ..

7. Пишите декларативный код

Опытные разработчики предпочитают писать декларативный код, который легко писать и читать.

Вместо этого:

var items: [String] = []
for fruit in fruits {
    if fruit.hasPrefix("A") {
        items.append(fruit)
    }
}

Делайте так:

let items = fruits.filter { $0.hasPrefix("A") }

8. Заменяйте цепочки if на switch

Новички часто пишут длинные цепочки if-else, из-за чего код становится громоздким и трудночитаемым.

В большинстве таких случаев лучше использовать switch — он делает код более структурированным, наглядным и удобным для поддержки.

  switch serverCode {
    case 200: print("Ok")
    case 400 : print("Bad Request")
    case 401,403 :print("Not Authorized")
    case 500 : print("Server Error")
    default : print("Network Error")
    }

Источник

Exit mobile version