아이템 11 - 가독성을 목표로 설계하라
ds_chanin
·2022. 3. 25. 00:27
프로그래밍은 쓰기보다 읽기가 중요하다 고로 항상 가독성을 생각하면서 코드를 작성해야 한다.
그렇지 않으면 오류를 찾기위해 코드를 작성할 때보다 오랜 시간 코드를 읽는 자신을 발견할 수 있다.
개발자가 코드를 작성하는 데는 1분 걸리지만, 이를 읽는 데는 10분이 걸린다. by 로버트 마틴
인식 부하 감소
가독성이란 코드를 읽고 얼마나 빠르게 이해할 수 있는지를 의미한다.
경험과 인식에 대한 과학으로 만들어진 어느 정도의 규칙이 있다.
fun readGood(person: Person?, view: View) {
if (person != null && person.isAdult) {
view.showPersion(person)
} else {
view.showError()
}
}
fun readBad(person: Person?, view: View) {
person?.takeIf { it.isAdult }
?.let { view.showPersion(it) }
?: { view.showError() }
}
위 코드에서 readBad는 코틀린에 숙련된 개발자에게만 더 읽기 쉬운 코드라고 볼 수 있다. 또한 readGood 쪽이 수정(ex. 기능추가)하기 더 용이하다. 따라서 readGood이 더 좋다고 할 수 있다.
사용 빈도가 적은 관용구는 코드를 복잡하게 만든다. 그리고 그런 관용구를 한 문장에서 조합하여 사용하면 복잡성이 증가한다.
‘관용구를 안다’라는 인지부하를 줄이는 쪽으로 작성하도록 하자.
극단적이 되지 않기
인식 부하를 감소하기 위해 관용구를 줄이자고 했다고 해서 관용구를 사용하지 말자는 것이 아니다. 관용구를 적절하게 잘 사용하면 된다.
물론 적절하게 잘 사용한다는 부분은 항상 논란이 있을 수 있기 때문에 균형을 맞춰야한다. 이 부분은 팀에서 프로젝트를 같이 진행하는 사람들과 논의를 해야하지 않을까 싶다.
let은 다음과 같은 경우에 많이 사용한다.
- 연산을 아규먼트 처리 후로 이동시킬 때
- 데코레이터를 사용해서 객체를 랩할 때
'스터디 > 이펙티브코틀린' 카테고리의 다른 글
아이템 13 - Unit? 을 리턴하지 말라 (0) | 2022.03.25 |
---|---|
아이템 12 - 연산자 오버로드를 할 때는 의미에 맞게 사용하라 (0) | 2022.03.25 |
아이템 10 - 단위 테스트를 만들어라 (1) | 2022.03.07 |
아이템 9 - use를 사용하여 리소스를 닫아라 (0) | 2022.03.05 |
아이템 8 - 적절하게 null을 처리하라 (0) | 2022.03.03 |