Skip to content

코드 컨벤션

Cheongsu lee edited this page Nov 9, 2021 · 3 revisions

목적

코드 컨벤션의 목적은 한 사람이 짠 것처럼 코드 스타일을 통일시켜 가독성을 향상시키고 궁극적으로 유지보수를 쉽게 하는데 있습니다.

원칙

  • 기본적으로 private한 프로퍼티/메소드가 그렇지 않은 프로퍼티/메소드보다 하단에 위치합니다.
  • 가장 위에 프로토콜에서 선언한 프로퍼티/메소드가 위치합니다.
  • 함수에서 파라미터 label을 적극 활용하여 문장처럼 읽히도록 작성합니다.

규칙을 추가하거나 제거하고 싶다면 회의를 통해 정합니다. 의견차이가 좁혀지지 않는 경우, 팀장의 최종의견을 따라야 합니다!

전체적인 순서

  • Internal Properties
    • (ViewController) IBOutlet
    • Protocol implement properties
    • viewModel/usecase/repository
    • non-private properties
    • private properties
  • initializer
  • Internal Methods
    • override functions
    • non-private functions
    • private functions
    • objc functions
    • (ViewController) IBAction functions

함수명 네이밍

Presentation Layer

사용자가 시작한 액션일 경우, did_동사_로 이름을 짓습니다.

didEnterSearchText(by text: String)

뷰 생명 주기 등 시스템에 의한 액션일 경우, _did_동사로 이름을 짓습니다.

viewDidLoad()

Domain Layer

  • execute_ prefix 붙이기

Data Layer

  • 동사_변수
    • 예시: addLandmark()

🛠 Tools

  • SwiftLint
opt_in_rules:
  - closure_spacing
  - fatal_error_message
  - force_unwrapping
  - implicitly_unwrapped_optional
  - legacy_multiple
  - legacy_random
  - operator_usage_whitespace

disabled_rules:
  - multiple_closures_with_trailing_closure

indentation: 4
line_length: 100
identifier_name:
  min_length: 4
type_name:
  min_length: 4

🔑 Reference

수인분당선

규칙

프로젝트

기술 특장점

데일리 스크럼

1주차
2주차
3주차
4주차
5주차
6주차

회고

회의록

1주차
2주차
3주차
4주차
5주차
6주차

멘토링

기술 공유

트러블슈팅

더보기

데모 영상

Clone this wiki locally