Style convention

Delegates

Khi tạo các hàm custom delegate, cái gốc (delegate source) nên được ẩn đi.

Nên:

func namePickerView(_ namePickerView: NamePickerView, didSelectName name: String)
func namePickerViewShouldReload(_ namePickerView: NamePickerView) -> Bool

Không nên:

func didSelectName(namePicker: NamePickerViewController, name: String)
func namePickerShouldReload() -> Bool

Use Type Inferred Context (Sử dụng bối cảnh suy luận)

Trình biên dịch (compiler) có thể tự suy luận ra ngữ cảnh phù hợp để giúp code ngắn và rõ ràng hơn.

Nên:

let selector = #selector(viewDidLoad)
view.backgroundColor = .red
let toView = context.view(forKey: .to)
let view = UIView(frame: .zero)

Không nên:

let selector = #selector(ViewController.viewDidLoad)
view.backgroundColor = UIColor.red
let toView = context.view(forKey: UITransitionContextViewKey.to)
let view = UIView(frame: CGRect.zero)

Code Organization

Sử dụng extensions để tổ chức code theo từng khối logic chức năng (logical blocks of functionality). Nên thêm // MARK: - để thể hiện chức năng của khối lệnh đó.

Protocol Conformance

Khi thêm protocol thì cũng nên chia ra theo từng khối extension.

Nên:

Không nên:

Unused Code

Bỏ những dòng code không sử dụng. Ví dụ như code do template tự tạo ra, hoặc là những placeholder comment khi tạo file mới.

Nên:

Không nên:

⇒ Lưu ý: Không cần thêm hàm numberOfSections. Vì mặc định của UITableView nó sẽ có 1 section rồi. Không cần hàm didReceiveMemoryWarning vì chúng ta không sử dụng gì đến nó.

Minimal Imports

Chỉ import những thư viện cần thiết

Nên:

Không nên:

⇒ Trong UIKit đã có Foundation rồi. Nếu import cả Foundation và UIKit thì sẽ bị duplicate.

Spacing

Nên:

Không nên:

======

Nên:

Hoặc:

Không nên:

======

Nên:

Không nên:

⇒ Chú ý trước và sau dấu “:”

Last updated