---
title: Data type chỉ lồng nhau tối đa 1 level
impact: LOW
impactDescription: Tránh mã nguồn khó đọc và khó debug do có quá nhiều tầng lồng nhau.
tags: swift, ios, nesting, architecture, clean-code
---

## Data type chỉ lồng nhau tối đa 1 level

Không nên lồng quá một cấp trong các định nghĩa kiểu dữ liệu như `class`, `struct`, `enum`, `actor`. Việc lồng nhau quá sâu làm tăng độ phức tạp của tên kiểu dữ liệu (fully qualified name) và thường vi phạm nguyên tắc Phân tách mối quan tâm (Separation of Concerns).

**Incorrect (lồng quá sâu):**

```swift
class Parent {
    class Child {
        class GrandChild {
            // ...
        }
    }
}
```

**Correct (phẳng hóa hoặc chỉ lồng 1 cấp):**

```swift
class Parent {
    class Child {
        // ...
    }
}

class GrandChild {
    // ...
}
```

**Tools:** SwiftLint (nesting)
