ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2022-01-24일 노개북 클린코드
    Book/Clean Code 2022. 1. 24. 13:44

    오늘 읽은 부분 : 2장 의미있는 이름

    의도를 분명히 밝혀라

     

    의도가 분명한 이름을 지어라? 이 이름의 존재이유와 수행기능 사용방법이 주석으로 표현된다면 의도가 불분명한 이름이라고 할 수 있다. 흔히들 알고리즘을 풀거나 간단한 학교 과제를 할때 변수명을 대충 지었던 경험이 있을것이다. 다시 백준 문제를 보는데 이 변수는 뭘 담는 내용인지 알기 어려운때가 대부분이다. 2학년때 작성했던 자바 과제를 이 책에서 알려주는 방식대로 리팩터링을 해보겠다.

    for (int o = 0; o < num_desks; o++) {
                for (int i = 0; i < 4; i++) {
                    for (int j = 0; j < 13; j++) {
                        Card card = new Card(suits[i], rank[j]);
                        cards.push(card);
                    }
                }
            }

    흔히들 작성하는 반복문인데 각각의 인덱스들이 뭘 의미하는지 전혀 파악이 되지 않는다 너무 함축적으로 사용했다.

    for (int desk = 0; desk < num_desks; desk++) {
                for (int suitIndex = 0; suitIndex < 4; suitIndex++) {
                    for (int rankIndex = 0; rankIndex < 13; rankIndex++) {
                        Card card = new Card(suits[suitIndex], rank[rankIndex]);
                        cards.push(card);
                    }
                }
            }

    바뀐건 이름 뿐인데 각각의 반복문 들이 어떤 일을 하는지 정확히 알 수 있게 되었다.

     

    그릇된 정보를 피하라

    흔히 널리 쓰이는 단어는 피하는게 좋다. 유사한개념은 유사한 표기법을 사용한다. 일관성이 떨어지는 표기법도 그릇된 정보이다. 근데 이 부분은 요즘 코드 자동 완성 기능때문에 변수명을 추천해주기도 하기 때문에 그리 신경쓸 문제는 아닌것 같다

     

    의미있게 구분하라

    아무런 의미를 제공하지 않는 이름을 피하라는 것이다. 이름이 달라야 한다면 의미도 달라야 한다. 읽는 사람이 이름의 차이를 알도록 지어야 한다.

     

    발음하기 쉬운 이름을 사용하라

    발음하기 쉬운 이름이어야 이해도 빠르다.

     

    검색하기 쉬운 이름을 사용하라

    문자 하나만 사용하면 검색하기 매우 힘들다. 간단한 이름은 로컬일때만 사용하자

     

    인코딩을 피하라

    접두어를 작성하지 말고, 타입을 이름에 명시 하지말자 하지만 인터페이스 경우에는 명시 하는게 좋다

     

    자신의 기억력을 자랑하지 마라

    코드를 읽으면서 변수 이름을 자신이 아는 이름으로 변환해야한다면 바람직 하지 못하다. 똑똑한 프로그래머와 전문가 프로그래머의 차이는 명료함이 최고라는 사실을 이해 한다는 점이다.

    - 클래스 이름 : 명사나 명사구가 적합

    - 메서드 이름 : 동사나 동사구가 적합

     

    기발한 이름은 피하라

    계속 말하지만 의도가 분명한 코드가 좋은 코드다

     

    한 개념에 한 단어를 사용하라

    추상적인 개념 하나에 단어 하나를 선택해 고수한다. 같은 역할을 하는 메서드를 각각 다른 클래스에서 다른 이름으로 작성하지 말자

     

    해법 영역에서 가져온 이름을 사용하라

    프로그래머들 사이에서 이해할수 있는 범위 내에 프로그래밍 이름을 선택하자

     

    문제 영역에서 가져온 이름을 사용하라

    적절한 프로그래머 용어가 없다면 문제 영역에서 이름을 가져온ㄴ다.

     

    의미 있는 맥락을 추가하라

    어떤 클래스에 전체 맥락에 맞는 변수를 선정해서 작성하자 차안으로 접두어를 붙이는 방법도 있다.

     

    불필요한 맥락을 없애라

    일반적으로 짧은 이름이 긴 이름보다 좋다. 단 의미가 분명한 경우에 한해서이다. 이름에 불필요한 맥락 까지 추가 하지 않도록 하자

     

    좋은 이름을 써야 하는 이유는 제품개발은 혼자 하는것이 아니기 때문이다. 혼자 하더라도 마찬가지 이다. 다음에 보기에도 편하고 직관적이며 가독성이 올라가 더욱 빨리 개발을 할 수 있을 것이다.

    'Book > Clean Code' 카테고리의 다른 글

    2022-01-30일 노개북 클린코드  (0) 2022.02.07
    2022-01-28일 노개북 클린코드  (0) 2022.02.07
    2022-01-26일 노개북 클린코드  (0) 2022.01.26
    2022-01-22일 노개북 클린코드  (0) 2022.01.22
    2022-01-21 노개북 클린코드  (0) 2022.01.21

    댓글

Designed by Tistory.