Skip to content

tungngodinh/SwiftStyle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

Sytle này tạo ra nhằm mục đích nhất quán việc đặt tên cho các dự án. Được tham khảo từ

Swift.org API Design Guidelines

Raywenderlich Style Guide

Mục tiêu hướng tới

  • Sytle này tạo ra nhằm mục đích nhất quán việc đặt tên cho các dự án.
  • Tránh nhầm lẫn cho người cũ, dễ sử dụng lại cho người mới bắt đầu.

Chung

  • Sự rõ ràng.
  • Sử dụng camel case (e.g. CustomerModel, SettingService ...).
  • Sử dụng Uppercase cho Type và Protocols, Lowercase cho phần còn lại (e.g. Property, Function, Enum case ...).
  • Sử dụng tên cho vai trò thay vì loại.

Đặt tên trong dự án

  • Đặt tên có hậu tố theo group chứa chúng (trừ Protocols) (e.g. CustomreModel, CustomreService, CustomerStore, CustomerController, ...).
  • Không nên thêm tiền tố modul.

Class

  • Không thêm tiền tố của modul. Nếu các modul có chứa nhiều hơn 1 class khi sử dụng có thể gọi thêm tiền tố modul.
import SomeModule

let myClass = MyModule.UsefulClass()
let someClass = SomeModule.UsefulClass()

Protocols

  • Hậu tố mô tả chức năng của Protocols.
  • Danh từ able, ible hoặc ing (e.g. Equalable, ProgessReporting ...).
  • Loại Type (e.g. RowType, CellType ...).
  • Ủy nhiệm hàm (e.g. DatePickerDelegate ...).
  • Cài đặt (e.g. RowSetting, CustomViewSetting ...).
  • Các Protocols dạng ủy nhiệm hàm có hậu tố là Delegate, tham số đầu tiên là nguồn của delegate (e.g. CustomerControllerDelegate ...).

Nên

func customerController(_ controller: CustomerController, didSelect customerId: Int)

Không nên

func didSelectCustomerId(controller: CustomerController, id: Int)

Function

  • Các hàm có hậu tố -ed, -ing là hàm không biến đổi (non-mutating).
func byAdding(newRow row: RowType) -> [RowType] {
    return self.rows + [row]
}
  • Các hàm không chứa tiền tố hoặc có tiền tố form- là hàm thay đổi (mutating).
func sortRows() {
    self.rows.sort()
}

func formAdd(newRow row: RowType) {
    self.rows.append(row)
}
  • Các hàm kiểu bool nên sử dụng như các xác nhận (isValidate, isHidden).
  • Sử dụng thuật ngữ rõ ràng, không gây nhầm lẫn, tránh viết tắt.
  • Chọn tên tham số dễ hiểu (được hiểu là khi đọc đã biết hàm làm gì).

Nên

func remove(at protison: Int)

Không nên

func remove(_ protison: Int)
  • Lợi dụng các tham số mặc định.
func select(at indexPath: IndexPath, with animated: Bool = true)

Unused code

  • Code không còn sử dụng nên xóa.
  • Code chỉ gọi tới phương thức của lớp cha cũng nên loại bỏ.
override func config() {
    supper.config()

    // Thân hàm không chứa nội dung thêm nên xóa
}

Import modul cần thiết

  • Chỉ import các modul sử dụng trong file.
  • Những modul không còn sử dụng nên xóa khỏi import.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors