실무로 통하는 클린 코드(한빛미디어) 리뷰

실무로 통하는 클린 코드

25장, 200가지 이상의 예시로 이루어진 이 책은 백과사전 같은 느낌을 줍니다. 내용이 방대해 읽을 엄두는 안 나지만 컴퓨터 옆에 놓고 필요할 때마다 참고할 수 있는 든든한 동반자 같은 느낌을 줬습니다. 큰 업무를 작게 나누듯 패턴들을 한번에 이해하기 부담없는 작은 단위들로 나눠놨습니다. 그리고 대부분의 클린 코드 책이 Java코드를 예제로 사용했는데 이 책은 python, javascript, c++ 등 다양한 언어를 사용해서 읽을 때마다 환기되는 느낌이었습니다. 그 외에 특히 도움이 됐던 내용들을 나열하면 다음과 같습니다.

기본형 데이터 구체화하기

이 챕터를 읽고 나니 기본형 타입을 많이 썼던 것 같습니다. 아래와 같은 식으로 작성하면 ‘무엇’과 ‘어떻게’를 명확하게 분리할 수 있습니다.

Port server = Port.parse(this, "www.example.org:8080");

Port in = server.open(this);
URI uri = server.asUri(this);
InetSocketAddress address = server.asInetSocketAddress();
Path path = server.path(this, "/index.html");

삼항식 제거

중첩된 삼항식을 피하는 부분도 좋았습니다. 한 줄에 쓰기 간결해서 삼항식도 자주 작성했지만 시간이 지날수록 코드를 이해하는데 시간이 더 드는 느낌이 강했습니다.

주석을 테스트로 대체하기

새로운 함수를 작성하면 주석을 작성하는 일이 많아졌습니다. 하지만 이를 테스트 케이스로 남기면, 함수의 동작을 더 정확하게 보장할 수 있고 읽는 사람도 이해하기 더 쉬울 것 같습니다.

전제 조건 적용하기

성능에 심각한 문제가 있지 않는 한, 어서션을 제대로 구성합니다. 데이터가 정상적인 범위 내에 있을 거라는 확신을 버리고 예외 케이스에 대해서 예외 처리를 항상 해서 빠르게 실패하는 편이 오히려 데이터 손상을 찾는 빠른 길이라는 것을 배웠습니다.

총평

디자인 시스템 책은 내용이 방대하기 때문에 읽고 지나치는 등 적용하지 못했던 경우가 많았습니다. 이 책을 읽고 나니 알고 있던 내용들은 환기가 되고 새로운 내용 또한 도움이 많이 됐습니다. 앞으로는 각 항목에 대해 활용 사례를 같이 적으면서 천천히 적용해보려고 합니다.


Written by@Donghoon Song
사람들의 꿈을 이어주는 코멘토에서 일하고 있습니다.

InstagramGitHubTwitterLinkedIn