본문 바로가기
공부/이펙티브코틀린

아이템 11 - 가독성을 목표로 설계하라

by 띵커베르 2024. 4. 7.
728x90
  • 프로그래밍은 쓰기보다 읽기가 중요하다는 의미
  • 항상 가독성을 생각하면서 코드를 작성하자

 

  • 가독성 이란 코드를 읽고 얼마나 빠르게 이해할 숙 있는지를 의미

  • 인식 부하 감소
    • 가독성은 사람에 따라 다르게 느낄 수 있지만, 일반적으로 많은 사람의 경험화 인식에 대한 과학으로 만들어진 어느정도의 규칙이 있다
    • 우리의 뇌가 얼마나 많은 관용구(구조, 함수, 패턴)에 익숙해져 있는지에 따라 다르다.
    • 익숙하지 않은 구조를 사용하면, 잘못된 동작을 코드를 보면서 확인하기 어렵다
    • 기본적으로 '인지 부하'를 줄이는 방향으로 코드를 작성하자.
class Item11Class(
    var name: String? = null,
) {
    var innerClass: Item11Class? = null
    fun printName() {
        if (innerClass != null) {
            println(innerClass?.name)
        }

        innerClass?.let {
            println(it.name)
        }
    }
}

@Test
fun `p74_1`() {
    var item11 = Item11Class()
    item11.printName()
    item11.innerClass = Item11Class("injin")
    item11.printName()
}

 

  • 극단적이 되지 않기
    • :: 멤버 참조(Member reference), 함수 참조(Function Reference) 같은경우 경험이 적은 코틀린 개발자는 이해하기 어려워 비용이 발생하지만 지불할 만한 가치기 있으므로 사용해도 괜찮다
    • 문제가 되는건 지불할 만한 가치가 없는 코드에 비용을 지불하는 경우(정당한 이유 없이 복잡성을 추가할 때) 입니다.
    • 어떤것이 비용을 지불할 만한 코드인지 아닌지는 항상 논라이 있을 수 있으므로, 균형을 맞추는 것이 중요하다.

 

 


생각:

extract method 를 좋아해서 많은 코드들을 처리했지만, 가독성을 좀 더 생각해서 재활용할 수 없고 코드 길이가 적절하다면 적당한 균형이 필요하다고 생각했고 다른 코드들을 보면서 기술 및 가독성을 좀 더 습득해야 겠다고 생각 함.

ex) if 가 많을경우 처리하는 방식 등등

 

728x90

댓글