Swift中的整洁代码:iOS/macOS的原则与示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Swift中的Clean Code:实践中的原则与示例

整洁代码(Clean Code)不仅仅是一个时髦的术语,而是每位使用Swift进行iOS和macOS开发的开发者的基本技能。在Apple生态系统中,项目通常持续多年并由不同团队维护,编写清晰、可预测且易于修改的代码的能力直接影响开发速度和Bug数量。在本文中,我们将通过具体示例分析Swift中Clean Code的关键原则,您今天就可以在自己的项目中应用这些原则。



为什么Clean Code对Swift开发者很重要?

Swift是一种强大且富有表现力的语言,但如果不遵守纪律,其灵活性可能导致混乱。整洁代码解决了三个主要问题:

  • 可读性:其他开发者(或一个月后的您)应该能够毫不费力地理解代码。
  • 可维护性:添加新功能不应破坏旧逻辑。
  • 可测试性:整洁代码易于进行单元测试。

让我们从理论转向实践,探讨主要原则。



原则1:命名是整洁的基础

好的变量、函数或类名称能够自解释。在Swift中,由于其强类型特性,这一点尤为重要。避免使用缩写和单字母名称(循环除外)。

不好的示例:

func calc(a: Int, b: Int) -> Int {    return a * b}

好的示例:

func calculateArea(width: Int, height: Int) -> Int {    return width * height}

Swift规则:对变量和函数使用CamelCase。名称应回答“这是什么?”或“它做什么?”的问题。

  • 变量:userName、maxRetryCount
  • 函数:fetchData()、validateEmail()
  • 类/结构体:UserProfile、NetworkService


原则2:小函数(单一职责)

每个函数应只做一件事。如果函数超过10-15行,或者其中有解释代码块的注释,那就是重构的信号。在Swift中,由于闭包和函数式编程的使用,这一点尤其重要。

违反示例(一个大型方法):

func processUserData(user: User) {    // 验证    guard user.email.contains("@") else { return }    // 保存到数据库    Database.shared.save(user)    // 发送通知    NotificationCenter.default.post(name: .userSaved, object: nil)}

整洁代码(职责分离):

func processUserData(user: User) {    guard validateUser(user) else { return }    saveUser(user)    notifyUserSaved()}

private func validateUser(_ user: User) -> Bool { return user.email.contains("@")}

private func saveUser(_ user: User) { Database.shared.save(user)}

private func notifyUserSaved() { NotificationCenter.default.post(name: .userSaved, object: nil)}

现在每个函数都易于测试、修改和重用。



原则3:避免魔法数字和字符串

硬编码的值(“魔法数字”)是可读性的敌人。在Swift中,使用常量和枚举(enum)。

不好的示例:

if user.age > 18 {    grantAccess()}

好的示例:

private let minimumAgeForAccess = 18

if user.age > minimumAgeForAccess { grantAccess()}

对于更复杂的情况,使用enum:

enum HTTPStatusCode: Int {    case ok = 200    case notFound = 404    case internalError = 500}

func handleResponse(code: Int) { sw

博客

书籍推荐