이번에 읽은 책은 좋은 코드, 나쁜 코드입니다.
클린 코드와 비슷한 내용이 많았지만, 저는 이 책이 더 잘 읽혔습니다.
여기서도 당연히 DI(의존성 주입)이 나옵니다. DI를 이용하여 인터페이스에 의존하도록(DIP) 할 수 있고, 이를 염두에 두고 코드를 설계하라고 합니다. 저도 최근에 우아한테크 프리코스 과제를 해보고 있는데, 이를 이용하여 유연한 코드를 작성했습니다. DI를 이용하여 의존성을 느슨하게 하는 것이 매우 중요하다는 것을 다시 알 수 있었습니다.
제일 인상 깊었던 내용은 요란한 실패와 Enum은 확장성을 염두에 두고 코드를 작성하라는 점입니다.
public enum GameName {
LOL, MAPLE;
}
public String getGame(GameName gameName) {
switch(gameName) {
case LOL:
return "LOL;
case MAPLE:
return "MAPLE";
default:
return null;
}
}
만약 새로운 게임이 추가 된다면? null이 반환되고 이 메소드를 이용하고 있던 곳에서는 예상치 못한 에러가 발생할 수 있습니다.
실제 회사에서 제가 만났던 문제였습니다. 새로운 타입이 추가되었고, 이에 관한 log를 db에 남기고 있었는데 db에는 아무런 데이터도 들어가고 있지 않았습니다. 하지만 실패한 줄 모르고 있었습니다. 즉 너무 조용하게 에러를 넘어갔고, 실제로 이 db를 아무도 본 적이 없어서 년 단위 로그가 없었습니다.
이를 해결하기 위해서는 return null이 아니라 throw new Exception(); 처럼 예외를 던져줌으로써 바로 알아차릴 수 있습니다.
저는 이 내용이 너무 좋았습니다. 이를 신경써서 코딩을 하지 않았었는데, 주의할 필요성을 알 수 있었습니다.
'책 리뷰' 카테고리의 다른 글
[책] 클린 아키텍처 (0) | 2023.09.02 |
---|---|
[책] 가상 면접 사례로 배우는 대규모 시스템 설계 기초 리뷰 (0) | 2023.07.25 |
[책] 객체지향의 오해와 진실 리뷰 (0) | 2023.05.22 |