동기
사전처럼 궁금한 내용이 있으면 클린 코드를 살펴보긴 했는데 전체적으로 어떤 내용이 있는지 정리하기 위해 처음부터 끝까지 읽게 되었습니다.
요약 및 기억하고 싶은 내용
저자가(로버트 C.마틴) 클린 코드를 통해 하고자 하는 말은 크게 2가지라고 생각한다.
- 읽기 쉬운 코드 작성하기
- 테스트 하기 쉬운 코드 작성하기
읽기 쉬운 코드 작성하기
읽기 쉬운 코드를 작성하는 이유는 인간의 뇌에 한계가 있기 때문이라고 생각한다.
극단적이 예로 가독성을 고려하지 않고 성능만 신경 쓴 상태에서 코드를 작성하게 되면 되면 아래와 같은 코드는 좋은 코드가 될 것이다.
int n1;
int n2;
하지만 홀수와 짝수가 다른 개념들과 섞여 있다면 조금씩 헷갈리기 시작할 것이다.
int n1;
int n2;
int h; // height
int w; // width
따라서 대부분의 코드는 길이가 길어지더라도 개발자가 한번에 이해할 수 있도록 작성하는 것이 좋다.
int oddNumber;
int evenNumber;
int height;
int width;
이러한 관점에서 저자가 주장하는 바를 읽어보면 합당한 주장같다고 느껴진다.
- 들여 쓰기는 최소화하는 게 좋다.
- 함수는 한가지 일만 하도록 하라.
- 불필요한 주석은 제거하라.
- 코드의 형식을 맞추어라. (가로 정렬, 세로 정렬)
- null을 반환하거나 전달하지 마라
- 응집도를 유지해야 한다.
- 클래스와 메서드 수를 최소로 줄여라
테스트하기 쉬운 코드 작성하기
테스트 하기 쉬운 코드를 작성하면 서비스의 품질이 올라갈 뿐 아니라 개발자가 읽기 쉬운 코드를 작성하는 데에도 도움이 된다.
우선 테스트 하기 쉬운 코드를 작성하기 위해서는 한 번에 한 가지만 검증해야하고 이는 함수가 한가지 일을 하도록 강요한다.
@Test
void test_isEvenNumber(){
// 준비
int evenNumber = 2;
boolean expected = true;
// 실행
boolean actual = evenNumber % 2 == 0 ? true : false;
// 검증
assertThat(actual).isEqualTo(expected);
}
boolean isEvenNumber(int number){
return number % 2 == 0 ? true : false;
}
이렇게 작성된 코드가 변경이 필요한 경우에 테스트 케이스가 있기 때문에 코드르 변경하고 테스트 케이스가 통과하는지 지속적으로 확인할 수 있다면 공포감이 사라지며 코드에 유연성이 생기게 된다.
마무리
개발자들 사이에서 클린 코드에 대한 대화는 단골 주제이다. 이번 기회를 통해 책에 대한 나의 생각이 정리가 되어서 좋았다.
이 책에서 저자가 본인의 의견을 주장하는 과정에서 많은 것을 배울 수 있게 되었다.'은탄환은 없다'라는 말처럼 소프트웨어에 절대적인 개발 방법론은 존재하지 않는다. 그렇기 때문에 개발자들은 본인이 선택한 개발 방식에 대해 다른 개발자들에게 설명할 수 있어야 한다.
저자는 책에서 다음과 같은 방식으로 독자들을 설득해 나아갔다.
- 구루(마스터, 장인)들의 말 인용
- 본인의 주장을 간단명료하게 요약
- 코드를 AS-IS, TO-BE로 작성
처음에는 의심하는 부분이 있었지만 책을 읽을수록 저자의 주장에 조금씩 동의하게 되었고 책을 덮을 때쯤이면 많은 것을 배웠다는 고마움이 생겼다.
'RETROSPECT' 카테고리의 다른 글
코드숨 북클럽 [인스파이어드] 회고 (0) | 2022.01.26 |
---|---|
유스콘 2021 Spring Boot TDD Start! 회고 (2) | 2022.01.09 |
그림으로 배우는 Http&Network Basic 회고 (0) | 2022.01.08 |
[자바의 신2] 23장 회고 (0) | 2021.10.18 |
[자바의신2 21장] 회고 (0) | 2021.10.01 |