본문 바로가기

Reading Record/이펙티브 코틀린

[이펙티브 코틀린] Item18. 코딩 컨벤션을 지켜라

지켜야하는 이유

  • 어떤 프로젝트를 접해도 쉽게 이해할 수 있다
  • 다른 외부 개발자도 프로젝트의 코드를 쉽게 이해할 수 있다
  • 다른 개발자도 코드의 작동 방식을 쉽게 추측할 수 있다
  • 코드를 병합하고, 한 프로젝트의 코드 일부를 다른 코드로 이동하는 것이 쉽다


컨벤션 두가지 도구

  • intellij 포매터
  • ktlink

 

파라미터 컨벤션

코틀린에서 많은 파라미터를 갖고있는 클래스, 함수는 각각의 파라미터를 한 줄씩 작성하는 방법을 사용한다

class Person(
    val id: Int =0,
    val name: String ="",
    val surname: String = ""
): Human(id,name)

public fun<T> Iterable<T>.joinToString(
    separator: CharSequence = ", ",
    prefix: CharSequence = "", 
    postfix: CharSequence = "",
    limit: Int = -1,
    truncated: CharSequence ="...",
    transform: ((T) -> CharSequence)? = null
):String{
    return ""
}



위 컨벤션을 지키지 않았을 때
- 모든 클래스의 아규먼트가 클래스 이름에 따라서 다른 크기의 들여쓰기를 갖는다
- 클래스가 차지하는 공간의 너비가 너무 크다.