ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • swift style guide - Naming
    swift 2021. 6. 20. 17:30

    서술, 설명적이며 일관된 방식의 네이밍은, 소프트웨어의 가독성을 높이며 이해하기 쉽도록 만든다.

    API Design Guidelines 에 작성된 Swift 네이밍 컨벤션을 사용하라.

     

    - 간결하게 줄여쓰는 것보다 명확하게 작성해야 한다. ( 서술, 설명하듯 )

    snake_case 가 아닌 camelCase 를 사용한다 ex) first_name  firstName

    - 타입, 프로토콜 의 경우엔 UpperCamelCase 를 사용한다. 이 외엔 lowerCamelCase를 사용한다

    - 불필요한 단어는 제외하고, 필요한 모든 단어는 포함한다. ex) 중복제거

    - 타입 이 아닌, 역할에 기반해 작성해야 한다.

    - factory methodsmake 로 시작한다. 

     

    - 메소드들의 side effects 를 고려해 작성한다

    • side effect 가 있다면 명령형 동사로 작성한다. ex) print(x), x.sorted()
    • side effect 가 없다면 명사형으로 작성한다. ex) x.distance(to: y)
    • (none-mutating) 비수정 동사형 메소드 의 경우 -ed, -ing 로 끝나도록 작성한다 ex) z = x.sorted()

    • (mutating) 수정 가능 명사형 메소드의 경우, form 으로 시작한다 ex) y.formUnion(z)

    •  boolean type 메소드와 프로퍼티들은 assertion(주장) 처럼 읽혀야 한다. ex) x.isEmpty, line1.intersects(line2)
    • 어떤 것을 설명하는 프로토콜은 명사형으로 읽혀야 한다. ex) Collection
    • 능력, 가능함을 나타내는 프로토콜은 -able, -ible 로 끝나도록 작성한다 ex) Equatable, ProgressReporting
    • 그 외의 타입, 프로퍼티, 변수, 상수 등은 명사형으로 작성한다.

    - 전문가가 놀라워 할 표현을 사용하지 말라.

    - 초심자가 혼란해 할 표현을 사용하지 말라.

    - 일반적으로, 축약을 사용하지 말라.

    - 일반적으로 사용되는 name 을 사용하라.

    - free function 보단 메소드와 프로퍼티를 사용하라.

    • free function: 소유자가 없는 함수
    • free function은 특별한 경우에만 사용된다. 

    - 대문자로 표시된 약어와 이니셜은 모두 대문자 또는 소문자로 작성한다.

    • 외의 약어는 일반 단어로 취급한다.

    - 메소드가 같은 의미를 공유할 경우, 동일한 기본 이름을 준다.

    - 리턴 타입은 오버로딩 하지 않는다.

    - documentation, 문서화의 역할이 되도록 좋은 parameter name 을 정한다.

    - 첫번째 parameter의 이름을 작성하는 것을 선호한다, 이 이름을 메소드명에 포함시키지 않고.

    - 기본 인자를 활용한다.

    - 튜플 parameter와 클로저에 label 을 붙인다.

     

     

     

    사진 출처 - https://swift.org/documentation/api-design-guidelines/#naming

    'swift' 카테고리의 다른 글

    Swift - UserDefaults extension 활용 편하게 사용하기  (0) 2022.10.14
    UIView - touch 관련 메소드, 멀티 터치  (2) 2021.07.13
    swift - escaping closure, result type  (0) 2021.06.03
    로그 출력  (0) 2021.06.01
    swift - backslash dot \.  (0) 2021.05.11

    댓글

Designed by Tistory.