📚책 정보
- 좋은 코드, 나쁜 코드 (2022)
- 톰 롱 (구글 소프트웨어 엔지니어) 지음
📝3장: 다른 개발자와 코드 계약
1. 자신의 코드, 다른 개발자의 코드
2. 코드 계약
📍자신의 코드, 다른 개발자의 코드
- 프로젝트는 자신의 코드와 다른 개발자의 코드가 어우러져 만들어진다
- 내가 만든 코드는 남이 만든 코드에 의존하며, 반대도 마찬가지이다.
팀 프로젝트 관점에서 코드를 작성할 때 고려할 3가지
1. 자신에게 명백하다고 해서 다른 사람에게도 명백한 것은 아니다
- 코드를 만든 사람과, 만들어진 코드를 보는 사람 간 고민의 시간 차이가 날 수 밖에 없음
- 코드의 사용법, 역할, 히스토리 등을 주석으로 작성하는 것은 나쁘지 않다
2. 다른 개발자는 무의식중에 여러분의 코드를 망가뜨릴 수 있다
- 테스트 코드로 이를 방지할 수 있다
3. 시간이 지남에 따라 자신의 코드를 기억하지 못한다
- 자신이 1~2년 전에 작성한 코드를 다시 보면 바로 이해하기 힘들다
- 다른 사람이 이해하기 쉽게 코드를 작성하는 것은 미래의 나에게도 도움이 됨
📍코드 계약
- 코드를 만든 쪽과 코드를 호출하는 쪽 간의 계약 (코드 간의 상호작용)
- 코드를 만들면 계약을 생성하는 것이고, 호출하는 쪽은 계약 조건을 지켜야 한다
코드 계약의 3가지 조건
1. 선결 조건 : 코드 호출 전에 사실이어야 하는 것. e.g. 매개변수
2. 사후 조건 : 코드 호출 후에 사실이어야 하는 것. e.g. 반환값
3. 불변 사항 : 코드 호출 전후에 변경되지 않아야 하는 것
세부 조항에 너무 의존하지 말라
- 만들어진 코드를 사용할 때, 모든 조건을 세세히 확인하기 힘들다 (세부 조항이 많은 코드는 사용하기 어려움)
- 타입을 미리 할당하여 세부 조항을 줄이는 것이 사용하기 쉽다 (다른 개발자가 계약을 이해하기 쉬워짐)
컴파일러, 런타입에서 계약을 확인하라
- 타입가드, 타입 체크 등을 통해 계약을 잘 이행하는지 확인